skip to main content
10.1145/355045.355052acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article
Free Access

Compiler and tool support for debugging object protocols

Authors Info & Claims
Published:01 November 2000Publication History

ABSTRACT

We describe an extension to the Java programming language that supports static conformance checking and dynamic debugging of object “protocols,” i.e., sequencing constraints on the order in which methods may be called. Our Java protocols have a statically checkable subset embedded in richer descriptions that can be checked at run time. The statically checkable subtype conformance relation is based on Nierstrasz' proposal for regular (finite-state) process types, and is also very close to the conformance relation for architectural connectors in the Wright architectural description language by Allen and Garlan. Richer sequencing properties, which cannot be expressed by regular types alone, can be specified and checked at run time by associating predicates with object states. We describe the language extensions and their rationale, and the design of tool support for static and dynamic checking and debugging.

References

  1. 1.A. V. Aho, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading, Massachusetts, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.R. Allen and D. Garlan. Formalizing architectural connection. In Proceedings of the l Oth ICSE International Conference on Software Engineering, pages 71-80. IEEE, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.R. Allen and D. Garlan. A formal basis for architectural connection. ACM Transactions on Software Engineering and Methodology, 6(3):213-249, July 1997. cf. errata in TOSEM 7(3), July 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.G. Booch, J. Rumbaugh, and I. Jacobson. The Unified Modeling Language User Guide. Addison-Wesley, Reading, Massachusetts, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.R. H. Campbell and A. N. Habermann. The specification of process synchronization by path expressions. In E. Gelenbe and C. Kaiser, editors, Proceedings of the International Symposium on Operating Systems, volume 16 of Lecture Notes in Computer Science, pages 89-102, Rocquencourt, France, 23-25 April 1974. Springer-Verlag, Berlin, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.D. Flanagan. Java in a Nutshell: A Desktop Quick Reference. O'Reilly & Associates, Sebastopol, California, 2nd edition, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.E. Gamma, R. Helm, R. E. Johnson, and J. M. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional Computing Series. Addison-Wesley, Reading, Massachusetts, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.J. Gosling, B. Joy, and G. Steele. The Java Language Specification. The Java Series. Addison-Wesley, Reading, Massachusetts, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.R. B. Kieburtz and A. Silberschatz. Access-right expressions. ACM Transactions on Programming Languages and Systems, 5(1):78-96, Jan. 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.R. Kramer. iContract - the Java design by contract tool. In Proceedings of the 1998 on Technology of Object-Oriented Languages and Systems (TOOLS '98), Santa Barbara, California, 3-7 August 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.B. H. Liskov and J. M. Wing. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(6): 1811-1841, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.J. Magee, N. Dulay, S. Eisenbach, and J. Kramer. Specifying distributed software architectures. In Proceedings of the 5th European Software Enginering Conference (ESEC 95), Sitges, Spain, Sept. 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.O. Nierstrasz. Regular types for active objects. In Proceedings of the OOPSLA '93 Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 1-15. Association for Computing Machinery, 1993. ACM SIGPLAN Notices, 28(10), October 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.K. M. Olender and L. J. Osterweil. Cecil: A sequencing constraint language for automatic static analysis generation. IEEE Transactions on Software Engineering, 16:268-280, Mar. 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15.K.M. Olender and L. J. Osterweil. Interprocedural static analysis of sequencing constraints. ACM Transactions on Software Engineering and Methodology, 1(1):21-52, Jan. 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.C. Peter and E Puntigam. A concurrent object calculus with types that express sequences. In Proceedings of the ECOOP Workshop on Semantics of Objects as Processes (SOAP '99), Lisbon, Portugal, June 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17.E Puntigam. Types that reflect changes of object usability. In S.Gjesing and K.Nygaard, editors, Proceedings of the Joint Modular Languages Conference (JMLC'97), number 1204 in Lecture Notes in Computer Science, pages 55-77, Linz, Austria, Aug. 1994. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.J. Rumbaugh, I. Jacobson, and G. Booch. The Unified Modeling Language Reference Manual. Addison-Wesley, Reading, Massachusetts, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.Sun Microsystems. Java Development Kit, Release 1.1.7. Available at < http ://java.sun.com/products/jdk/1.1/ >.Google ScholarGoogle Scholar

Index Terms

  1. Compiler and tool support for debugging object protocols

                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
                  SIGSOFT '00/FSE-8: Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
                  November 2000
                  170 pages
                  ISBN:1581132050
                  DOI:10.1145/355045

                  Copyright © 2000 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: 1 November 2000

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • Article

                  Acceptance Rates

                  Overall Acceptance Rate17of128submissions,13%

                  Upcoming Conference

                  FSE '24

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader