Back to Search
Start Over
Reliable and automatic composition of language extensions to C: the ableC extensible language framework
- Source :
- Proceedings of the ACM on Programming Languages. 1:1-29
- Publication Year :
- 2017
- Publisher :
- Association for Computing Machinery (ACM), 2017.
-
Abstract
- 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.
- Subjects :
- 020203 distributed computing
Programming language
Computer science
020207 software engineering
02 engineering and technology
Specification language
computer.software_genre
Language primitive
Universal Networking Language
High-level programming language
Programming language specification
0202 electrical engineering, electronic engineering, information engineering
Data control language
Safety, Risk, Reliability and Quality
First-generation programming language
computer
Low-level programming language
Software
Subjects
Details
- ISSN :
- 24751421
- Volume :
- 1
- Database :
- OpenAIRE
- Journal :
- Proceedings of the ACM on Programming Languages
- Accession number :
- edsair.doi...........cef63927d9127cda013562a053a9160c
- Full Text :
- https://doi.org/10.1145/3138224