TU Darmstadt / ULB / TUbiblio

A Framework for Extensible Languages

Erdweg, Sebastian and Rieger, Felix (2013):
A Framework for Extensible Languages.
ACM, In: Proceedings of Conference on Generative Programming and Component Engineering (GPCE), [Online-Edition: http://erdweg.org/publications/language-extensibility-framew...],
[Conference or Workshop Item]

Abstract

Extensible programming languages such as SugarJ or Racket enable programmers to introduce customary language features as extensions of the base language. Traditionally, systems that support language extensions are either (i) agnostic to the base language or (ii) only support a single base language. In this paper, we present a framework for language extensibility that turns a non-extensible language into an extensible language featuring library-based extensible syntax, extensible static analyses, and extensible editor support. To make a language extensible, our framework only requires knowledge of the base language's grammar, the syntax for import statements (which activate extensions), and how to compile base-language programs. We have evaluated the generality of our framework by instantiating it for Java, Haskell, Prolog, JavaScript, and System F-omega, and by studying existing module-system features and their support in our framework.

Item Type: Conference or Workshop Item
Erschienen: 2013
Creators: Erdweg, Sebastian and Rieger, Felix
Title: A Framework for Extensible Languages
Language: English
Abstract:

Extensible programming languages such as SugarJ or Racket enable programmers to introduce customary language features as extensions of the base language. Traditionally, systems that support language extensions are either (i) agnostic to the base language or (ii) only support a single base language. In this paper, we present a framework for language extensibility that turns a non-extensible language into an extensible language featuring library-based extensible syntax, extensible static analyses, and extensible editor support. To make a language extensible, our framework only requires knowledge of the base language's grammar, the syntax for import statements (which activate extensions), and how to compile base-language programs. We have evaluated the generality of our framework by instantiating it for Java, Haskell, Prolog, JavaScript, and System F-omega, and by studying existing module-system features and their support in our framework.

Publisher: ACM
Divisions: 20 Department of Computer Science
20 Department of Computer Science > Software Technology
Event Title: Proceedings of Conference on Generative Programming and Component Engineering (GPCE)
Date Deposited: 07 Apr 2014 14:54
Official URL: http://erdweg.org/publications/language-extensibility-framew...
Identification Number: doi:10.1145/2517208.2517210
Export:

Optionen (nur für Redakteure)

View Item View Item