Joachim van den Berg
Radboud University Nijmegen
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Joachim van den Berg.
tools and algorithms for construction and analysis of systems | 2001
Joachim van den Berg; Bart Jacobs
This paper describes the architecture of the LOOP tool, which is used for reasoning about sequential Java. The LOOP tool translates Java and JML (a specification language tailored to Java) classes into their semantics in higher order logic. It serves as a front-end to a theorem prover in which the actual verification of the desired properties takes place. Also, the paper discusses issues related to logical theory generation.
conference on object-oriented programming systems, languages, and applications | 1998
Bart Jacobs; Joachim van den Berg; Marieke Huisman; Martijn van Berkum; Ulrich Hensel; Hendrik Tews
We present the first results of a project called LOOP, on formal methods for the object-oriented language Java. It aims at verification of program properties, with support of modern tools. We use our own front-end tool (which is still partly under construction) for translating Java classes into higher order logic, and a back-end theorem prover (namely PVS, developed at SRI) for reasoning. In several examples we demonstrate how non-trivial properties of Java programs and classes can be proven following this two-step approach.
workshop on object oriented technology | 1999
Marieke Huisman; Bart Jacobs; Joachim van den Berg
Abstract.This paper presents a verification of an invariant property for the Vector class from JAVA’s standard library (API). The property says (essentially) that the actual size of a vector is less than or equal to its capacity. It is shown that this “safety” or “data integrity” property is maintained by all methods of the Vector class, and that it holds for all objects created by the constructors of the Vector class. The verification of the Vector class invariant is done with the proof tool PVS. It is based on a semantics of JAVA in higher order logic. The latter is incorporated in a special purpose compiler, the LOOP tool, which translates JAVA classes into logical theories. It has been applied to the Vector class for this case study. The actual verification takes into account the object-oriented character of JAVA: (non-final) methods may always be overridden, so that one cannot rely on a particular implementation. Instead, one has to reason from method specifications in such cases. This project demonstrates the feasibility of tool-assisted verification of non-trivial properties for non-trivial JAVA classes.
algebraic methodology and software technology | 2002
Cees-Bart Breunesse; Bart Jacobs; Joachim van den Berg
This article describes a case study concerning a component of a Java Purse applet developed by the smart card manufacturer Gemplus. This component is a representation of decimal numbers in Java. The decimal component is annotated with specifications consisting of invariants and pre- and postconditions, describing the functional behavior. These specifications are written in the specification language JML. After translation of the annotated source code to the theorem prover PVS, the correctness of these annotations is proved interactively.
smart card research and advanced application conference | 2001
Erik Poll; Joachim van den Berg; Bart Jacobs
This paper reports on an effort to increase the reliability of JavaCard-based smart cards by means of formal specification and verification of JavaCard source code. As a first step, lightweight formal interface specifications, written in the specification language JML, have been developed for all the classes in the JavaCard API (version 2.1). They make many of the implicit assumptions underlying the current implementation explicit, and thus facilitate the use of this API and increase the reliability of the code that is based on it. Furthermore, the formal specifications are amenable to tool support, for verification purposes.
International Java Card Workshop | 2001
Joachim van den Berg; Bart Jacobs; Erik Poll
This paper discusses a verification in PVS of the AID (Application Identifier) class from the JavaCard API. The properties that are verified are formulated in the interface specification language JML. This language is also used to express the properties that are assumed about the native methods from the Util class that are used in the AID class. These properties include invariants for classes and behaviour specifications for methods; the latter give pre- and post-conditions describing the functional behaviour, and also specify when exceptions may be thrown.
workshop on recent trends in algebraic development techniques | 1999
Joachim van den Berg; Marieke Huisman; Bart Jacobs; Erik Poll
This paper explains the details of the memory model underlying the verification of sequential Java programs in the “LOOP” project ([14,20]). The building blocks of this memory are cells, which are untyped in the sense that they can store the contents of the fields of an arbitrary Java object. The main memory is modeled as three infinite series of such cells, one for storing instance variables on a heap, one for local variables and parameters on a stack, and and one for static (or class) variables. Verification on the basis of this memory model is illustrated both in PVS and in Isabelle/HOL, via several examples of Java programs, involving various subtleties of the language (wrt. memory storage).
Computer Networks | 2001
Erik Poll; Joachim van den Berg; Bart Jacobs
Lecture Notes in Computer Science | 2001
Joachim van den Berg; Bart Jacobs; Erik Poll
International Journal on Software Tools for Technology Transfer | 2001
Marieke Huisman; Bart Jacobs; Joachim van den Berg