CPL - Chalmers Publication Library
| Utbildning | Forskning | Styrkeområden | Om Chalmers | In English In English Ej inloggad.

Modular language implementation in Rascal - experience report

B. Basten ; J. van den Bos ; M. Hills ; P. Klint ; A. Lankamp ; B. Lisser ; Atze van der Ploeg (Institutionen för data- och informationsteknik, Programvaruteknik (Chalmers)) ; T. van der Storm ; J. Vinju
Science of Computer Programming (0167-6423). Vol. 114 (2015), p. 7-19.
[Artikel, refereegranskad vetenskaplig]

All software evolves, and programming languages and programming language tools are no exception. And just like in ordinary software construction, modular implementations can help ease the process of changing a language implementation and its dependent tools. However, the syntactic and semantic dependencies between language features make this a challenging problem. In this paper we detail how programming languages can be implemented in a modular fashion using the RASCAL meta-programming language. RASCAL supports extensible definition of concrete syntax, abstract syntax and operations on concrete and abstract syntax trees like matching, traversal and transformation. As a result, new language features can be added without having to change existing code. As a case study, we detail our solution of the LDTA'11 Tool Challenge: a modular implementation of OBERON-0, a relatively simple imperative programming language. The approach we sketch can be applied equally well to the implementation of domain-specific languages.

Nyckelord: Language engineering, Language workbench, Meta-programming, Modularity, Compiler generators

Denna post skapades 2016-01-20.
CPL Pubid: 231012


Läs direkt!

Länk till annan sajt (kan kräva inloggning)

Institutioner (Chalmers)

Institutionen för data- och informationsteknik, Programvaruteknik (Chalmers)



Chalmers infrastruktur