skip to main content
10.1145/1094855.1094967acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Using predicate fields in a highly flexible industrial control system

Published:16 October 2005Publication History

ABSTRACT

Predicate fields allow an object's structure to vary at runtime based on the object's state: a predicate field is present or not, depending on the values of other fields. Predicate fields and related concepts have not previously been evaluated outside a research environment. We present a case study of two industrial applications with similar requirements, one of which uses predicate fields and one of which does not. The use of predicate fields was motivated by requirements for high flexibility, by unavailability of many requirements, and by high user interface development costs. Despite an implementation of predicate fields as a library (rather than as a language extension), developers found them natural to use, and in many cases they significantly reduced development effort.

Skip Supplemental Material Section

Supplemental Material

p319-artzi_56k.mp4

mp4

20.3 MB

p319-artzi_768k.mp4

mp4

138.1 MB

References

  1. Apple Computer. Dylan, an Object-Oriented Dynamic Language, 1992.Google ScholarGoogle Scholar
  2. D. G. Bobrow, L. G. DeMichiel, R. P. Gabriel, S. E. Keene, G. Kiczales, and D. A. Moon. Common Lisp Object System specification. ACM SIGPLAN Notices, 23(SI):1--145, 1988. Special issue: X3J13 Document 88-002R. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. D. G. Bobrow, K. Kahn, G. Kiczales, L. Masinter, M. Stefik, and F. Zdybel. CommonLoops: Merging Lisp and object-oriented programming. In Conference on Object-Oriented Programming Systems, Languages and Applications, pages 17--29, Portland, OR, USA, June 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. D. Box. Essential COM. Addison-Wesley Professional, Boston, MA, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. E. Brown. Windows Forms Programming in C#. Manning Publications, Greenwich, CT, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. K. Brown, T. Ewald, C. Sells, and D. Box. Effective COM: 50 Ways to Improve Your COM and MTS-based Applications. Addison-Wesley Professional, Boston, MA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. C. Chambers. Object-oriented multi-methods in Cecil. In ECOOP '92, the 6th European Conference on Object-Oriented Programming, Utrecht, The Netherlands, June 29--July 3, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. C. Chambers. Predicate classes. In ECOOP '93, the 7th European Conference on Object-Oriented Programming, pages 268--296, Kaiserslautern, Germany, July 28--30, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. C. Chambers and W. Chen. Efficient multiple and predicated dispatching. In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '99), pages 238--255, Denver, Colorado, Nov. 3--5, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. Chappell. Understanding ActiveX and OLE. Microsoft Press, Seattle, WA, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. C. Clifton, G. T. Leavens, C. Chambers, and T. Millstein. MultiJava: Modular open classes and symmetric multiple dispatch for Java. In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2000), pages 130--145, Minneapolis, MN, USA, Oct. 15--19, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. E. Dujardin, E. Amiel, and E. Simon. Fast algorithms for compressed multimethod dispatch table generation. ACM Transactions on Programming Languages and Systems, 20(1):116--165, Jan. 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. D. Ernst, C. S. Kaplan, and C. Chambers. Predicate dispatching: A unified theory of dispatch. In ECOOP '98, the 12th European Conference on Object-Oriented Programming, pages 186--211, Brussels, Belgium, July 20-24, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. E. Gamma, R. Helm, R. E. Johnson, and J. Vlissides. Design Patterns. Addison-Wesley, Reading, MA, 1995.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Geotest -- Marvin Test Systems, Inc, CA. ATEasy 3.0 Reference Manual, 2000.Google ScholarGoogle Scholar
  16. J. Glynn, C. Torok, R. Conway, W. Choudhury, Z. Greenvoss, S. Kulkarniq, and N. Whitlow. Professional Windows GUI Programming Using C#. Apress, Berkeley, CA, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. Hamer, J. Hosking, and W. Mugridge. A method for integrating classification within an object-oriented environment. Technical Report 48, Department of Computer Science, University of Auckland, Oct. 1990.Google ScholarGoogle Scholar
  18. E. Harmon. Delphi COM Programming. New Riders Publishing, Indianapolis, IN, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. J. Hosking, J. Hamer, and W. Mugridge. Integrating functional and object-oriented programming. In Technology of Object-Oriented Languages and Systems TOOLS 3, pages 345--355, Sydney, 1990.Google ScholarGoogle Scholar
  20. M. MacDonald. User Interfaces in C#: Windows Forms and Custom Controls. Apress, Berkeley, CA, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. MacDonald. Microsoft .NET Distributed Applications: Integrating XML Web Services and .NET Remoting. Microsoft Press, Seattle, WA, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. T. Millstein. Practical predicate dispatch. In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2004), pages 345--364, Vancouver, BC, Canada, Oct. 26--28, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. W. B. Mugridge, J. Hamer, and J. G. Hosking. Multi-methods in a statically-typed programming language. In ECOOP '91, the 5th European Conference on Object-Oriented Programming, pages 307--324, Geneva, Switzerland, July 17--193, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. B. A. Myers and M. B. Rosson. Survey on user interface programming. In CHI '92: Proceedings of the SIGCHI conference on Human factors in computing systems, pages 195--202. ACM Press, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. C. Nock. Data Access Patterns: Database Interactions in Object-Oriented Applications. Addison-Wesley Professional, Boston, MA, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. D. Orleans. Incremental programming with extensible decisions. In Proceedings of the First International Conference on Aspect-Oriented Software Development, pages 56--64, Enschede, The Netherlands, Apr. 24-26, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. I. Rammer. Advanced .NET Remoting (C# Edition). Apress, Berkeley, CA, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. A. Taivalsaari. Object-oriented programming with modes. Journal of Object-Oriented Programming, pages 25--32, June 1993.Google ScholarGoogle Scholar
  29. S. Teixeira and X. Pacheco. Delphi 5 Developer's Guide. Sams, Scotts Valley, CA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. A. Ucko. Predicate dispatching in the Common Lisp Object System. Technical Report 2001-006, MIT Artificial Intelligence Laboratory, Cambridge, MA, June 2001.Google ScholarGoogle Scholar
  31. D. Ungar and R. B. Smith. Self: The power of simplicity. In Conference on Object-Oriented Programming Systems, Languages and Applications, pages 227--242, Orlando, FL, USA, Oct. 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. P. Wadler. Views: A way for pattern matching to cohabit with data abstraction. In Proceedings of the Fourteenth Annual ACM Symposium on Principles of Programming Languages, pages 307--313, Munich, Germany, Jan. 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Using predicate fields in a highly flexible industrial control system

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          OOPSLA '05: Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
          October 2005
          406 pages
          ISBN:1595931937
          DOI:10.1145/1094855

          Copyright © 2005 ACM

          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: 16 October 2005

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Upcoming Conference

        • Article Metrics

          • Downloads (Last 12 months)2
          • Downloads (Last 6 weeks)0

          Other Metrics

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader