Language extensions introduce high-level programming constructs that protect programmers from low-level details and repetitive tasks. For such an abstraction barrier to be sustainable, it is important that no errors are reported in terms of generated code. A typical strategy is to check the original user code prior to translation into a low-level encoding, applying the assumption that the translation does not introduce new errors. Unfortunately, such assumption is untenable in general, but in particular in the context of extensible programming languages, such as Racket or SugarJ, that allow regular programmers to define language extensions. In this paper, we present a formalism for building and automati-cally verifying the type-soundness of...
The correct definition and implementation of non-trivial type systems is difficult and requires expe...
Abstract. Proof-carrying code (PCC) is a general framework for verifying the safety properties of ma...
We show how programming language semantics and definitions of their corresponding type systems can b...
Whenever code generation is used to abstract from low-level details or to provide high-level interfa...
Syntactic language extensions can introduce new facilities into a programming language while requiri...
Type systems for static programming languages are supposed to ensure the absence of type errors in c...
AbstractRecent developments in the area of expressive types have the prospect to supply the ordinary...
International audienceWe present a type system over language definitions that classifies parts of th...
It is quite natural to define a software language as an extension of a base language. A compiler bui...
Programming language implementations bridge the gap between what the program developer sees and unde...
Formal verification of real-world software systems remains challenging for a number of reasons, incl...
Abstract. In this paper we present a new technique for automatically verifying typing constraints in...
Abstract. Programming languages often include specialized syntax for com-mon datatypes (e.g. lists) ...
The correct definition and implementation of non-trivial type systems is difficult and requires expe...
We present the type theory LTT, intended to form a basis for typed target languages, providing an in...
The correct definition and implementation of non-trivial type systems is difficult and requires expe...
Abstract. Proof-carrying code (PCC) is a general framework for verifying the safety properties of ma...
We show how programming language semantics and definitions of their corresponding type systems can b...
Whenever code generation is used to abstract from low-level details or to provide high-level interfa...
Syntactic language extensions can introduce new facilities into a programming language while requiri...
Type systems for static programming languages are supposed to ensure the absence of type errors in c...
AbstractRecent developments in the area of expressive types have the prospect to supply the ordinary...
International audienceWe present a type system over language definitions that classifies parts of th...
It is quite natural to define a software language as an extension of a base language. A compiler bui...
Programming language implementations bridge the gap between what the program developer sees and unde...
Formal verification of real-world software systems remains challenging for a number of reasons, incl...
Abstract. In this paper we present a new technique for automatically verifying typing constraints in...
Abstract. Programming languages often include specialized syntax for com-mon datatypes (e.g. lists) ...
The correct definition and implementation of non-trivial type systems is difficult and requires expe...
We present the type theory LTT, intended to form a basis for typed target languages, providing an in...
The correct definition and implementation of non-trivial type systems is difficult and requires expe...
Abstract. Proof-carrying code (PCC) is a general framework for verifying the safety properties of ma...
We show how programming language semantics and definitions of their corresponding type systems can b...