Structure and interpretation of computer programs
Structure and interpretation of computer programs
Using prototypical objects to implement shared behavior in object-oriented systems
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Objects as closures: abstract semantics of object-oriented languages
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Foundations of object-oriented languages: types and semantics
Foundations of object-oriented languages: types and semantics
The Java Language Specification
The Java Language Specification
A Denotational Semantics of Inheritance
A Denotational Semantics of Inheritance
Dynamically scoped functions as the essence of AOP
ACM SIGPLAN Notices
Algol-60 Implementation
Unified selection from lists, arrays, and objects
Computer Languages, Systems and Structures
Language subsetting via reflection and overloading
FIE'09 Proceedings of the 39th IEEE international conference on Frontiers in education conference
Hi-index | 0.00 |
Dynamically typed environment-passing interpreters (EPIs), such as Scheme, are known for their small footprint. In this era of ubiquitous computing, there is an advantage for providing in situ programming support for systems having limited resources. Thus, EPIs may play an important role in programming embedded systems, especially with system-on-a-chip approaches. It is desirable that embedded interpreters be full featured, such as including an object system. By taking a view that equates function definitions with classes and environments with objects, it is shown how any EPI having functions and environments as first-class objects can be made object-oriented with a strong inheritance model through the addition of proxies and judicious use of dynamic scope and/or assignment. Moreover, the sum total of the necessary changes is surprisingly small. The result is an object-oriented interpreter with little additional cost in terms of interpreter size or specialized syntax.