ABSTRACT
This paper explores the interpretation of specifications in the context of an object-oriented programming language with subclassing and method overrides. In particular, the paper considers annotations for describing what variables a method may change and the interpretation of these annotations. The paper shows that there is a problem to be solved in the specification of methods whose overrides may modify additional state introduced in subclasses. As a solution to this problem, the paper introduces data groups, which enable modular checking and rather naturally capture a programmer's design decisions.
- AdB94.Pierre America and Frank de Boer. Reasoning about dynamically evolving process structures. Formal Aspects of Computing, 60):269- 316, 1994.Google Scholar
- AL97.Mam'n Abadi and K. Rustan M. Leino. A logic of object-oriented programs, in Michel Bidoit and Max Dauchet, editors, Theory and Practice of Software Development: Proceedings / TAP- SOFT '97, 7th International Joint Conference CAAP/FASE, volume 1214 of Lecture Notes in Computer Science, pages 682-696. Springer, April 1997. Google Scholar
- CBS98.Edwin C. Chan, John T. Boyland, and William L. Scherlis. Promises: Limited specifications for analysis and manipulation. In Proceedings of the IEEE International Conference on Software Engineering (ICSE'98), pages 167- 176. IEEE Computer Society, April 1998. Google ScholarDigital Library
- Det96.David L. Detlefs. An overview of the Extended Static Checking system. In Proceedings of The First Workshop on Formal Methods in Software Practice, pages 1-9. ACM SIGSOFT, January 1996.Google Scholar
- DLN98.David L. Detlefs, K. Rustan M. Leino, and Greg Nelson. Wrestling with rep exposure. Research Report 156, Compaq Systems Research Center, 1998.Google Scholar
- DLNS98.David L. Detlefs, K. Rustan M. Leino, Greg Nelson, and James B. Saxe. Extended static checking. Research Report 159, Compaq Systems Research Center, 1998. To appear.Google Scholar
- ESC.Extended Static Checking home page, Compaq Systems Research Center. On the Web at www. research, digital, corn/SRC/esc /Esc. html.Google Scholar
- GH93.John V. Guttag and James J. Homing, editors. Larch: Languages and Tools for Formal Specification. Texts and Monographs in Computer Science. Springer-Verlag, 1993. With Stephen J. Garland, Kevin D. Jones, Andr6s Modet, and Jeannette M. Wing. Google ScholarDigital Library
- Hoa72.C.A.R. Hoare. Proof of correcmess of data representations. Acta Informatica, 1(4):271-81, 1972.Google ScholarDigital Library
- Jac95.Daniel Jackson. Aspect: Detecting bugs with abstract dependences. ACM Transactions on Software Engineering and Methodology, 4(2): 109- 145, April 1995. Google ScholarDigital Library
- Jon91.H.B.M. Jonkers. Upgrading the pre- and postcondition technique, in S. Prehn and W. J. Toetenel, editors, VDM'91 Formal Software Development Methods, 4th International Symposium of VDM Europe, Volume 1: Conference Proceedings, volume 551 of Lecture Notes in Computer Science, pages 428-456. Springer- Verlag, October 1991. Google Scholar
- Lam93.John Lamping. Typing the specialization interface. ACM SIGPLAN Notices, 28(10):201-214, October 1993. OOPSLA '93 conference proceedings. Google ScholarDigital Library
- LB97.Gary T. Leavens and Albert L. Baker. Enhancing the pre- and postcondition technique for more expressive specifications. Technical Report TR #97-19, Department of Computer Science, Iowa State University, September 1997.Google Scholar
- Lea89.Gary Todd Leavens. Verifying Object-Oriented Programs that Use Subtypes. PhD thesis, MIT Laboratory for Computer Science, February 1989. Available as Technical Report MIT/LCS~-439.Google Scholar
- Lea96.Gary T. Leavens. An overview of Larch/C++: Behavioral specifications for C++ modules. In Haim Kilov and William Harvey, editors, Specification of Behavioral Semantics in Object- Oriented information Modeling, chapter 8, pages 121-142. Kluwer Academic Publishers, 1996.Google Scholar
- Lei95.K. Rustan M. Leino. Toward Reliable Modular Programs. PhD thesis, California institute of Technology, 1995. Available as Technical Report Caltech-CS-TR-95-03. Google ScholarDigital Library
- Lei97.K. Rustan M. Leino. Ecstatic: An objectoriented programming language with an axiomatic semantics. In The Fourth International Workshop on Foundations of Object- Oriented Languages, January 1997. Proceedings available from www. cs. indiana, edu /hyplan/pierce/fool/.Google Scholar
- Lei98a.K. Rustan M. Leino. Recursive object types in a logic of oject-oriented programs. In Chris Hankin, editor, Programming Languages and Systems: 7th European Symposium on Programming, ESOP'98, volume 1381 of Lecture Notes in Computer Science. Springer, April 1998. Google ScholarDigital Library
- Lei98b.K. Rustan M. Leino. Specifying the modification of extended state. In The Fifth International Workshop on Foundations of Object- Oriented Languages, January 1998. Proceedings available from www.pauillac, inria . fr/~ remy/fool/program, html. Google ScholarDigital Library
- LH94.Kevin Lano and Howard Haughton, editors. Object-Oriented Specification Case Studies. The Object-Oriented Series. Prentice Hall, 1994. Google ScholarDigital Library
- LN98a.K. Rustan M. Leino and Greg Nelson. Abstraction and specification revisited. Internal manuscript KRML 71, Digital Equipment Corporation Systems Research Center. To appear as Compaq SRC Research Report 160, 1998.Google Scholar
- LN98b.K. Rustan M. Leino and Greg Nelson. An extended static checker for Modula-3. In Kai Koskimies, editor, Compiler Construction; Proceedings of the 7th International Conference, CC'98, volume 1383 of Lecture Notes in Computer Science, pages 302-305. Springer, March 1998. Google ScholarDigital Library
- LS97.K. Rustan M. Leino and Raymie Stata. Checking object invariants. Technical Note 1997- 007, Digital Equipment Corporation Systems Research Center, April 1997.Google Scholar
- LW94.Barbara H. Liskov and Jeannette M. Wing. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(6): 1811-1841, November 1994. Google ScholarDigital Library
- Mey88.Bertrand Meyer. Object-oriented Software Construction. Series in Computer Science. Prentice- Hall International, New York, 1988. Google ScholarDigital Library
- Nau94.David A. Naumann. Predicate transformer semantics of an Oberon-like language. In E.- R. Olderog, editor, Proceedings of the IFIP WG2.1/WG2.21WG2.3 Working Conference on Programming Concepts, Methods, and Calculi, pages 467-487. Elsevier, June 1994. Google ScholarDigital Library
- PHM98.Arnd Poetzsch-Heffter and Peter MUller. Logical foundations for typed object-oriented languages. In David Gries and Willem-Paul de Roever, editors, Programming Concepts and Methods, PROCOMET '98, pages 404-423. Chapman & Hall, 1998. Google ScholarDigital Library
- Sta97.Raymie Stata. Modularity in the presence of subclassing. Research Report 145, Digital Equipment Corporation Systems Research Center, April 1997. Google ScholarDigital Library
- Van94.Mark T. Vandevoorde. Exploiting Specifications to Improve Program Performance. PhD thesis, Massachusetts Institute of Technology, February 1994. Available as Technical Report MIT/LCSflR-598. Google ScholarDigital Library
Index Terms
- Data groups: specifying the modification of extended state
Recommendations
Data groups: specifying the modification of extended state
This paper explores the interpretation of specifications in the context of an object-oriented programming language with subclassing and method overrides. In particular, the paper considers annotations for describing what variables a method may change ...
The Object-Oriented Functional Data Language
The object-oriented functional data language (O/sup 2/FDL) is an interactive strongly typed database programming language that integrates the object-oriented and functional programming paradigms. It was designed for advanced applications that require a ...
Object-oriented classic data structures for CS2 in C#
For many years there has been substantial agreement that the content of the CS2 course should be a study of the classic data structures including, but not limited to, stacks, queues, trees, and tables. In recent years we have observed a move to the ...
Comments