TY - GEN
T1 - Scheme with classes, mixins, and traits
AU - Flatt, Matthew
AU - Findler, Robert Brace
AU - Felleisen, Matthias
PY - 2006
Y1 - 2006
N2 - The Scheme language report advocates language design as the composition of a small set of orthogonal constructs, instead of a large accumulation of features. In this paper, we demonstrate how such a design scales with the addition of a class system to Scheme. Specifically, the PLT Scheme class system is a collection of orthogonal linguistic constructs for creating classes in arbitrary lexical scopes and for manipulating them as first-class values. Due to the smooth integration of classes and the core language, programmers can express mixins and traits, two major recent innovations in the object-oriented world. The class system is implemented as a macro in terms of procedures and a record-type generator; the mixin and trait patterns, in turn, are naturally codified as macros over the class system.
AB - The Scheme language report advocates language design as the composition of a small set of orthogonal constructs, instead of a large accumulation of features. In this paper, we demonstrate how such a design scales with the addition of a class system to Scheme. Specifically, the PLT Scheme class system is a collection of orthogonal linguistic constructs for creating classes in arbitrary lexical scopes and for manipulating them as first-class values. Due to the smooth integration of classes and the core language, programmers can express mixins and traits, two major recent innovations in the object-oriented world. The class system is implemented as a macro in terms of procedures and a record-type generator; the mixin and trait patterns, in turn, are naturally codified as macros over the class system.
UR - http://www.scopus.com/inward/record.url?scp=33845924216&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=33845924216&partnerID=8YFLogxK
U2 - 10.1007/11924661_17
DO - 10.1007/11924661_17
M3 - Conference contribution
AN - SCOPUS:33845924216
SN - 3540489371
SN - 9783540489375
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 270
EP - 289
BT - Programming Languages and Systems - 4th Asian Symposium, APLAS 2006, Proceedings
PB - Springer Verlag
T2 - 4th Asian Symposium on Programming Languages and Systems, APLAS 2006
Y2 - 8 November 2006 through 10 November 2006
ER -