|
ABSTRACT
We identify three programming language abstractions for the construction of reusable components: abstract type members, explicit selftypes, and modular mixin composition. Together, these abstractions enable us to transform an arbitrary assembly of static program parts with hard references between them into a system of reusable components. The transformation maintains the structure of the original system. We demonstrate this approach in two case studies, a subject/observer framework and a compiler front-end.
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
|
Kim Barrett , Bob Cassels , Paul Haahr , David A. Moon , Keith Playford , P. Tucker Withington, A monotonic superclass linearization for Dylan, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.69-82, October 06-10, 1996, San Jose, California, United States
|
 |
3
|
|
| |
4
|
|
| |
5
|
|
 |
6
|
Peter Canning , William Cook , Walter Hill , Walter Olthoff , John C. Mitchell, F-bounded polymorphism for object-oriented programming, Proceedings of the fourth international conference on Functional programming languages and computer architecture, p.273-280, September 11-13, 1989, Imperial College, London, United Kingdom
[doi> 10.1145/99370.99392]
|
| |
7
|
|
 |
8
|
|
| |
9
|
ECMA. C# Language Specification. Technical Report Standard ECMA-334, 2nd Edition, European Computer Manufacturers Association, December 2002.
|
| |
10
|
E. Ernst. gBeta: A language with virtual attributes, block structure and propagating, dynamic inheritance. PhD thesis, Department of Computer Science, University of Aarhus, Denmark, 1999.
|
| |
11
|
|
| |
12
|
E. Ernst. Higher-Order Hierarchies. In L. Cardelli, editor, Proceedings ECOOP 2003, LNCS 2743, pages 303--329, Heidelberg, Germany, July 2003. Springer-Verlag.
|
 |
13
|
|
| |
14
|
|
 |
15
|
|
| |
16
|
James Gosling , Bill Joy , Guy Steele , Gilad Bracha, Java Language Specification, Second Edition: The Java Series, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 2000
|
 |
17
|
|
| |
18
|
|
| |
19
|
|
 |
20
|
|
| |
21
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William G. Griswold, An Overview of AspectJ, Proceedings of the 15th European Conference on Object-Oriented Programming, p.327-353, June 18-22, 2001
|
| |
22
|
G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In Proceedings of the 11th European Conference on Object-Oriented Programming, pages 220--242, Jyväskylä, Finland, 1997.
|
| |
23
|
|
 |
24
|
Xavier Leroy, Manifest types, modules, and separate compilation, Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.109-122, January 16-19, 1994, Portland, Oregon, United States
[doi> 10.1145/174675.176926]
|
| |
25
|
X. Leroy, D. Doligez, J. Garrigue, D. Rémy, and J. Vouillon. The Objective Caml system release 3.00, documentation and user's manual, April 2000.
|
| |
26
|
R. Lopez-Herrejon, D. Batory, and W. Cook. Evaluating support for features in advanced modularization technologies. In Proceedings of the European Conference on Object-Oriented Programming, number July in Springer LNCS, 2005.
|
 |
27
|
|
| |
28
|
O. L. Madsen, B. Moller-Pedersen, and K. Nygaard. Object Oriented Programming in the BETA Programming Language. Addison Wesley, June 1993.
|
 |
29
|
O. L. Madsen , B. Moller-Pedersen, Virtual classes: a powerful mechanism in object-oriented programming, Conference proceedings on Object-oriented programming systems, languages and applications, p.397-406, October 02-06, 1989, New Orleans, Louisiana, United States
|
 |
30
|
Sean McDirmid , Matthew Flatt , Wilson C. Hsieh, Jiazzi: new-age components for old-fasioned Java, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.211-222, October 14-18, 2001, Tampa Bay, FL, USA
|
 |
31
|
|
 |
32
|
Nathaniel Nystrom , Stephen Chong , Andrew C. Myers, Scalable extensibility via nested inheritance, Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 24-28, 2004, Vancouver, BC, Canada
|
| |
33
|
Object Technology International. Eclipse Platform Technical Overview, Feb. 2003. www.eclipse.org.
|
| |
34
|
M. Odersky and al. An overview of the scala programming language. Technical Report IC/2004/64, EPFL Lausanne, Switzerland, 2004.
|
| |
35
|
M. Odersky, V. Cremet, C. Röckl, and M. Zenger. A nominal theory of objects with dependent types. In Proc. ECOOP 2003, Springer LNCS 2743, July 2003.
|
 |
36
|
|
| |
37
|
M. Odersky and M. Zenger. Independently extensible solutions to the expression problem. In Proc. FOOL 12, Jan. 2005. http://homepages.inf.ed.ac.uk/wadler/fool.
|
| |
38
|
|
 |
39
|
|
| |
40
|
D. Rémy and J. Vuillon. On the (un)reality of virtual types. available from http://pauillac.inria.fr/remy/work/virtual, Mar. 2000.
|
| |
41
|
N. Schärli, S. Ducasse, O. Nierstrasz, and A. Black. Traits: Composable Units of Behavior. In Proceedings of the 17th European Conference on Object-Oriented Programming, Darmstadt, Germany, June 2003.
|
| |
42
|
|
| |
43
|
|
| |
44
|
K. K. Thorup. Genericity in java with virtual types. In Proc. ECOOP '97, LNCS 1241, pages 444--471, June 1997.
|
| |
45
|
M. Torgersen. The expression problem revisited --- Four new solutions using generics. In Proceedings of the 18th European Conference on Object-Oriented Programming, Oslo, Norway, June 2004.
|
| |
46
|
M. Torgersen, E. Ernst, and C. P. Hansen. Wild FJ. In Proc. FOOL 12, Jan. 2005.
|
 |
47
|
Mads Torgersen , Christian Plesner Hansen , Erik Ernst , Peter von der Ahé , Gilad Bracha , Neal Gafter, Adding wildcards to the Java programming language, Proceedings of the 2004 ACM symposium on Applied computing, March 14-17, 2004, Nicosia, Cyprus
[doi> 10.1145/967900.968162]
|
| |
48
|
A. Wittmann. Towards Caesar: Family polymorphism for Java. Master's thesis, Technische Universität Darmstadt, Fachbereich Informatik, 2003.
|
| |
49
|
M. Zenger. Erweiterbare Übersetzer. Master's thesis, University of Karlsruhe, August 1998.
|
| |
50
|
|
| |
51
|
|
| |
52
|
M. Zenger. Programming Language Abstractions for Extensible Software Components. PhD thesis, Department of Computer Science, EPFL, Lausanne, March 2004.
|
| |
53
|
M. Zenger and M. Odersky. Implementing extensible compilers. In ECOOP Workshop on Multiparadigm Programming with Object-Oriented Languages, Budapest, Hungary, June 2001.
|
CITED BY 30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bent Bruun Kristensen , Ole Lehrmann Madsen , Birger Møller-Pedersen, The when, why and why not of the BETA programming language, Proceedings of the third ACM SIGPLAN conference on History of programming languages, p.10-1-10-57, June 09-10, 2007, San Diego, California
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Giorgia Mattos , Rafael Dueire Lins , Andrei de Araújo Formiga , Fernando Mário Junqueira Martins, BigBatch: a document processing platform for clusters and grids, Proceedings of the 2008 ACM symposium on Applied computing, March 16-20, 2008, Fortaleza, Ceara, Brazil
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Christian Hofer , Klaus Ostermann , Tillmann Rendel , Adriaan Moors, Polymorphic embedding of dsls, Proceedings of the 7th international conference on Generative programming and component engineering, October 19-23, 2008, Nashville, TN, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|