@inproceedings{6455412cbf654eaa953fa6c9c14a0608,
title = "Adding domain-specific and general purpose language features to Java with the Java language extender",
abstract = "The Java Language Extender is a compiler-generator tool that allows programmers to create new domain-adapted languages by importing a set of domain-specific language extensions into an extensible specification of Java 1.4. Language extensions define the syntax, semantic analysis, and optimizations of new language constructs. Java and the language extensions are specified as attribute grammar fragments written in Silver, an attribute grammar language supporting forwarding and higher-order attributes. Programmers need no implementation-level knowledge of the language extensions and the Silver tools automatically compose the programmer-selected extensions and the Java host language specification. We demonstrate several language extensions. One embeds the SQL database query language into Java and statically checks for syntax and type errors in SQL queries. Other extensions for the domain of computational geometry provide transformations that simplify the writing of efficient and robust geometric algorithms. General purpose extensions include Java 1.5 features such as the for-each loop and auto-boxing and unboxing and features from Pizza such as pattern matching.",
keywords = "Attribute grammars, Extensible languages, Forwarding",
author = "{Van Wyk}, Eric and Lijesh Krishnan and Derek Bodin and Eric Johnson",
year = "2006",
doi = "10.1145/1176617.1176696",
language = "English (US)",
isbn = "159593491X",
series = "Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA",
pages = "728--729",
booktitle = "Companion to the 21st ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications, OOPSLA 2006",
note = "21st Annual ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications, OOPSLA 2006 ; Conference date: 22-10-2006 Through 26-10-2006",
}