TY - JOUR
T1 - Reliable and automatic composition of language extensions to c the ableC extensible language framework
AU - Kaminski, Ted
AU - Kramer, Lucas
AU - Carlson, Travis
AU - Van Wyk, Eric
N1 - Publisher Copyright:
© 2017 Copyright held by the owner/author(s).
PY - 2017/10
Y1 - 2017/10
N2 - This paper describes an extensible language framework, ableC, that allows programmers to import new, domain-specific, independently-developed language features into their programming language, in this case C. Most importantly, this framework ensures that the language extensions will automatically compose to form a working translator that does not terminate abnormally. This is possible due to two modular analyses that extension developers can apply to their language extension to check its composability. Specifically, these ensure that the composed concrete syntax specification is non-ambiguous and the composed attribute grammar specifying the semantics is well-defined. This assurance and the expressiveness of the supported extensions is a distinguishing characteristic of the approach. The paper describes a number of techniques for specifying a host language, in this case C at the C11 standard, to make it more amenable to language extension. These include techniques that make additional extensions pass these modular analyses, refactorings of the host language to support a wider range of extensions, and the addition of semantic extension points to support, for example, operator overloading and non-local code transformations.
AB - This paper describes an extensible language framework, ableC, that allows programmers to import new, domain-specific, independently-developed language features into their programming language, in this case C. Most importantly, this framework ensures that the language extensions will automatically compose to form a working translator that does not terminate abnormally. This is possible due to two modular analyses that extension developers can apply to their language extension to check its composability. Specifically, these ensure that the composed concrete syntax specification is non-ambiguous and the composed attribute grammar specifying the semantics is well-defined. This assurance and the expressiveness of the supported extensions is a distinguishing characteristic of the approach. The paper describes a number of techniques for specifying a host language, in this case C at the C11 standard, to make it more amenable to language extension. These include techniques that make additional extensions pass these modular analyses, refactorings of the host language to support a wider range of extensions, and the addition of semantic extension points to support, for example, operator overloading and non-local code transformations.
KW - Attribute grammars
KW - Context-aware scanning
KW - Domain specific languages
KW - Extensible compiler frameworks
KW - Language composition
UR - http://www.scopus.com/inward/record.url?scp=85120093544&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85120093544&partnerID=8YFLogxK
U2 - 10.1145/3138224
DO - 10.1145/3138224
M3 - Article
AN - SCOPUS:85120093544
SN - 2475-1421
VL - 1
JO - Proceedings of the ACM on Programming Languages
JF - Proceedings of the ACM on Programming Languages
IS - OOPSLA
M1 - 98
ER -