Eiffel: the language
The early history of Smalltalk
HOPL-II The second ACM SIGPLAN conference on History of programming languages
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A syntactic approach to type soundness
Information and Computation
Environmental acquisition: a new inheritance-like abstraction mechanism
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
UML distilled: applying the standard object modeling language
UML distilled: applying the standard object modeling language
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Microsoft C# Language Specifications
Microsoft C# Language Specifications
The Zope Book
The Java Language Specification
The Java Language Specification
Ownership, encapsulation and the disjointness of type and effect
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Design Patterns and Language Design
Computer
DrScheme: a programming environment for Scheme
Journal of Functional Programming
Environmental Acquisition in Network Management
LISA '02 Proceedings of the 16th USENIX conference on System administration
Interaction-based programming with classages
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
In 1996, Gil and Lorenz proposed programming language constructs for specifying environmental acquisition in addition to inheritance acquisition for objects. They noticed that in many programs, objects are arranged in containment hierarchies and need to obtain information from their container objects. Therefore, if languages allowed programmers to specify such relationships directly, type systems and run-time environments could enforce the invariants that make these programming patterns work.In this paper, we present a formal version of environmental acquisition for class-based languages. Specifically, we introduce an extension of the ClassicJava model with constructs for environmental acquisition of fields and methods, a type system for the model, a reduction semantics, and a type soundness proof. We also discuss how to scale the model to a full-scale Java-like programming language.