Results 1 - 10
of
10
Modularizing Theorems for Software Product Lines
"... A goal of software product lines is the economical synthesis of programs in a family of programs. In this paper, we explain how theorems about program properties can be integrated into feature-based development of software product lines. As a case study, we analyze an existing Java/JVM compilation c ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
A goal of software product lines is the economical synthesis of programs in a family of programs. In this paper, we explain how theorems about program properties can be integrated into feature-based development of software product lines. As a case study, we analyze an existing Java/JVM compilation correctness proof for defining, interpreting, compiling, and executing bytecode for the Java language. We explain how features modularize both programs and theorems. By composing features, the source code and theorems for a program are synthesized. Generated theorems may then be certified manually or automatically using a proof checker, opening a new line of research in verification. 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.
A Modular Design for the Common Language Runtime (CLR) Architecture
- Proc.ASM05. Université de Paris 12
, 2005
"... This paper provides a modular high-level design of the Common Language Runtime (CLR) architecture. Our design is given in terms of Abstract State Machines (ASMs) and takes the form of an interpreter. ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
This paper provides a modular high-level design of the Common Language Runtime (CLR) architecture. Our design is given in terms of Abstract State Machines (ASMs) and takes the form of an interpreter.
ASM Semantics for C 2.0
- Proc.ASM05. Université de Paris 12
, 2005
"... The Abstract State Machines (ASMs) theory has been applied to formalize the semantics of the C# programming language in a rigorous mathematical manner. We have extended the C# ASM model in order to handle C# 2.0 specific features like generics, anonymous methods and iterator blocks. We discovere ..."
Abstract
- Add to MetaCart
The Abstract State Machines (ASMs) theory has been applied to formalize the semantics of the C# programming language in a rigorous mathematical manner. We have extended the C# ASM model in order to handle C# 2.0 specific features like generics, anonymous methods and iterator blocks. We discovered that the existing operational model (the dynamic semantics) can be reused entirely. It is not altered after the integration of the new constructions. The static semantics (e.g., subtype relation and type constraints) su#ered some important modifications.
The Correctness of the Definite Assignment Analysis in C♯
"... The compilation of C ♯ requires a flow analysis to ensure that every local variable is definitely assigned when any access to its value occurs. A variable is definitely assigned at a use of its value if every execution path leading to that use contains an assignment to the variable. Since local vari ..."
Abstract
- Add to MetaCart
The compilation of C ♯ requires a flow analysis to ensure that every local variable is definitely assigned when any access to its value occurs. A variable is definitely assigned at a use of its value if every execution path leading to that use contains an assignment to the variable. Since local variables are uninitialized by default, this prevents access to uninitialized memory which is a crucial ingredient for the type safety of C♯. We formalize the rules of the definite assignment analysis of C ♯ with data flow equations and we prove the correctness of the analysis, i.e. if the analysis will infer a local variable as definitely assigned at a certain program point, then the variable will actually be initialized at that point during every execution of the program. We actually prove more than correctness: we show that the solution of the analysis is a perfect solution (and not only a safe approximation). 1
Embedding and Verification of PSL using AsmL
, 2005
"... In this paper, we propose a methodology to integrate the Property Specification Language (PSL) in the verification process of systems designed using Abstract States Machines (ASMs). We provide a complete embedding of PSL in the ASM language AsmL, which allows us to integrate PSL properties as pa ..."
Abstract
- Add to MetaCart
In this paper, we propose a methodology to integrate the Property Specification Language (PSL) in the verification process of systems designed using Abstract States Machines (ASMs). We provide a complete embedding of PSL in the ASM language AsmL, which allows us to integrate PSL properties as part of the design. For the verification, we propose a technique based on the AsmL tool that translates the code containing both the design and the properties into a finite state machine (FSM) representation. We use the generated FSM to run model checking on an external tool, here SMV. Our approach takes advantage of the AsmL language capabilities to model designs at the system level as well as from the power of the AsmL tool in generating both a C# code and an FSM representation from an AsmL model. We applied our approach on SystemC designs, which are translated into AsmL models. Experimental results on a bus structure case study provided in the SystemC library showed a superiority of our approach to conventional verification.
DOI 10.1007/s10817-009-9148-3 Mechanized Semantics for the Clight Subset of the C Language
"... Abstract This article presents the formal semantics of a large subset of the C language called Clight. Clight includes pointer arithmetic, struct and union types, C loops and structured switch statements. Clight is the source language of the CompCert verified compiler. The formal semantics of Clight ..."
Abstract
- Add to MetaCart
Abstract This article presents the formal semantics of a large subset of the C language called Clight. Clight includes pointer arithmetic, struct and union types, C loops and structured switch statements. Clight is the source language of the CompCert verified compiler. The formal semantics of Clight is a big-step operational semantics that observes both terminating and diverging executions and produces traces of input/output events. The formal semantics of Clight is mechanized using the Coq proof assistant. In addition to the semantics of Clight, this article describes its integration in the CompCert verified compiler and several ways by which the semantics was validated.
Statically and Dynamically Typed Language
, 2011
"... NOTICE: This is the author’s version of a work accepted for publication in The ..."
Abstract
- Add to MetaCart
NOTICE: This is the author’s version of a work accepted for publication in The

