In order to formally reason about low-level system programs one needs a semantics (for the programming language in question) that can deal with programs that are not statically type-correct. For system-level programs, the semantics must deal with such heretical constructs like casting integers to pointers and converting pointers between incompatible base types. In this paper we describe a formal semantics for the data types of the C++ programming language that is suitable for low-level programs in the above sense. This work is part of a semantics for a large subset of the C++ programming language developed in the VFiasco project. In the VFiasco project we aim at the verification of substantial properties of the Fiasco microkernel, which is ...
Generic programming has emerged as an important technique for the development of highly reusable and...
We demonstrate that a uniformity of approach to both the definition and implementation of programmin...
Generic programming consists of increasing the expressiveness of programs by allowing a wider variet...
In order to formally reason about low-level system programs one needs a semantics (for the programmi...
In recent projects on operating-system verification, C and C++ data types are often formalized using...
We present the VFiasco project, in which we apply source-code verification to a complete operating-s...
Kind-C++ has been a on-going project since Fall, 1992. In the project, we introduce a new level of e...
Static type determination involves compile time calculation of the type of object a pointer may poin...
In this paper, we describe how the denotational semantics of programming languages can be implemente...
Introduction: In current programming languages, data types and the associated type machinery are use...
AbstractThis paper presents an educational tool for testing abstract data types implemented in C++ a...
Static type determination involves compile time calculation of the type of object a pointer may poin...
Low-level programming requires careful management of system resources, most notably memory. In C++ p...
C++ is a multi-paradigm language. The two main paradigms in C++ are object-oriented programming and ...
Typed intermediate languages and typed assembly languages for optimizing compilers require types to ...
Generic programming has emerged as an important technique for the development of highly reusable and...
We demonstrate that a uniformity of approach to both the definition and implementation of programmin...
Generic programming consists of increasing the expressiveness of programs by allowing a wider variet...
In order to formally reason about low-level system programs one needs a semantics (for the programmi...
In recent projects on operating-system verification, C and C++ data types are often formalized using...
We present the VFiasco project, in which we apply source-code verification to a complete operating-s...
Kind-C++ has been a on-going project since Fall, 1992. In the project, we introduce a new level of e...
Static type determination involves compile time calculation of the type of object a pointer may poin...
In this paper, we describe how the denotational semantics of programming languages can be implemente...
Introduction: In current programming languages, data types and the associated type machinery are use...
AbstractThis paper presents an educational tool for testing abstract data types implemented in C++ a...
Static type determination involves compile time calculation of the type of object a pointer may poin...
Low-level programming requires careful management of system resources, most notably memory. In C++ p...
C++ is a multi-paradigm language. The two main paradigms in C++ are object-oriented programming and ...
Typed intermediate languages and typed assembly languages for optimizing compilers require types to ...
Generic programming has emerged as an important technique for the development of highly reusable and...
We demonstrate that a uniformity of approach to both the definition and implementation of programmin...
Generic programming consists of increasing the expressiveness of programs by allowing a wider variet...