Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

PCLOS: stress testing CLOS experiencing the metaobject protocol

Published: 01 September 1990 Publication History

Abstract

This paper demonstrates that the CLOS metaobject protocol approach to defining and implementing an object model is very powerful. CLOS is an object-oriented language that is based on Common Lisp and is in the process of being standardized. Implementations of CLOS are themselves object-oriented with all major building blocks of the language being instances of system classes. A metaobject protocol provides a framework for CLOS implementations by specifying the hierarchy of these classes and the order and contents of the communication among their instances. This design has made CLOS both flexible and portable, two design goals that traditionally conflict. In support of this suggestion we present a detailed account of how we added object persistence to CLOS without modifying any of the language's implementation code.

References

[1]
Andreas Paepcke. PCLOS: A Flexible Implementation of CLOS Persistence. In S. Gjessing and K. Nygaard, editors, Proceedings of ~he European Conference on Object-Oriented Programming, pages 374- 389. Lecture Notes in Computer Science, Springer Verlag, 1988.
[2]
Andreas Paepcke. PCLOS: A Critical Review. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications, 1989.
[3]
Daniel G. Bobrow, Linda DeMichiel, Richard P. Gabriel, Gregor Kiczales, David Moon, and Sonya Keene. The Common Lisp Object System specification: Chapters 1 and 2. Technical Report 88-002R, X3J13 standards committee document, 1988.
[4]
Sonya E. Keene. Object-Oriented Programming in Common Lisp. Addison-Wesley Publishing Company, 1989.
[5]
Guy L. Steele Jr. Common Lisp: The Language. Digital Press, second edition, 1990.
[6]
Gregor Kiczales and D~niel G. Bobrow. The Common Lisp Object System specification: Metaobject protocol. Technical Report 88-003, X3J13 standards committee document, 1988.
[7]
Daniel G. Bobrow and Gregor Kiczales. The Common Lisp Object Ssystem metaobject kernel: A status report. In Conference on Lisp and Functional Programming, 1988.
[8]
D. Fishman et al. Iris: An object-oriented database management system. A CM Transactions on Office Information Systems, 5(1):48-69, April 1987.
[9]
J~y Banerjee, Won Kim, Hyoung-Joo Kim, and Henry F. Korth. Semantics and implementation of schema evolution in object-oriented databases. In Umeshwar Dayal a~d Irv Traiger, editors, Proceedings of the A CM Special interesl Group on Management of Data. Association of Computing Machinery, 1987.
[10]
Adete Goldberg and David Robinson. Smalltalk- 80: The Language and Implementation. Addison Wesley, 1983.
[11]
Pierre Cointe. Metaclasses are first class: The ObjVlisp model. In Norman Meyrowitz, editor, Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applicalious. Association of Computing Machinery, 1987.
[12]
P. Cointe and N. Graube. Programming with metaclasses in clos. In Proceedings of the First CLOS Users and lmplemenlors Workshop, 1988.
[13]
Jean-Pierre Briot and Pierre Cointe. Programming with explicit metaclasses in Smalltalk-80. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications, 1989.
[14]
Yasuhiko Yokote, Fumio Teraoka, and Mario Tokoro. A reflective architecture for an objectoriented distributed operating system. In Proceedings of the European Conference on Object- Oriented Programming, 1989.
[15]
Guiseppe Attardi, Cinzia Bonini, Maria Rosaria Boscotrecase, Tits Flagella, and Mauro Gaspari. Metalevel programming in CLOS. In Proceedings of the European Conference on Object-Oriented Programming, 1989.
[16]
Malcolm P. Atkinson and O. Peter Buneman. Types and persistence in database programming languages. Computing Surveys, 19(2):105-189, June 1987.
[17]
Lawrence A. Rowe. A shared object hierarchy. In Klaus Dittrich and Umeshwar Dayal, editors, Proceedings of the International Workshop on Object- Oriented Database Systems. Association of Computing Machinery, 1986.
[18]
Jeannette M. Wing, Maurice Herlihy, Steward Clamen, David Detlefs, Karen Kietzke, Richard Lerner, and Su-Yuen Ling. The Avalon/C++ programming language. Technical Report CMU- CS-88-209, Carnegie Mellon University, December 1988.
[19]
Richard A. Lerner. Reliable servers: Design and implementation in Avalon/C++. In Int'l Symp. on Databases in Parallel and Dis~ribuled Syslems. IEEE, 1988.
[20]
David Detlefs, Maurice Herlihy, Karen Kietzke, and Jeannette Wing. Avalon/C++: C++ extensions for transaction-based programming. In USENIX C-i-+ Workshop, 1987.
[21]
M.P. Atkinson, P.J. Bailey, K.J. Chisholm, W.P. Cockshott, and R. Morrison. An approach to persistent programming. The Computer Journal, 26(4):360-365, 1983.
[22]
M.P. Atkinson and R. Morrison. Integrated persistent programming systems. In B.D. Shriver, editor, Proceedings of the 19th Annual Hawaii Conference on System Sciences, pages 842-854, 1986. Vol. I}A, Software.
[23]
M.P. Atkinson and R. Morrison. Procedures as persistent data objects. A CM Transactions on Programmiug Languages and Systems, 7(4):539-559, October 1983.
[24]
Thomas Merrow and Jane Laursen. A pragmatic system for shared persistent objects. In Norman Meyrowitz, editor, Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications. Association of Computing Machinery, 1987.
[25]
David Maier, Jacob Stein, Allen Otis, and Alan Purdy. Development of an object-oriented DBMS. In Norman Meyrowitz, editor, Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications. Association of Computing Machinery, 1986.
[26]
G. Copeland and D. Maier. Making Smalltalk a database system. In Proceedings of the A CM/SIGMOD Inlerna~ional Conference on the Management of Dais, 1984.

Cited By

View all
  • (2011)Flexible object layoutsACM SIGPLAN Notices10.1145/2076021.204813846:10(959-972)Online publication date: 22-Oct-2011
  • (2011)Flexible object layoutsProceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications10.1145/2048066.2048138(959-972)Online publication date: 22-Oct-2011
  • (1993)Persistent immutable shared abstractionsParallel Symbolic Computing: Languages, Systems, and Applications10.1007/BFb0018659(300-317)Online publication date: 1993
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 25, Issue 10
Oct. 1990
320 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/97946
Issue’s Table of Contents
  • cover image ACM Conferences
    OOPSLA/ECOOP '90: Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
    September 1990
    336 pages
    ISBN:0897914112
    DOI:10.1145/97945
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 September 1990
Published in SIGPLAN Volume 25, Issue 10

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)102
  • Downloads (Last 6 weeks)33
Reflects downloads up to 18 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2011)Flexible object layoutsACM SIGPLAN Notices10.1145/2076021.204813846:10(959-972)Online publication date: 22-Oct-2011
  • (2011)Flexible object layoutsProceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications10.1145/2048066.2048138(959-972)Online publication date: 22-Oct-2011
  • (1993)Persistent immutable shared abstractionsParallel Symbolic Computing: Languages, Systems, and Applications10.1007/BFb0018659(300-317)Online publication date: 1993
  • (1991)Metaprogramming at Work in Automated ManufacturingArtificial and Mathematical Theory of Computation10.1016/B978-0-12-450010-5.50013-X(109-128)Online publication date: 1991
  • (2009)Context-oriented software transactional memory in common lispACM SIGPLAN Notices10.1145/1837513.164014444:12(59-68)Online publication date: 26-Oct-2009
  • (2009)Context-oriented software transactional memory in common lispProceedings of the 5th symposium on Dynamic languages10.1145/1640134.1640144(59-68)Online publication date: 26-Oct-2009
  • (2005)Friends: A flexible architecture for implementing fault tolerant and secure distributed applicationsDependable Computing — EDCC-210.1007/3-540-61772-8_27(1-20)Online publication date: 6-Jun-2005
  • (2005)Avoiding confusion in metacircularity: The meta-helixObject Technologies for Advanced Software10.1007/3-540-60954-7_49(157-172)Online publication date: 7-Jun-2005
  • (1998)Macro processing in object-oriented languagesProceedings Technology of Object-Oriented Languages. TOOLS 28 (Cat. No.98TB100271)10.1109/TOOLS.1998.750029(113-126)Online publication date: 1998
  • (1998)A Metaobject Architecture for Fault-Tolerant Distributed SystemsIEEE Transactions on Computers10.1109/12.65608847:1(78-95)Online publication date: 1-Jan-1998
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media