## A Programming Logic for Sequential Java (1999)

### Cached

### Download Links

- [www.informatik.fernuni-hagen.de]
- [softech.informatik.uni-kl.de]
- [sct.inf.ethz.ch]
- [pm.inf.ethz.ch]
- DBLP

### Other Repositories/Bibliography

Venue: | Programming Languages and Systems (ESOP ’99), volume 1576 of LNCS |

Citations: | 56 - 8 self |

### BibTeX

@INPROCEEDINGS{Poetzsch-Heffter99aprogramming,

author = {Arnd Poetzsch-Heffter and Peter Müller},

title = {A Programming Logic for Sequential Java},

booktitle = {Programming Languages and Systems (ESOP ’99), volume 1576 of LNCS},

year = {1999},

pages = {162--176},

publisher = {Springer-Verlag}

}

### Years of Citing Articles

### OpenURL

### Abstract

. A Hoare-style programming logic for the sequential kernel of Java is presented. It handles recursive methods, class and interface types, subtyping, inheritance, dynamic and static binding, aliasing via object references, and encapsulation. The logic is proved sound w.r.t. an SOS semantics by embedding both into higher-order logic. 1 Introduction Java is a practically important object-oriented programming language. This paper presents a logic to verify sequential Java programs. The motivations for investigating the logical foundations of Java are as follows: 1. Java plays an important role in the quickly developing software component industry and the smart card technology. Verification techniques can be used for static program analysis, e.g., to prove the absence of null-pointer exceptions. The Java subset used in this paper is similar to JavaCard, the Java dialect for implementing smart cards. 2. As pointed out in [MPH97], logical foundations of programming languages form a b...

### Citations

136 | CENTAUR: The System - Borras, Clement, et al. - 1988 |

130 | A logic of object-oriented programs
- Abadi, Leino
- 1997
(Show Context)
Citation Context ...ives up flexibility that seems important to us for interactive program development and verification. A different logic for OO-programs that is related to type-systems is presented and proved sound in =-=[AL97]-=-. It is developed for an OO-language in the style of the lambda calculus whereas we are aiming to directly support the verification of an existing practical language. The presented programming logic e... |

58 | Mechanising Programming Logics in Higher Order Logic
- Gordon
- 1988
(Show Context)
Citation Context ...anguages, it is desirable to enable mechanical proof checking (cf. [vON98] for the corresponding argumentation about type safety proofs). That is why we built on the techniques developed by Gordon in =-=[Gor89]-=-: Both semantics are embedded into a higher-order logic in which the axioms and rules of the axiomatic semantics are derived from those of the operational semantics. The application of Gordon's techni... |

36 | Specification and verification of object-oriented programs
- Poetzsch-Heffter
- 1997
(Show Context)
Citation Context ...pre- and postconditions for methods, class invariants, history constraints, etc (cf. e.g. [Lea96]). The formal meaning of such specifications is defined in terms of proof obligations for methods (cf. =-=[PH97]-=-). In this paper, we concentrate on the verification of dynamic properties. For proving properties about the object store, we refer to [PH97]. This section defines the precise syntax of our Hoare trip... |

26 | An Overview of Larch/C++: Behavioral Specifications for C++ Modules
- Leavens
- 1996
(Show Context)
Citation Context ...tion. This simplifies the handling of subtyping and abstract methods, and proofs become more intuitive. In practice, verification requires elaborate specification techniques like the one described in =-=[Lea96]-=-. In [MPH97], we outline the connection between such specifications and our logic. Overview. Section 2 presents the operational semantics of the Java kernel, section 3 the programming logic. The sound... |

26 | Ecstatic: An object-oriented programming language with an axiomatic semantics
- Leino
- 1997
(Show Context)
Citation Context ...s. To provide a basis for mechanical checking, we embed both semantics into a higher-order logic and derive the axioms and rules of the logic from those of the operational semantics. Related Work. In =-=[Lei97]-=-, a wlp-calculus for an OO-language similar to our Java subset is presented. In contrast to our work, method specifications are part of the programs. The approach in [Lei97] can be considered as restr... |

24 | Logical Foundations for Typed ObjectOriented Languages
- Poetzsch-Heffter, Müller
- 1998
(Show Context)
Citation Context ...presented. In contrast to our work, method specifications are part of the programs. The approach in [Lei97] can be considered as restricting our approach to a certain program development strategy (in =-=[PHM98]-=-, we discuss this topic). Thereby, it becomes simpler and more appropriate for automatic checking, but gives up flexibility that seems important to us for interactive program development and verificat... |

18 | Reasoning about Java classes - Jacobs, Berg, et al. - 1998 |

12 |
Machine-checking the Java specification : Proving type-safety
- Oheimb, Nipkow
- 1999
(Show Context)
Citation Context ...oundness should be proved w.r.t. the operational semantics. Since such soundness proofs can be quite long for full-size programming languages, it is desirable to enable mechanical proof checking (cf. =-=[vON98]-=- for the corresponding argumentation about type safety proofs). That is why we built on the techniques developed by Gordon in [Gor89]: Both semantics are embedded into a higher-order logic in which th... |

12 | Machine-checking the Java Specification: Proving Type-Safety
- Oheimb, Nipkow
- 1999
(Show Context)
Citation Context ...oundness should be proved w.r.t. the operational semantics. Since such soundness proofs can be quite long for full-size programming languages, it is desirable to enable mechanical proof checking (cf. =-=[vON98]-=- for the corresponding argumentation about type safety proofs). That is why we built on the techniques developed by Gordon in [Gor89]: Both semantics are embedded into a higher-order logic in which th... |

5 | An overview of Larch/C++: Behavioral speci cations for C++ modules - Leavens - 1996 |

4 | Poetzsch-He ter. Formal speci cation techniques for objectoriented programs - Muller, A - 1997 |

2 | Formal specification techniques for object-oriented programs
- Muller, Poetzsch-Heffter
- 1997
(Show Context)
Citation Context ...program analysis, e.g., to prove the absence of null-pointer exceptions. The Java subset used in this paper is similar to JavaCard, the Java dialect for implementing smart cards. 2. As pointed out in =-=[MPH97]-=-, logical foundations of programming languages form a basis for program specification technology. They allow for expressive specifications (covering e.g., abstraction, sharing-properties, and side-eff... |

2 | ter. Speci cation and veri cation of object-oriented programs - Poetzsch-He - 1997 |

2 | Logical foundations for typed objectoriented languages - ter, Muller - 1998 |

1 | Machine-checking the Java speci cation: Proving type-safety - Oheimb, Nipkow - 1998 |