Sana: Languages à la carte - Amanj Sherwany


Details
Amanj will present a framework for building languages à la carte. In this framework, developers implement programming languages by composing together small language components. Components define different compilation phase components for particular language features. For instance, in a Java compiler there are components for primitive expressions and statements, for class and interface declarations, and for supporting import statements. These components are composed into language modules which provide a compiler interface. Programmers can use existing components to implement languages or can define their own. Existing languages can be extended with new components to produce new languages. The framework design addresses the expression problem (a special form of dependency injection), allowing extension with both new syntax and new semantics. The framework is implemented in Scala and its utility is shown by implementing compilers for Java, for Oberon-0, and a DSL for distributed computing. The last two compilers are implemented by reusing the same components used to implement the Java compiler. The framework is open source and can be downloaded at:
http://www.github.com/amanjpro/languages-a-la-carte

Sana: Languages à la carte - Amanj Sherwany