ACM Home Page
Please provide us with feedback. Feedback
Statically scoped object adaptation with expanders
Full text PdfPdf (308 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications table of contents
Portland, Oregon, USA
SESSION: Language design table of contents
Pages: 37 - 56  
Year of Publication: 2006
ISBN:1-59593-348-4
Also published in ...
Authors
Alessandro Warth  University of California, Los Angeles, CA
Milan Stanojević  University of California, Los Angeles, CA
Todd Millstein  University of California, Los Angeles, CA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 65,   Citation Count: 6
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1167473.1167477
What is a DOI?

ABSTRACT

This paper introduces the expander, a new object-oriented (OO) programming language construct designed to support object adaptation. Expanders allow existing classes to be noninvasively updated with new methods, fields, and superinterfaces. Each client can customize its view of a class by explicitly importing any number of expanders. This view then applies to all instances of that class, including objects passed to the client from other components. A form of expander overriding allows expanders to interact naturally with OO-style inheritance.We describe the design, implementation, and evaluation of eJava, an extension to Java supporting expanders. We illustrate eJava's syntax and semantics through several examples. The statically scoped nature of expander usage allows for a modular static type system that prevents several important classes of errors. We describe this modular static type system informally, formalize eJava and its type system in an extension to Featherweight Java, and prove a type soundness theorem for the formalization. We also describe a modular compilation strategy for eJava, which we have implemented using the Polyglot extensible compiler framework. Finally, we illustrate the practical benefits of eJava by using this compiler in two experiments.


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
G. Baumgartner, M. Jansche, and K. Laufer. Half & Half: Multiple dispatch and retroactive abstraction for Java. Technical Report OSU-CISRC-5/01-TR08, Department of Computer and Information Science, The Ohio State University, revised March 2002.
 
2
A. Bergel. Personal communication, Oct. 2005.
3
 
4
A. Bergel, S. Ducasse, and R. Wuyts. Classboxes: A minimal module model supporting local rebinding. In Proceedings of JMLC 2003 (Joint Modular Languages Conference), volume 2789 of LNCS, pages 122--131. Springer-Verlag, 2003. Best Award Paper.
5
6
7
 
8
Eclipse home page. http://www.eclipse.org.
 
9
Eclipse Bug System home page. https://bugs.eclipse.org/bugs.
 
10
 
11
E. Ernst. Higher-order hierarchies. In Proceedings of the European Conference on Object-Oriented Programming, LNCS, Darmstadt, Germany, July 2003. Springer Verlag.
12
13
 
14
 
15
 
16
17
18
 
19
20
21
 
22
N. Nystrom, M. R. Clarkson, and A. C. Myers. Polyglot: An extensible compiler framework for Java. In Proceedings of CC 2003: 12'th International Conference on Compiler Construction. Springer-Verlag, Apr. 2003.
23
 
24
25
 
26
Polyglot for Java 1.5 home page. http://www.sable.mcgill.ca/~jlhotak/polyglot-custom.
 
27
The Scala language home page. http://scala.epfl.ch.
 
28
N. Schärli, S. Ducasse, O. Nierstrasz, and A. Black. Traits: Composable units of behavior. In Proceedings ECOOP 2003 (European Conference on Object-Oriented Programming), volume 2743 of LNCS, pages 248--274. Springer Verlag, July 2003.
 
29
 
30
 
31
 
32
M. Torgersen. Virtual types are statically safe. In International Workshop on Foundations of Object-Oriented Languages (FOOL), informal proceedings, Jan. 1998.
 
33
A. Warth and T. Millstein. Featherweight eJava. Technical Report CSD-TR-060013, UCLA Computer Science Department, 2006. ftp://ftp.cs.ucla.edu/tech-report/2006-reports/060013.pdf.
 
34


Collaborative Colleagues:
Alessandro Warth: colleagues
Milan Stanojević: colleagues
Todd Millstein: colleagues