ABSTRACT
The design space of object-based languages is characterized in terms of objects, classes, inheritance, data abstraction, strong typing, concurrency, and persistence. Language classes (paradigms) associated with interesting subsets of these features are identified and language design issues for selected paradigms are examined. Orthogonal dimensions that span the object-oriented design space are related to non-orthogonal features of real languages. The self-referential application of object-oriented methodology to the development of object-based language paradigms is demonstrated.
Delegation is defined as a generalization of inheritance and design alternatives such as non-strict, multiple, and abstract inheritance are considered. Actors and prototypes are presented as examples of classless (delegation based) languages. Processes are classified by their degree of internal concurrency. The potential inconsistency of object-oriented sharing and distributed autonomy is discussed, suggesting that compromises between sharing and autonomy will be necessary in designing strongly typed object-oriented distributed database languages.
- Ag.Agha G., Actors, A Model of Concurrent Computation in Distributed Systems, MIT Press, 1986.]] Google ScholarDigital Library
- BG.Bernstein B. A. and Goodman N., Concurrency Control in Distributed Database Systems, Computing Surveys, June 1981.]] Google ScholarDigital Library
- Co.Cook William, Self-Referential Models of Inheritance, Brown University Report, March 1987.]]Google Scholar
- DG.DeMichel L. G. and Gabriel R. P., The Common Lisp Object System, Proc ECOOP 1987.]] Google ScholarDigital Library
- Do.Doeppner T. W., Threads - A System for the Support of Concurrent Programming, Brown University Computer Science Tech Report CS-87-I1, June 1987.]]Google Scholar
- DOD.Ada Reference Manual, US Dept of Defense, july 1980.]]Google Scholar
- GR.Goldberg A. and Robson D., Smalltalk 80: The Language and Its Implementation, Addison-Wesley 1983.]] Google ScholarDigital Library
- Ha.Hansen P. B., Distributed Processes, A Concurrent Programming Concept, CACM 1978.]] Google ScholarDigital Library
- HN.Hailpern B. and Nguyen V., A Generalized Object Model, In Research Directions in Object- Oriented Programming, Eds. Shriver and Wegner, MIT Press, 1987.]] Google ScholarDigital Library
- Ho.Hoare C. A. R., Monitors, An Operating System Structuring Concept, CACM, October 1974.]] Google ScholarDigital Library
- Ho1.Hoare (3. A. R., Communicating Sequential Processes, CACM, August 1978.]] Google ScholarDigital Library
- IT.Ishikawa Y. and Tokoro M., Orient 84K: An Object-Oriented Concurrent Programming Language for Knowledge Representation, In Object-Oriented Concurrent Programming, Eds ~onezawa and Tokoro, MIT Press 1987.]] Google ScholarDigital Library
- Li.Lieberman H., Using Prototypical Objects to Implement Shared Behavior in Object-Oriented Languages, OOPSLA 86.]] Google ScholarDigital Library
- LM.Lynch N. and Merritt M., Introduction to the Theory of Nested Transactions, MIT/LCS/TR-367, July 1986.]] Google ScholarDigital Library
- LS.Liskov B. and Scheifler R., Guardians and Actions, Linguistic Support for Robust Distributed Programs, TOPLAS, July 1983.]] Google ScholarDigital Library
- LSAS.Liskov B., Snyder A., Atkinson R., and Schaffert C., Abstraction Mechanisms in CLU, CACM, August 1977.]] Google ScholarDigital Library
- LTP.LaIonde W. R., Thomas D. A., and Pugh J. R., An Exemplar-Based Smalltalk, OOPSLA 86.]] Google ScholarDigital Library
- Mo.Moon D., Object-Oriented Programming with Flavors, OOPSLA 86.]] Google ScholarDigital Library
- Sc.Schaffert C. et al., An Introduction to Trellis/Owl, OOPSLA 86.]] Google ScholarDigital Library
- Sn.Snyder A., Encapsulation and Inheritance in Object-Oriented Languages, OOPSLA 86.]] Google ScholarDigital Library
- St.Stein Lynn, Delegation is Inheritance, OOPSLA 87.]] Google ScholarDigital Library
- Str.Strom R., A Comparison of the Object-Oriented and Process Paradigms, SIGPLAN Notices, October 1986.]] Google ScholarDigital Library
- SY.Strom R. and ~emini S., NIL: An integrated Language and System for Distributed Programming, Proc SIGPLAN '83 Symposium on Language Issues in Software Systems, June 1983.]] Google ScholarDigital Library
- SYW.Strom R., Yemini S., and Wegner P., Viewing Ada from a Process Model Perspective, International Ada Conference, Paris, May 1985.]] Google ScholarDigital Library
- We.Wegner P., The Object-Oriented Classification Paradigm, in Research Directions in Object-Oriented Programming, Eds Shriver and Wegner, MIT Press 1987.]] Google ScholarDigital Library
- Wei.Weihl W. E., Specification and Implementation of Atomic Data Types, PhD Thesis, MIT March 1984.]]Google Scholar
- Wi.Wirth N., Programming in Modula 2, Springer Verlag 1982.]]Google Scholar
- WZ.Wegner P. and Zdoaik S., Why Like Isn't Like Is-a, Brown University Technical Report, April 1984.]]Google Scholar
- YBS.Yonezawa A., Briot J. and Shibayama E., Tokyo Institute of Technology, OOPSLA 1986.]]Google Scholar
- ZW.Zdonik S., and Wegner P., Language and Methodology for Object-Oriented Databases, Hawaii Conference on System Sciences, Jan 1986.]]Google Scholar
Index Terms
- Dimensions of object-based language design
Recommendations
Dimensions of object-based language design
The design space of object-based languages is characterized in terms of objects, classes, inheritance, data abstraction, strong typing, concurrency, and persistence. Language classes (paradigms) associated with interesting subsets of these features are ...
Object-centered design: a five-phase introduction to object-oriented programming in CS1–2
With Pascal waning in popularity as the CS1 language of choice, many colleges and universities are considering the adoption of C++ (an imperative and object-oriented hybrid language) as its replacement. An important issue that must be addressed in ...
Comments