
Lund University
| LTH
Center for Applied Software Research
Research
| Publications
| People
| Events
| Industry Participation
| About
Object-Oriented Compiler Technology
Compiler techniques form the basis for implementation of programming languages, but also for design and implementation of translators between data representations (CAD data, configuration parameters, etc.). Also for development of software functions enforcing proper use of APIs/systems/libraries (checking that programming conventions are followed), descriptions of rules in terms of a (small dedicated) language is very useful since major parts of the actual software can then be automatically generated. Support for the development/definition of such so called domain-specific languages is then another important issue. These LUCAS efforts put an emphasis on object-oriented domain-specific languages and generation of compilers and other related tools.
The techniques and tools used and developed within LUCAS are based on so called Reference Attributed Grammars (RAGs), which is an object-oriented extension to attribute grammars that is easy to work with and allows natural descriptions of many different problems, including name and type analysis for object-oriented languages. Based on this technology we have developed a complete front end for Java, and are experimenting with different backends, including a Java to C compiler for real-time systems. Other example applications include other languages (e.g., the ABB robot programming language RAPID), and other analyses and computations (e.g., WCET analysis, visualization generation, design pattern checking, and static analysis).
Our current research on RAGs is directed towards:
• Circular RAGs (CRAGs) where circular attribute dependencies are allowed, and attributes on cycles are evaluated iteratively (to their fixed points). This is useful, e.g., in grammar flow analysis, live analysis, etc.
• Rewritable RAGs (ReRAGs) which support conditional rewriting of the abstract syntax tree. This allows different computations during compilation to be carried out on structures more suitable than the initial parse tree. This technique is heavily used both in the Java front end and for generating code.
• Practical tools. We build tools for RAGs and apply them for real problems. Issues of interest to us are support for reusable specifications (we apply aspect-oriented techniques) and support for combining declarative formalisms (like RAGs) with imperative code (like ordinary Java code). Our current system JastAdd II is used in our undergraduate course on compiler construction as well as in our research projects.
• Applications. We build various compiler applications using RAGs. Current examples include the Java compiler and a compiler for the ABB robot language RAPID.
People
Dr. Torbjörn Ekman, Dr. Görel Hedin, Lic. Eng. Anders Ive, Lic. Eng. Eva Magnusson, Dr. Anders Nilsson
Contact: Dr. Görel Hedin
| Funded projects | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | Funder |
| JastAdd | LTH | ||||||||||
| Dynamic distributed software supporting flexible systems | x | x | x | VINNOVA | |||||||
| FLEXCON | x | x | x | x | SSF |
Demos and applications
JastAdd II: An aspect-oriented compiler tool based on Reference Attributed Grammars
Postgraduate or industry courses
Software Engineering for Technical Managers at SEMC (2002)
Related undergraduate courses
Compiler Construction
Publications
2004
-
T. Ekman and G. Hedin.
Automatic renovation of Java programs using ReRAGs - examples and ideas
Position paper at 5th International Workshop on Object-Oriented Reengineering (OOR 2004). Oslo, June, 2004
- Eva Magnusson and Görel Hedin. Circular Reference Attributed Grammars Accepted for publication in Science of Computer Programming, Elsevier
-
A. Nilsson, A. Ive, T. Ekman and G. Hedin.
Implementing Java Compilers Using ReRAGs
Nordic Journal of Computing, Vol 11:3(213-234), 2004
- Görel Hedin and Eric van Wyk. Proceedings of the Fourth Workshop on Language Descriptions, Tools, and Applications (LDTA 2004) Electronic Notes of Theoretic Computer Science, Vol 110, pages 1-180, Elsevier, Dec 2004
-
Ekman, T., and Hedin, G.
Reusable Language Specification Modules in JastAdd II
Position paper at ERLS 2004, Workshop on Evolution and Reuse of Language Specifications for Domain-Specific Languages, Oslo, 2004
-
Ekman, T., Hedin, G.
Rewritable Reference Attributed Grammars
Proceedings of 18th European Conference on Object-Oriented Programming (ECOOP 2004), Oslo, Norway, June 14-18, 2004, LNCS, Springeer, (144-169)
-
Ekman, T
Rewritable Reference Attributed Grammars - design, implementation, and applications
Licentiate thesis
- T. Ekman and G. Hedin. Towards Comparing Tranformation Systems and Formalisms Position paper at Software Transformation Systems Workshop (STS'04 at GPCE'04)
2003
- Magnusson, E. Applications and Extensions of Reference Attributed Grammars Lic. thesis, Dissertation 19, ISSN 1404-1219, LU-CS-LIC:2003-3, June 2003
- Magnusson E. , Hedin G. Circular Reference Attributed Grammars - their Evaluation and Applications ENTCS 82(3), Elsevier, 2003
- Hedin, G. Compiler Construction 12th International Conference, CC 2003, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2003, Warsaw, Poland, April 7-11, 2003, Proceedings. LNCS 2622, Springer 2003
- Hedin, G. and Magnusson, E. The JastAdd system - an aspect-oriented compiler construction system Science of Computer Programming 47 (2003) 37-58, Elsevier
2000
- Persson, P., Hedin, G., An Interactive Environment for Real-Time Software Development In Proceedings of the 33rd International Conference on Technology of Object-Oriented Languages and Systems TOOLS Europe 2000), Mont St. Michel, France, June 2000
- Hedin, G. and Knudsen, J. L., On the Role of Language Constructs for Framework Design ACM Computing Surveys, Symposium on Object-Oriented Application Frameworks
- Persson, P., Predicting Time and Memory Demands of Object-Oriented Programs Licentiate Thesis, Lund Institute of Technology, Lund University, Lund, Sweden, 2000. ISSN 1404-1219, Dissertation 12, 2000
- Cornils, A. and Hedin, G., Statically Checked Documentation with Design Patterns In proceedings of TOOLS Europe 2000, the 33rd International Conference on Technology of Object-Oriented Languages
- Cornils, A. and Hedin, G., Tool Support for Design Patterns based on Reference Attributed Grammars In proceedings of WAGA00, Workshop on Attribute Grammars and Applications
© Center for Applied Software Research 2001-2007. Jonas.Wisbrant@cs.lth.se
Last update: Wednesday, 04-Apr-2007 11:45:43 CEST