1. 2

Abstract highlights: “…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.”

Prototype extensions they add to C language include abstract, data types from ML-like languages, parallel programming features from Cilk, and regular expressions. Here is the site with their software.


  2. 2

    I skimmed this but didn’t see the part where code is generated/translated for the language extensions. A use case I find interesting is giving C exception handling with the well known setjmp/longjmp hack/macros, but as lanuage key words try,catch,finally.

    1. 1

      That’s one possibility. This is just one of a few I skimmed related to metaprogramming on top of C when I was looking for metaprogramming papers. I have one or more others I can submit over next few days if there’s interest. I just edited the link to add their site in case any of you wanted to download it for experimentation. Might answer your question.