MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Extensible algebraic datatypes with defaults (2001) [22 citations — 4 self]

Download:
Download as a PDF | Download as a PS
by Matthias Zenger, Martin Odersky
In Proceedings of the International Conference on Functional Programming
http://lampwww.epfl.ch/papers/icfp01.ps.gz
Add To MetaCart

Abstract:

A major problem for writing extensible software arises when recursively defined datatypes and operations on these types have to be extended simultaneously without modifying existing code. This paper introduces Extensible Algebraic Datatypes with Defaults which promote a simple programming pattern to solve this well known problem. We show that it is possible to encode extensible algebraic datatypes in an object-oriented language, using a new design pattern for extensible visitors. Extensible algebraic datatypes have been successfully applied in the implementation of an extensible Java compiler. Our technique allows for the reuse of existing components in compiler extensions without the

Citations

3620 Design Patterns: Elements of Reusable Object-oriented Software – Gamma, Helm, et al. - 1994
1415 The Java Language Specification – Gosling, Joy, et al. - 1996
762 On understanding types, data abstraction, and polymorphism – Cardelli, Wegner - 1985
298 Pizza into Java: Translating theory into practice – Odersky, Wadler - 1997
183 The reflexive chemical abstract machine and the join-calculus – Fournet, Gonthier - 1996
156 Monad transformers and modular interpreters – Liang, Hudak, et al. - 1995
125 MultiJava: Modular open classes and symmetric multiple dispatch for Java – Clifton, Leavens, et al. - 2000
112 Modular object-oriented programming with units and mixins – FINDLER, M - 1998
82 Object-oriented programming versus abstract data types – COOK - 1991
69 M.: JavaParty {Transparent Remote Objects in Java, in: Concurrency: Practice and Experience – Philippsen, Zenger
50 Mixin modules – DUGGAN, C - 1996
50 The essence of the visitor pattern – Palsberg, Jay - 1997
39 Simple objects for Standard ML – REPPY, RIECKE - 1996
38 On objects and events – Eugster, Guerraoui, et al. - 2001
26 Compound types for Java – Büchi, Weck
26 An Object-Oriented Compiler Framework – Gagnon - 1998
26 Programming with polymorphic variants – Garrigue - 1998
26 Synthesizing object-oriented and functional design to promote re-use – KRISHNAMURTHI, FELLEISEN, et al. - 1998
20 Programming Languages for Reusable Software Components – Flatt - 1999
20 Code reuse through polymorphic variants – GARRIGUE
18 Compiler Construction – Wirth - 1996
14 The Objective Caml system release 3.00 Documentation and user's manual – Leroy, Doligez, et al. - 2000
11 Implementing extensible compilers – Zenger, Odersky - 2001
6 The expression problem. Discussion on the Java-Genericity mailing list – Wadler - 1998
6 Erweiterbare Übersetzer – Zenger - 1998
5 Modular abstract interpreters. Unpublished manuscript – Findler - 1995
3 Principles and preliminary design for ML2000 – Appel, Cardelli, et al. - 1999
3 Synchronous Java compiler. Projet de semestre. École Polytechnique Fédérale de – Cavin - 2000
3 The evolution of numerical computing in Java. Sun Microsystems Laboratories. http://java.sun.com/people/jag/FP.html – Gosling
3 A case for synchronous objects in compound-bound architectures. Unpublished. École Polytechnique Fédérale de Lausanne – Petitpierre - 2000
3 Mixin composition strategies for the modular implementation of aspect weaving — the EPP preprocessor and it’s module description language – Roudier, Ichisugi - 1998
3 Compound Types in Java. Projet de semestre. École Polytechnique Fédérale de – Zermatten - 2000
2 Extensible algebraic datatypes through prototypes and subtyping – Mäenpää, Oksanen - 2000
2 EspressoGrinder distribution – Odersky, Philippsen - 1995