Skip to main content

Predicate Classes

  • Conference paper
  • First Online:
ECOOP’ 93 — Object-Oriented Programming (ECOOP 1993)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 707))

Included in the following conference series:

Abstract

Predicate classes are a new linguistic construct designed to complement normal classes in object-oriented languages. Like a normal class, a predicate class has a set of superclasses, methods, and instance variables. However, unlike a normal class, an object is automatically an instance of a predicate class whenever it satisfies a predicate expression associated with the predicate class. The predicate expression can test the value or state of the object, thus supporting a form of implicit property-based classification that augments the explicit type-based classification provided by normal classes. By associating methods with predicate classes, method lookup can depend not only on the dynamic class of an argument but also on its dynamic value or state. If an object is modified, the property-based classification of an object can change over time, implementing shifts in major behavior modes of the object. A version of predicate classes has been designed and implemented in the context of the Cecil language.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Dylan, an Object-Oriented Dynamic Language. Apple Computer, April, 1992.

    Google Scholar 

  2. [Bobrow et al. 88]_D. G. Bobrow, L. G. DeMichiel, R. P. Gabriel, S. E. Keene, G. Kiczales, D. A. Moon. Common Lisp Object System Specification X3J13. In SIGPLAN Notices 23(Special Issue), September, 1988.

    Google Scholar 

  3. Yves Caseau. An Object-Oriented Language for Advanced Applications. In Proceedings of TOOLS USA’ 91, 1991.

    Google Scholar 

  4. Yves Caseau and Glenn Silverstein. Some Original Features of the LAURE Language. In Proceedings of the OOPSLA’ 92 Workshop on Object-Oriented Programming Languages: The Next Generation, pp. 35–43, Vancouver, Canada, October, 1992.

    Google Scholar 

  5. Yves Caseau and Laurent Perron. Attaching Second-Order Types to Methods in an Object-Oriented Language. In In ECOOP’ 93 Conference Proceedings, Kaiserslautern, Germany, July, 1993.

    Google Scholar 

  6. [Chambers et al. 89]_Craig Chambers, David Ungar, and Elgin Lee. An Efficient Implementation of SELF, a Dynamically-Typed Object-Oriented Language Based on Prototypes. In OOPSLA’ 89 Conference Proceedings, pp. 49–70, New Orleans, LA, October, 1989. Published as SIGPLAN Notices 24(10), October, 1989. Also published in Lisp and Symbolic Computation 4(3), Kluwer Academic Publishers, June, 1991.

    Google Scholar 

  7. Craig Chambers and David Ungar. Making Pure Object-Oriented Languages Practical. In OOPSLA’ 91 Conference Proceedings, pp. 1–15, Phoenix, AZ, October, 1991. Published as SIGPLAN Notices 26(10), October, 1991.

    Google Scholar 

  8. Craig Chambers. The Design and Implementation of the Self Compiler, an Optimizing Compiler for Object-Oriented Programming Languages. Ph.D. thesis, Department of Computer Science, Stanford University, report STAN-CS-92-1420, March, 1992.

    Google Scholar 

  9. Craig Chambers. Object-Oriented Multi-Methods in Cecil. In ECOOP’ 92 Conference Proceedings, pp. 33–56, Utrecht, the Netherlands, June/July, 1992. Published as Lecture Notes in Computer Science 615, Springer-Verlag, Berlin, 1992.

    Google Scholar 

  10. Craig Chambers. The Cecil Language: Specification and Rationale. Technical report #93-03-05, Department of Computer Science and Engineering, University of Washington, March, 1993.

    Google Scholar 

  11. W. R. Cook. A Proposal for Making Eiffel Type-Safe. In ECOOP’ 89 Conference Proceedings, pp. 57–70, Cambridge University Press, July, 1989.

    Google Scholar 

  12. Adele Goldberg and David Robson. SmalltaIk-80: The Language and Its Implementation. Addison-Wesley, Reading, MA, 1983.

    Google Scholar 

  13. John Hamer. Un-Mixing Inheritance with Classifiers. In Multiple Inheritance and Multiple Subtyping: Position Papers of the ECOOP’ 92 Workshop WI, pp. 6–9, Utrect, the Netherlands, June/July, 1992. Also available as working paper WP-23, Markku Sakkinen, ed., Dept. of Computer Science and Information Systems, University of Jyväskylä, Finland, May, 1992.

    Google Scholar 

  14. [Hölzle et al. 91]_Urs Hölzle, Bay-Wei Chang, Craig Chambers, Ole Agesen, and David Ungar. The SELF Manual, Version 1.1. Unpublished manual, February, 1991.

    Google Scholar 

  15. [Hudak et al. 92]_Paul Hudak, Simon Peyton Jones, Philip Wadler, Brian Boutel, Jon Fairbairn, Joseph Fasel, María M. Guzmán, Kevin Hammond, John Hughes, Thomas Johnsson, Dick Kieburtz, Rishiyur Nikhil, Will Partain, and John Peterson. Report on the Programming Language Haskell, Version 1.2. In SIGPLAN Notices 27(5), May, 1992.

    Google Scholar 

  16. [LaLonde et al. 86]_Wilf R. LaLonde, Dave A. Thomas, and John R. Pugh. An Exemplar Based Smalltalk. In OOPSLA’ 86 Conference Proceedings, pp. 322–330, Portland, OR, September, 1986. Published as SIGPLAN Notices 21(11), November, 1986.

    Google Scholar 

  17. Doug Lea. Personal communication. December, 1992.

    Google Scholar 

  18. David McAllester and Ramin Zabih. Boolean Classes. In OOPSLA’ 86 Conference Proceedings, pp. 417–428, Portland, OR, September, 1986. Published as SIGPLAN Notices 21(11), November, 1986.

    Google Scholar 

  19. Bertrand Meyer. Static Typing for Eiffel. In An Eiffel Collection. Technical report #TR-EI-20/EC, Interactive Software Engineering, Goleta, California, 1991.

    Google Scholar 

  20. Bertrand Meyer. Eiffel: The Language. Prentice Hall, New York, 1992.

    MATH  Google Scholar 

  21. [Milner et al. 90]_Robin Milner, Mads Tofte, and Robert Harper. The Definition of Standard ML. MIT Press, Cambridge, MA, 1990.

    Google Scholar 

  22. [Mugridge et al. 91 ]_W. B. Mugridge, J. G. Hosking, and J. Hamer. Multi-Methods in a Statically-Typed Programming Language. Technical report #50, Department of Computer Science, University of Auckland, 1991. A later version published in ECOOP’ 91 Conference Proceedings, Geneva, Switzerland, July, 1991.

    Google Scholar 

  23. [Myers et al. 92]_Brad A. Myers, Dario A. Giuse, and Brad Vander Zanden. Declarative Programming in a Prototype-Instance System: Object-Oriented Programming Without Writing Methods. In OOPSLA’ 92 Conference Proceedings, pp. 184–200, Vancouver, Canada, October, 1992. Published as SIGPLAN Notices 27(10), October, 1992.

    Google Scholar 

  24. Lynn A. Stein. A Unified Methodology for Object-Oriented Programming. In Inheritance Hierarchies in Knowledge Representation and Programming Languages, John Wiley & Sons, 1991.

    Google Scholar 

  25. Robert E. Strom and Shaula Alexander Yemini. Typestate: A Programming Language Concept for Enhancing Software Reliability. In IEEE Transactions on Software Engineering 12(1), pp. 157–171, January, 1986.

    Google Scholar 

  26. [Strom et al. 91]_Robert E. Strom, David F. Bacon, Arthur P. Goldberg, Andy Lowry, Daniel M. Yellin, Shaula Alexander Yemini. Hermes, A Language for Distributed Computing. Prentice Hall, Englewood Cliffs, NJ, 1991.

    Google Scholar 

  27. D. Touretzky. The Mathematics of Inheritance Systems. Morgan-Kaufmann, 1986.

    Google Scholar 

  28. David Ungar and Randall B. Smith. Self: The Power of Simplicity. In OOPSLA’ 87 Conference Proceedings, pp. 227–241, Orlando, FL, October, 1987. Published as SIGPLAN Notices 22(12), December, 1987. Also published in Lisp and Symbolic Computation 4(3), Kluwer Academic Publishers, June, 1991.

    Google Scholar 

  29. [Ungar et al. 91]_David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Hölzle. Organizing Programs without Classes. In Lisp and Symbolic Computation 4(3), Kluwer Academic Publishers, June, 1991.

    Google Scholar 

  30. Phillip Wadler. Views: A Way for Pattern Matching to Cohabit with Data Abstraction. In Proceedings of the Fourteenth ACM Conference on Principles of Programming Languages. Munich, Germany, January, 1987.

    Google Scholar 

  31. Phillip M. Yelland. Experimental Classification Facilities for Smalltalk. In OOPSLA’ 92 Conference Proceedings, pp. 235–246, Vancouver, Canada, October, 1992. Published as SIGPLAN Notices 27(10), October, 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Chambers, C. (1993). Predicate Classes. In: Nierstrasz, O.M. (eds) ECOOP’ 93 — Object-Oriented Programming. ECOOP 1993. Lecture Notes in Computer Science, vol 707. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47910-4_15

Download citation

  • DOI: https://doi.org/10.1007/3-540-47910-4_15

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57120-9

  • Online ISBN: 978-3-540-47910-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics