Towards a new model of abstraction in software engineering

Existing abstraction techniques lead to implementations which overly constrain their users. This happens because these techniques force the implementor to make all the decisions about how to implement the abstraction including some which would better be made by the user. The author has developed a new model of abstraction, which he calls the two-view approach; the first view is the traditional one, it provides the functionality of the abstraction, the second view allows the user to participate in some implementation decisions. This approach promises to be general enough to handle a wide range of applications.<<ETX>>

[1]  Andrew A. Berlin,et al.  Partial evaluation applied to numerical computation , 1990, LISP and Functional Programming.

[2]  Fumio Teraoka,et al.  A Reflective Architecture for an Object-Oriented Distributed Operating System , 1989, ECOOP.

[3]  Akinori Yonezawa,et al.  An Actor-Based Metalevel Architecture for Group-Wide Reflection , 1990, REX Workshop.

[4]  Akinori Yonezawa,et al.  Hybrid Group Reflective Architecture for Object-Oriented Concurrent Reflective Programming , 1991, ECOOP.

[5]  Mary Shaw,et al.  Toward relaxing assumptions in languages and their implementations , 1980, SIGP.

[6]  Pierre Cointe Metaclasses are first class: The ObjVlisp Model , 1987, OOPSLA 1987.

[7]  Walter Hamscher,et al.  Joshua: Uniform Access to Heterogeneous Knowledge Structures, or why Joshing Is Better than Conniving or Planning , 1987, AAAI.

[8]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[9]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[10]  Jr. Guy L. Steele,et al.  Common LISP: the language (2nd ed.) , 1990 .

[11]  Joannes M. Lucassen Types and Effects Towards the Integration of Functional and Imperative Programming. , 1987 .

[12]  Sonya E. Keene,et al.  Object-oriented programming in COMMON LISP - a programmer's guide to CLOS , 1989 .

[13]  Niklaus Wirth,et al.  On the Design of Programming Languages , 1974, IFIP Congress.

[14]  Henry M. Levy,et al.  The Performance Implications of Thread Management Alternatives for Shared-Memory Multiprocessors , 1989, IEEE Trans. Computers.

[15]  Monica S. Lam,et al.  Coarse-grain parallel programming in Jade , 1991, PPOPP '91.

[16]  Daniel G. Bobrow,et al.  CommonLoops: Merging Lisp and Object-Oriented Programming , 1986, OOPSLA.

[17]  Ramana Rao,et al.  Implementational Reflection in Silica , 1991, ECOOP.

[18]  Daniel G. Bobrow,et al.  CommonLoops: merging Lisp and object-oriented programming , 1986, OOPLSA '86.

[19]  Pattie Maes Concepts and experiments in computational reflection , 1987, OOPSLA 1987.