Abstract:
ion in the Engineering of Software Gregor Kiczales Xerox Palo Alto Research Center We now come to the decisive step of mathematical abstraction: we forget about what the symbols stand for. . . [The mathematician] need not be idle; there are many operations he can carry out with these symbols, without ever having to look at the things they stand for. Hermann Weyl, "The Mathematical Way of Thinking" (This appears at the beginning of the Building Abstractions With Data chapter of "Structure and Interpretation of Computer Programs" by Harold Abelson and Gerald Jay Sussman.) This is an abridged version of a longer paper in preparation. The eventual goal is to present, to those outside of the reflection and meta-level architecturescommunity, the intuitions surroundingopen implementations and the use of meta-level architectures, particularly metaobject protocols, to achieve them. Theview of abstraction onwhich software engineering is baseddoes not support the reality of practice: it sug...
Citations
|
2751
|
Communicating sequential processes
– Hoare
- 1978
|
|
713
|
The Art of Metaobject Protocol
– Kiczales, Rivieres, et al.
- 1991
|
|
386
|
Concepts and Experiments in Computational Reflection
– Maes
- 1987
|
|
117
|
The performance implications of thread management alternatives for shared memory multiprocessors
– Anderson, Lazowska, et al.
|
|
97
|
Object-Oriented Programming in Common Lisp: A Programming Guide in CLOS
– Keene
- 1989
|
|
96
|
Metaclasses are first class: The ObjVlisp model
– Cointe
- 1987
|
|
62
|
Hybrid group reflective architecture for objectoriented concurrent reflective programming
– Matsuoka, Watanabe, et al.
- 1991
|
|
56
|
Implementational reflection in Silica
– Rao
- 1991
|
|
55
|
Types and Effects: Towards the Integration of Functional and Imperative Programming
– Lucassen
- 1987
|
|
48
|
Common Lisp: The Language (second edition
– Steele
- 1990
|
|
45
|
An architecture for an open compiler
– Lamping, Kiczales, et al.
- 1992
|
|
45
|
A reflective architecture for an object-oriented distributed operating system
– Yokote, Teraoka, et al.
- 1989
|
|
44
|
Coarse-Grain Parallel Programming in Jade
– Lam, Rinard
- 1991
|
|
43
|
Commonloops: Merging lisp and object-oriented programming
– Bobrow, Kahn, et al.
|
|
42
|
Partial evaluation applied to numerical computation
– Berlin
- 1990
|
|
32
|
On the design of programming languages
– Wirth
- 1974
|
|
31
|
Compiling parallel programs by optimizing performance
– Chen, Choo, et al.
- 1988
|
|
23
|
An actor-based metalevel architecture for group-wide reflection
– Watanabe, Yonezawa
- 1990
|
|
18
|
D.G.: Metaobject protocols: Why we want them and what else they can do
– Kiczales, Ashley, et al.
- 1993
|
|
12
|
Towards relaxing assumptions in languages and their implementations
– Shaw, Wulf
- 1980
|
|
11
|
Uniform access to heterogeneous knowledge structures or Why Joshua is better than conniving or planning
– Rowley, Shrobe, et al.
- 1987
|
|
8
|
Towards a better understanding of compile-time mops for parallelizing compilers
– Jr
- 1992
|
|
7
|
Coarse-grained parallelism using metaobject protocols
– Jr
- 1991
|
|
6
|
The design of a metaobject protocol controlling the behavior of a scheme interpreter
– Vahdat
- 1992
|
|
5
|
An object-oriented concurrent reflective architecture for distributed computing environment
– Ichisugi, Matsuoka, et al.
- 1991
|
|
5
|
A new Reflective Architecture: AL-1 Approach
– Ishikawa, Okamura
- 1991
|
|
3
|
Open compilers
– Ashley
- 1992
|
|
1
|
Meta-crystal -- a metalanguage for parallel-program optimization
– Yang, Choo, et al.
- 1990
|