Software: JastAdd-C (an extensible, specification-driven generated C99 compiler front end)
Public Git Repository: https://github.com/christoff-buerger/jastadd-c
Author: Christoff Bürger (christoff.buerger@gmail.com
)
The JastAdd-C C99-compiler front was developed by Christoff Bürger for his master thesis titled Specification-Driven Generation of an Extensible C Compiler. The objective was an extensible C99 front end that can be used as foundation for user-specified program analyses and language extensions. To achieve this goal, specification-driven techniques are used; all compiler components are generated using compiler-compiler techniques like regular expression, LALR(1)-grammars, attribute grammars and graph rewriting. User-specified analyses and extensions are "just" further declarative specifications. To that end, general, specification-driven concepts for compiler modularisation, error handling, name analysis, well-formedness analysis, type representation and type transformation were developed, eventually resulting in JastAdd-C. The developed concepts are well documented in the thesis (cf. documentation/jastadd-c-thesis.pdf
), making it a design document, manual and prerequisite for JastAdd-C developers.
This program and the accompanying materials are made available under the terms of the MIT license (X11 license) which accompanies this distribution (./license.txt
).
For any questions or comments don't hesitate to write me an e-mail (christoff.buerger@gmail.com
). I appreciate any feedback.