Structure and interpretation of computer programs
Structure and interpretation of computer programs
Object-oriented programming with flavors
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Object-oriented programming in scheme
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
The programming language jigsaw: mixins, modularity and multiple inheritance
The programming language jigsaw: mixins, modularity and multiple inheritance
Typing the specialization interface
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Syntactic abstraction in Scheme
Lisp and Symbolic Computation
Object-oriented programming in the BETA programming language
Object-oriented programming in the BETA programming language
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Units: cool modules for HOT languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Revised5 report on the algorithmic language scheme
ACM SIGPLAN Notices
Composable and compilable macros:: you want it when?
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
A Primitive Calculus for Module Systems
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
Implementing Layered Designs with Mixin Layers
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
DrScheme: A Pedagogic Programming Environment for Scheme
PLILP '97 Proceedings of the9th International Symposium on Programming Languages: Implementations, Logics, and Programs: Including a Special Trach on Declarative Programming Languages in Education
An Algebraic Approach to Mixins and Modularity
ALP '96 Proceedings of the 5th International Conference on Algebraic and Logic Programming
Jam---designing a Java extension with mixins
ACM Transactions on Programming Languages and Systems (TOPLAS)
Applying traits to the smalltalk collection classes
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Super and inner: together at last!
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Scalable component abstractions
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Libscheme: scheme as a C library
VHLLS'94 Proceedings of the USENIX 1994 Very High Level Languages Symposium Proceedings on USENIX 1994 Very High Level Languages Symposium Proceedings
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Experience report: scheme in commercial web application development
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
The design and implementation of typed scheme
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
SC '09 Proceedings of the 8th International Conference on Software Composition
A functional I/O system or, fun for freshman kids
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Adding State and Visibility Control to Traits Using Lexical Nesting
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Contracts for first-class modules
DLS '09 Proceedings of the 5th symposium on Dynamic languages
Science of Computer Programming
Growing a language: the GLoo perspective
SC'08 Proceedings of the 7th international conference on Software composition
Random testing for higher-order, stateful programs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Contracts for first-class classes
Proceedings of the 6th symposium on Dynamic languages
Nested and dynamic contract boundaries
IFL'09 Proceedings of the 21st international conference on Implementation and application of functional languages
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Traits.js: robust object composition and high-integrity objects for ecmascript 5
Proceedings of the 1st ACM SIGPLAN international workshop on Programming language and systems technologies for internet clients
Gradual typing for first-class classes
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Scala macros: let our powers combine!: on how rich syntax and static types work with metaprogramming
Proceedings of the 4th Workshop on Scala
Template constructors for reusable object initialization
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Contracts for First-Class Classes
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
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.