The Community for Technology Leaders
2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM) (2006)
Philadelphia, Pennsylvania
Sept. 27, 2006 to Sept. 29, 2006
ISBN: 0-7695-2353-6
pp: 161
Derek Bodin , University of Minnesota, USA
Phil Russell , University of Minnesota, USA
Lijesh Krishnan , University of Minnesota, USA
August Schwerdfeger , University of Minnesota, USA
Eric Van Wyk , University of Minnesota, USA
Eric Johnson , University of Minnesota, USA
In this tool demonstration of Silver extensible compiler frameworks for Java and C we illustrate how new languages that are adapted to specific problem domains can be easily created, by their users, by importing a set of desired domain-specific language extensions into an extensible host language compiler. Language extensions for computational geometry and database access will be shown. We also show extensions that provide general purpose language features such as algebraic types and pattern matching can be imported into an extensible language compiler. <p>Each Silver extensible compiler framework supports the development of language extensions that have two important facets. First, language extensions should satisfy a completeness requirement. That is, they should be as welldeveloped as host language features and fit seamlessly into the host language. In particular, the language feature designer should be able to specify new language constructs together with their domain-specific semantic analyses and techniques for their optimization. One aspect of this requirement is that language extension should report a useful error message when they are used incorrectly. Second, the extensions should be modular so that a programmer can extend his or her language by choosing from a collection of previously defined features knowing only the functionality they provide and with no implementation-level knowledge or a detailed analysis of their interactions. Thus we draw a distinction between the programmer importing an extension and the feature designer who implements it.</p> <p>We will show extensible compilers for both C and Java. These compilers are defined by an attribute grammar written in the Silver attribute grammar language. A Silver compiler analyses attribute grammar specifications and generates an executable compiler for the defined (extended) language by translating the Silver specifications into an efficient Haskell representation. Language extensions are also specified as Silver attribute grammar fragments and the framework tools automatically compose specifications of the host language and chosen language extensions into a specification for the custom extended language.</p>
Derek Bodin, Phil Russell, Lijesh Krishnan, August Schwerdfeger, Eric Van Wyk, Eric Johnson, "Tool Demonstration: Silver Extensible Compiler Frameworks and Modular Language Extensions for Java and C", 2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM), vol. 00, no. , pp. 161, 2006, doi:10.1109/SCAM.2006.32
179 ms
(Ver 3.3 (11022016))