Results 1 
4 of
4
Type Theoretical Foundations for Data Structures, Classes, and Objects
, 2004
"... In this thesis we explore the question of how to represent programming data structures in a constructive type theory. The basic data structures in programing languages are records and objects. Most known papers treat such data structure as primitive. That is, they add new primitive type constructors ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
In this thesis we explore the question of how to represent programming data structures in a constructive type theory. The basic data structures in programing languages are records and objects. Most known papers treat such data structure as primitive. That is, they add new primitive type constructors and supporting axioms for records and objects. This approach is not satisfactory. First of all it complicates a type theory a lot. Second, the validity of the new axioms is not easily established. As we will see the naive choice of axioms can lead to contradiction even in the simplest cases. We will show that records and objects can be defined in a powerful enough type theory. We will also show how to use these type constructors to define abstract data structure.
LowLevel Type Systems for Modularity and ObjectOriented Constructs
, 2000
"... Typed Assembly Language (Tal) is a formal language for an idealised machine augmented with type annotations, typing rules, and a memory allocation primitive. Tal’s type system is sound; that is, well typed Tal programs do not commit runtime type errors during execution. This guarantee can be used t ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Typed Assembly Language (Tal) is a formal language for an idealised machine augmented with type annotations, typing rules, and a memory allocation primitive. Tal’s type system is sound; that is, well typed Tal programs do not commit runtime type errors during execution. This guarantee can be used to debug typedirected compilers and to build more general security properties in an extensible system. This dissertation presents a basic version of Tal and extensions to support the compilation of modules and objectoriented languages. First, it describes a modular version of Tal that consists of typed object files, linking operations, and link compatibility conditions. Together these features provide for typesound separate compilation and substantially extend previous work on linking. Second, it shows how to use a new formulation of self quantifiers to compile an efficient implementation of a singleinheritance classbased objectoriented language into Tal. Third, it presents a new type constructor called a tag type, and shows how to use them to compile downcasting and exceptions into Tal.
SPECIFYING AND REASONING IN THE CALCULUS OF OBJECTS
, 2005
"... Since type theory merges constructive logic with functional programming language it appears a very promising system for formal program construction. The present thesis deals with this idea in the environment of a type theoretic system equipped with the type constructor representing a simple form of ..."
Abstract
 Add to MetaCart
(Show Context)
Since type theory merges constructive logic with functional programming language it appears a very promising system for formal program construction. The present thesis deals with this idea in the environment of a type theoretic system equipped with the type constructor representing a simple form of objects. The presented interpretation of an object type requires rather nontrivial extension of the underlaying calculus of the type theory. The notion of box, which is the content containment structure with a marker variable, is added to the syntax of the calculus that allows to delimit internal states of objects in the definitions of methods. The acquired overall simple notation is a justification of the need for this extraordinary extension. The objectives of this thesis are mainly to give the formal representation of simple object model and to show its significant metatheoretical properties. We also show the capabilities of the system for specifying and reasoning about programs by defining the basic concepts of program specifications and several stewise refinement operations and techniques for reasoning about the correctness of programs. To do this the Core Calculus of Objects (CCO) is introduced. CCO is derived from