Download:
|
by Gilad Bracha, Charles F. Clark, Douglas B. Orr
http://jerry.cs.uiuc.edu/reflection/washington/postscript/lindstrom.ps
Add To MetaCart
Abstract:
A new approach to program modularity is presented, based on three key ideas: (i) elevating data type, and (iii) representing modules as objects for programmed manipulation and retention. The result is an innovative system architecture for program construction, with flexible capabilities for name space management, inter-process sharing, and incremental loading and relinking. The necessary reflective powers are provided by a permanently running system process exporting a wide repertory of module manipulation and delivery services. This approach draws on insights from both programming languages and system architecture. From programming languages, we have taken inspiration from the power of inheritance in object-oriented programming languages, and the importance of types as a basis for secure, evolvable module interfaces. From system architecture, we have profited from the server process approach to system organization, and respect for the crucial role of module binding as a system flexibility governor. A case study applying this architecture to C++ is presented, as well as a brief assessment of its role in a more comprehensive architecture for persistent object management.
Citations
|
1127
|
SmallTalk 80: The Language and its Implementation
– Goldberg, Robson
- 1983
|
|
695
|
The Art of the Metaobject Protocol
– Kiczales, Rivires, et al.
- 1991
|
|
331
|
Mixin-based inheritance, in
– Bracha, Cook
- 1990
|
|
167
|
Modules for Standard ML
– MacQueen
|
|
154
|
Operations on records
– Cardelli, Mitchell
- 1989
|
|
147
|
Reflection and Semantics in a Procedural Language
– Smith
- 1982
|
|
131
|
The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance
– Bracha
- 1992
|
|
119
|
Working with persistent objects: To swizzle or not to swizzle
– Moss
- 1992
|
|
87
|
Modularity meets inheritance, in
– Bracha, Lindstrom
- 1992
|
|
83
|
The programming language oberon
– Wirth
- 1988
|
|
65
|
Reusing object-oriented designs
– Johnson, Russo
- 1991
|
|
62
|
A record calculus based on symmetric concatenation
– Harper, Pierce
- 1991
|
|
53
|
Type theories and object-oriented programming
– Danforth, Tomlinson
- 1988
|
|
46
|
Combination of Inheritance Hierarchies
– Ossher, Harrison
- 1992
|
|
45
|
The Oberon System
– Wirth, Gutknecht
- 1989
|
|
35
|
Safe type checking in a statically typed object-oriented programming language
– Bruce
- 1993
|
|
29
|
OMOS --- An object server for program execution
– Orr, Mecklenburg
- 1992
|
|
19
|
Dynamic Program Monitoring and Transformation Using the OMOS Object Server
– Orr, Mecklenburg, et al.
- 1994
|
|
18
|
PCLOS: A Flexible Implementation of CLOS Persistence
– Paepcke
- 1988
|
|
16
|
Runtime access to type information in C
– Interrante, Linton
- 1990
|
|
14
|
Two Extensions to C++: A Dynamic Link Editor and Inner Data
– Gautron, Shapiro
- 1987
|
|
14
|
Fast and Flexible Shared Libraries
– Orr, Bonn, et al.
- 1993
|
|
13
|
Adding new code to a running C++ program
– Dorward, Sethi, et al.
- 1990
|
|
13
|
Shared libraries
– Gingell
- 1989
|
|
13
|
Shared libraries as objects
– Seeley
- 1990
|
|
5
|
Instantiation of C++ objects in shared memory
– Jordan
- 1991
|
|
5
|
The persistent object system MetaStore: Persistence via metaprogramming
– Lee
- 1992
|
|
5
|
Shared Objects
– Mach
- 1992
|
|
5
|
Object Oberon — a modest object-oriented language
– Mossenbock, Templ
- 1989
|
|
3
|
Modules as values in a persistent object store
– Bracha, Clark, et al.
- 1993
|
|
3
|
A framework for module-based language processors
– Banavar, Lindstrom
- 1993
|
|
2
|
Remote procedure call specialization with the OMOS object server
– Ford, Lepreau, et al.
- 1993
|
|
1
|
Ravindra Kuramkote. Strange bedfellows: Issues in object naming under Unix. Unpublished note
– Orr, Mecklenburg
- 1993
|