ACM Home Page
Please provide us with feedback. Feedback
Mixing source and bytecode: a case for compilation by normalization
Full text PdfPdf (415 KB)
Source
Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications table of contents
Nashville, TN, USA
SESSION: Language design table of contents
Pages 91-108  
Year of Publication: 2008
ISBN:978-1-60558-215-3
Also published in ...
Authors
Lennart C.L. Kats  Delft University of Technology, Delft, Netherlands
Martin Bravenboer  University of Oregon, Eugene, OR, USA
Eelco Visser  Delft University of Technology, Delft, Netherlands
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 20,   Downloads (12 Months): 187,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1449764.1449772
What is a DOI?

ABSTRACT

Language extensions increase programmer productivity by providing concise, often domain-specific syntax, and support for static verification of correctness, security, and style constraints. Language extensions can often be realized through translation to the base language, supported by preprocessors and extensible compilers. However, various kinds of extensions require further adaptation of a base compiler's internal stages and components, for example to support separate compilation or to make use of low-level primitives of the platform (e.g., jump instructions or unbalanced synchronization). To allow for a more loosely coupled approach, we propose an open compiler model based on normalization steps from a high-level language to a subset of it, the core language. We developed such a compiler for a mixed Java and (core) bytecode language, and evaluate its effectiveness for composition mechanisms such as traits, as well as statement-level and expression-level language extensions.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
2
3
 
4
5
 
6
7
 
8
C. Clifton. MultiJava: Design, implementation, and evaluation of a Java-compatible language supporting modular open classes and symmetric multiple dispatch. Technical Report 01-10, Department of Computer Science, Iowa State University, Nov. 2001.
9
 
10
 
11
A. B. Dov. infomancers-collections. http://code.google.com/p/infomancers-collections/
12
13
 
14
 
15
J. C. Hardwick and J. Sipelstein. Java as an intermediate language. Technical Report CMU-CS-96-161, School of Computer Science, Carnegie Mellon University, August 1996.
 
16
17
 
18
J. B. Kam and J. D. Ullman. Monotone data flow analysis frameworks. Acta Inf., 7:305--317, 1977.
 
19
L. C. L. Kats. java-csharp: C#-inspired language extensions for Java. http://strategoxt.org/Stratego/JavaCSharp/.
 
20
G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In M. Aks¸it and S. Matsuoka, editors, Proceedings of the European Conference on Object-Oriented Programming (ECOOP'07), volume 1241 of Lecture Notes in Computer Science, pages 220--242. Springer, 1997.
 
21
 
22
 
23
F. Logozzo and M. Fähndrich. On the relative completeness of bytecode analysis versus source code analysis. In L. Hendren, editor, Compiler Construction (CC'08), volume 4959 of Lecture Notes in Computer Science, pages 192--212. Springer, 2008.
 
24
 
25
 
26
27
 
28
N. Nystrom, M. Clarkson, and A. Myers. Polyglot: An Extensible Compiler Framework for Java. Compiler Construction (CC'03), 2622:138--152, Apr. 2003.
 
29
M. Odersky and al. An overview of the Scala programming language. Technical Report IC/2004/64, EPFL Lausanne, Switzerland, 2004.
 
30
S. Pedroni and N. Rappin. Jython Essentials. O'Reilly Media, Inc., 2002.
 
31
32
33
 
34
 
35
Sun Microsystems. The annotation processing tool (apt). http://java.sun.com/j2se/1.5.0/docs/guide/apt.
 
36
 
37
The XDoclet team. XDoclet: attribute-oriented programming. http://xdoclet.sourceforge.net/
 
38
A. Tolmach. An external representation for the GHC core language. http://haskell.org/ghc/docs/papers/core.ps.gz, September 2001.
 
39
 
40
 
41
 
42
E. Van Wyk, L. Krishnan, A. Schwerdfeger, and D. Bodin. Attribute grammar-based language extensions for Java. In E. Ernst, editor, European Conference on Object Oriented Programming (ECOOP'07), volume 4609 of Lecture Notes on Computer Science, pages 575--599. Springer Verslag, July 2007.
 
43
 
44
J. Warmer and A. Kleppe. Building a flexible software factory using partial domain specific models. In J. Gray, J.-P. Tolvanen, and J. Sprinkle, editors, Proceedings of the 6th OOPSLA Workshop on Domain-Specific Modeling (DSM 2006), volume TR-37 of Computer Science and Information System Reports, pages 15-22, Finland, October 2006. University of Jyväskylä.


Collaborative Colleagues:
Lennart C.L. Kats: colleagues
Martin Bravenboer: colleagues
Eelco Visser: colleagues