A significant issue in modern programming languages is unsafe aliasing. Modern type systems have attempted to address this in two prominent ways; immutability and ownership, and often a combination of the two [4][17]. The goal of this thesis is to formalise Immutability and Ownership using the Coq Proof Assistant, a formal proof management system [13]. We encode three type systems using Coq; Featherweight Immutable Java, Featherweight Generic Java and Featherweight Ownership Generic Java, and prove them sound. We describe the challenges presented in encoding immutability, ownership and type systems in general in Coq
Modern object-oriented programming languages support many techniques that simplify the work of a pro...
International audienceCoq is built around a well-delimited kernel that perfoms typechecking for defi...
Ownership types provide a statically enforceable notion of object-level encapsulation. We extend own...
A significant issue in modern programming languages is unsafe aliasing. Modern type systems have att...
Abstract. Object ownership is an approach to controlling aliasing in programming languages. Proposal...
There are two approaches to formalizing the syntax of typed object languages in a proof assistant or...
Generic programming has turned out very useful in the development of reusable software. With the Jav...
Computer proof assistants vary along many dimensions. Among the mature implementations, the Coq syst...
Abstract. We propose a new language for writing programs with de-pendent types on top of the Coq pro...
JML is a complex specication language for Java. Its large scale and manifold features make it hard t...
We focus on a common problem encountered in encoding and formally reasoning about a wide range of fo...
International audienceWe propose a new language for writing programs with dependent types on top of ...
Ownership types enforce encapsulation in object-oriented programs by ensuring that objects cannot be...
Existing approaches to object encapsulation and connement either rely on restrictions to programs or...
A number of proposals to manage aliasing in Java-like programming languages have been advanced over ...
Modern object-oriented programming languages support many techniques that simplify the work of a pro...
International audienceCoq is built around a well-delimited kernel that perfoms typechecking for defi...
Ownership types provide a statically enforceable notion of object-level encapsulation. We extend own...
A significant issue in modern programming languages is unsafe aliasing. Modern type systems have att...
Abstract. Object ownership is an approach to controlling aliasing in programming languages. Proposal...
There are two approaches to formalizing the syntax of typed object languages in a proof assistant or...
Generic programming has turned out very useful in the development of reusable software. With the Jav...
Computer proof assistants vary along many dimensions. Among the mature implementations, the Coq syst...
Abstract. We propose a new language for writing programs with de-pendent types on top of the Coq pro...
JML is a complex specication language for Java. Its large scale and manifold features make it hard t...
We focus on a common problem encountered in encoding and formally reasoning about a wide range of fo...
International audienceWe propose a new language for writing programs with dependent types on top of ...
Ownership types enforce encapsulation in object-oriented programs by ensuring that objects cannot be...
Existing approaches to object encapsulation and connement either rely on restrictions to programs or...
A number of proposals to manage aliasing in Java-like programming languages have been advanced over ...
Modern object-oriented programming languages support many techniques that simplify the work of a pro...
International audienceCoq is built around a well-delimited kernel that perfoms typechecking for defi...
Ownership types provide a statically enforceable notion of object-level encapsulation. We extend own...