In programming, data is often considered to be infinitely copiable, arbitrarily discardable, and universally unconstrained. However this view is naive: some data encapsulates resources that are subject to protocols (e.g., file and device handles, channels); some data should not be arbitrarily copied or communicated (e.g., private data). Linear types provide a partial remedy by delineating data in two camps: "resources" to be used but never copied or discarded, and unconstrained values. However, this binary distinction is too coarse-grained. Instead, we propose the general notion of graded modal types, which in combination with linear and indexed types, provides an expressive type theory for enforcing fine-grained resource-like properties of...
AbstractWe report our experience with exploring a new point in the design space for formal reasoning...
We start from an untyped, well-scoped lambda-calculus and introduce a bidirectional typing relation ...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Graded type theories are an emerging paradigm for augmenting the reasoning power of types with param...
We present a graded modal type theory, a dependent type theory with grades that can be used to enfor...
Substructural type systems are growing in popularity because they allow for a resourceful interpreta...
We present Quantitative Type Theory, a Type Theory that records usage information for each variable ...
Thesis: Ph. D., Massachusetts Institute of Technology, Department of Electrical Engineering and Comp...
International audienceLinear type systems have a long and storied history, but not a clear path forw...
Resource-aware type systems statically approximate not only the expected result type of a program, b...
Software systems are ubiquitous. Failure in safety- and security-critical systems, e.g., the control...
We present a new predicative and decidable type system, called ML , suitable for languages that inte...
Session types and typestate both promise a type system that can reason about protocol adherence. The...
Effects and coeffects are two general, complementary aspects of program behaviour. They roughly corr...
We present Fo, an extension of System F that uses kinds to distinguish between linear and unrestrict...
AbstractWe report our experience with exploring a new point in the design space for formal reasoning...
We start from an untyped, well-scoped lambda-calculus and introduce a bidirectional typing relation ...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Graded type theories are an emerging paradigm for augmenting the reasoning power of types with param...
We present a graded modal type theory, a dependent type theory with grades that can be used to enfor...
Substructural type systems are growing in popularity because they allow for a resourceful interpreta...
We present Quantitative Type Theory, a Type Theory that records usage information for each variable ...
Thesis: Ph. D., Massachusetts Institute of Technology, Department of Electrical Engineering and Comp...
International audienceLinear type systems have a long and storied history, but not a clear path forw...
Resource-aware type systems statically approximate not only the expected result type of a program, b...
Software systems are ubiquitous. Failure in safety- and security-critical systems, e.g., the control...
We present a new predicative and decidable type system, called ML , suitable for languages that inte...
Session types and typestate both promise a type system that can reason about protocol adherence. The...
Effects and coeffects are two general, complementary aspects of program behaviour. They roughly corr...
We present Fo, an extension of System F that uses kinds to distinguish between linear and unrestrict...
AbstractWe report our experience with exploring a new point in the design space for formal reasoning...
We start from an untyped, well-scoped lambda-calculus and introduce a bidirectional typing relation ...
Type inference is a key component of modern statically typed programming languages. It allows progra...