Javagruppemøde 121 : Automatically translating a huge code base into Scala using Scala

…the story about architecting, maintaining, developing and renewing the Maconomy ERP platform

The brief history of the Maconomy architecture

Speaker: Martin Gamwell Dawids

By the end of 1988 the Danish software vendor PPU Software A/S[1] started developing what would become the ERP system Maconomy. The system was originally running only on single-user Macintosh machines. However, the architecture of the software was designed elegantly with the business logic written in a DSL that supported embedded and statically typed SQL. The business logic was compiled to byte code and executed on a custom-made virtual machine. It is worth noticing that this was almost a decade before Java and the JVM appeared on the scene and also many years before LINQ came into existence. This novel approach made it possible to port the Maconomy ERP to a long number of hardware platforms and operating systems over the following years without touching the application business logic. 

Contents of the talk

Martin will to tell the brief history of Maconomy and the both wise and fortunate design choices that has made it possible to develop and maintain Maconomy as a leading ERP system for 25 years.

Scala primer

Speaker: Martin Gamwell Dawids

Martin will give a brief introduction to Scala outlining its basic functional concepts. If you don't know Scala and its syntax, this talk will make it easier to understand the code examples presented in the following talk.

Building a source-to-source translator using Scala and Kiama

Speaker: Piotr Borowian

In the 25 years since the inception of Maconomy, a lot has happened in the field of both programming languages and runtime platforms. The then novel approach of having embedded and statically typed SQL, compiling to byte code and running on a virtual machine is something you get for free today, along with better tools, IDEs, etc. For these and other reasons, Piotr (in his master's thesis[2]) has investigated the possibility of automatically migrating the existing application business logic code base into Scala.

Contents of the talk

Piotr is going to talk about how we are planning to go about migrating our huge application code base into an internal Scala DSL, as well as what challenges and tradeoffs one can expect to encounter when undertaking such a project.

More specifically, Piotr will show you how you can use the very powerful tools from the Scala toolbox like parser combinators, pattern matching as well as a really cool language processing library called Kiama to build a source-to-source translator. During the talk we will develop a small programming language, a parser and compiler for this language as well as an interpreter – all in 10 minutes. The language is simple yet it exhibits a lot of problems commonly encountered when building a real-life source-to-source translator.

[1] PPU Software A/S later became Maconomy A/S which was recently acquired by the US-based software vendor Deltek Inc.

[2] Piotr Borowian wrote his Master's Thesis in collaboration with Deltek. Piotr won the award “Computer Science Thesis of 2012” (in Danish “Årets Datalogispeciale 2012”) for the work in his Master's Thesis. The prize is awarded by Dansk Selskab for Datalogi (Danish Society for Computer Science) and Dansk IT (Danish IT) in cooperation.

Praktiske oplysninger

Tid: 28.11.2013 kl. 16.00-19.00
Sted: Deltek, Vordingborggade 18-22, 2100 København Ø
Tilmelding sker her.

 
javagruppen Årets sidste J-Cafe og juleafslutning i Vest. @e2y_commerce i fuld gang med at præsentationer hvad de arbejder på. https://t.co/A34irDYZ4H
javagruppen RT @Nievesancho: @Javagruppen holds J-Cafe and Christmas closing in west on December 13th from 17.00 - 19.00 at e2Y in Aarhus (Ecopark). ht…
javagruppen Husk vi holder J-Cafe og juleafslutning i Vest den 13 december hos @e2y_commerce i Århus. Det bliver noget med et… https://t.co/3hBXmKGDY5
javagruppen Kom og få æbleskiver hos @e2y_commerce og hold årets sidste J-Cafe i Århus den 13 december. For tilmelding se her https://t.co/VdtlPfiX4X