Results 1 - 10
of
17
Java consistency: Non-operational characterizations for Java memory behavior
- ACM Transactions on Computer Systems
, 1997
"... ..."
Java Jr.: A fully abstract trace semantics for a core Java language
- In ESOP, volume 3444 of LNCS
, 2005
"... Abstract. We introduce an expressive yet semantically clean core Java-like language, Java Jr., and provide it with a formal operational semantics based on traces of observable actions which represent interaction across package boundaries. A detailed example based on the Observer Pattern is used to d ..."
Abstract
-
Cited by 19 (0 self)
- Add to MetaCart
Abstract. We introduce an expressive yet semantically clean core Java-like language, Java Jr., and provide it with a formal operational semantics based on traces of observable actions which represent interaction across package boundaries. A detailed example based on the Observer Pattern is used to demonstrate the intuitive character of the semantic model. We also show that our semantic trace equivalence is fully-abstract with respect to a natural notion of testing equivalence for object systems. This is the first such result for a full class-based OO-language with inheritance. 1
Operational Semantics of the Java Card Virtual Machine
, 2002
"... ... Java Card Virtual Machine Language. We use the instruction set and the program structures proposed in [1]. We define a small-step relation between program con- figurations, including rules for exception handling, arrays and subroutines. We also include the basic structures needed to model object ..."
Abstract
-
Cited by 13 (1 self)
- Add to MetaCart
... Java Card Virtual Machine Language. We use the instruction set and the program structures proposed in [1]. We define a small-step relation between program con- figurations, including rules for exception handling, arrays and subroutines. We also include the basic structures needed to model object ownership and the Java Card firewall.
Java Program Verification via a JVM Deep Embedding in ACL2
- Theorem Proving in Higher Order Logics (TPHOLS ’04
, 2004
"... In this paper, we show that one can "deep-embed" the Java bytecode language, a fairly complicated language with a rich semantics, into the first order logic of ACL2 by modeling a realistic JVM. We show that with proper support from a semi-automatic theorem prover in that logic, one can reason about ..."
Abstract
-
Cited by 12 (3 self)
- Add to MetaCart
In this paper, we show that one can "deep-embed" the Java bytecode language, a fairly complicated language with a rich semantics, into the first order logic of ACL2 by modeling a realistic JVM. We show that with proper support from a semi-automatic theorem prover in that logic, one can reason about the correctness of Java programs. This reasoning can be done in a direct and intuitive way without incurring the extra burden that has often been associated with hand proofs, or proofs that make use of less automated proof assistance. We present proofs for two simple Java programs as a showcase.
Investigating Java concurrency using Abstract State Machines
, 1999
"... Abstract. We present a mathematically precise, platform-independent model of Java concurrency using the Abstract State Machine method. We cover all aspects of Java threads and synchronization, gradually adding details to the model in a series of steps. We motivate and explain each concurrency featur ..."
Abstract
-
Cited by 10 (0 self)
- Add to MetaCart
Abstract. We present a mathematically precise, platform-independent model of Java concurrency using the Abstract State Machine method. We cover all aspects of Java threads and synchronization, gradually adding details to the model in a series of steps. We motivate and explain each concurrency feature, and point out subtleties, inconsistencies and ambiguities in the o cial, informal Java speci cation. 1
Rewriting Approximations for Fast Prototyping of Static Analyzers
- Research Report RR 5997, INRIA
, 2006
"... Abstract. This paper shows how to construct static analyzers using tree automata and rewriting techniques. Starting from a term rewriting system representing the operational semantics of the target programming language and given a program to analyze, we automatically construct an over-approximation ..."
Abstract
-
Cited by 10 (6 self)
- Add to MetaCart
Abstract. This paper shows how to construct static analyzers using tree automata and rewriting techniques. Starting from a term rewriting system representing the operational semantics of the target programming language and given a program to analyze, we automatically construct an over-approximation of the set of reachable terms, i.e. of the program states that can be reached. The approach enables fast prototyping of static analyzers because modifying the analysis simply amounts to changing the set of rewrite rules defining the approximation. A salient feature of this approach is that the approximation is correct by construction and hence does not require an explicit correctness proof. To illustrate the framework proposed here on a realistic programming language we instantiate it with the Java Virtual Machine semantics and perform class analysis on Java bytecode programs. 1
An Executable Specification of C♯
- PROCEEDINGS OF THE WORKSHOP ON ABSTRACT STATE MACHINES (ASM’05
, 2005
"... The Abstract State Machines (ASMs) theory has been applied to rigorously formalize the semantics of the C♯ programming language. The developed ASM model is validated here by providing an executable model which supports the experimentation with the ASM model. The executable model is a refinement of ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
The Abstract State Machines (ASMs) theory has been applied to rigorously formalize the semantics of the C♯ programming language. The developed ASM model is validated here by providing an executable model which supports the experimentation with the ASM model. The executable model is a refinement of the ground model and is implemented in AsmL – the Abstract State Machine Language, which is embedded into Microsoft Visual Studio.NET. We report here on the development of AsmL Executable Specifications of the C♯ semantics by depicting our techniques on building and using AsmL as a Specification Language.
Smarttools for Java Card
- Watson (Eds): 4th Smart Card Research and Advanced Application Conf. (CARDIS
, 2000
"... This article describes a Java Card programming environment which to a large extent is generated from formal specifications of the syntax and semantics of Java Card, the JCRE (Java Card Runtime Environment), and the Java Card APIs. The resulting environment consists of a set of tightly integrated and ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
This article describes a Java Card programming environment which to a large extent is generated from formal specifications of the syntax and semantics of Java Card, the JCRE (Java Card Runtime Environment), and the Java Card APIs. The resulting environment consists of a set of tightly integrated and somewhat smart tools, such as a Java specific structure editor and a simulator which allows an application to be tested before being downloaded to a card. Furthermore, the simulator analyses the applet in question in order to find out the structure of the accepted commands. This information is then used to automatically adapt the GUI of the simulator.
Hoare Logic for Java in Isabelle/HOL
- in Isabelle/HOL. Concurrency and Computation: Practice and Experience
, 2001
"... This article presents a Hoare-style calculus for a substantial subset of Java Card, which we call Java . In particular, the language includes side-effecting expressions, mutual recursion, dynamic method binding, full exception handling, and static class initialization ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
This article presents a Hoare-style calculus for a substantial subset of Java Card, which we call Java . In particular, the language includes side-effecting expressions, mutual recursion, dynamic method binding, full exception handling, and static class initialization
An Integrated Development Environment for Java Card
, 2001
"... This article describes a Java Card programming environment which to a large extent is generated from formal specications of the syntax and semantics of Java Card, the JCRE (Java Card Runtime Environment), and the Java Card APIs. The resulting environment consists of a set of tightly integrated and s ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
This article describes a Java Card programming environment which to a large extent is generated from formal specications of the syntax and semantics of Java Card, the JCRE (Java Card Runtime Environment), and the Java Card APIs. The resulting environment consists of a set of tightly integrated and somewhat smart tools, such as a Java specic structure editor and a simulator which allows an application to be tested before being downloaded to a card. Furthermore, the simulator analyses the applet in question in order to nd out the structure of the accepted commands. This information is then used to automatically adapt the GUI of the simulator.

