Low-level programming requires careful management of system resources, most notably memory. In C++ programmers are encouraged to follow idioms like RAII and smart pointers to handle resources correctly as violating them leads to unsafe code. Typed functional programming languages guarantee safe automatic mem- ory management, but are often sub-optimal in handling system resources. A nice, formal solution to handling resources naturally is linear types. Unfortu- nately, existing languages that support linearity are cumbersome and require explicit, complicated annotations from the programmer. We bridge the two worlds by exploring a novel combination of C++ and linear types. We describe a new type system with linearity for C++ by using constrai...
We present a static type system for object-oriented languages which strives to provide static typech...
A criticism often levelled at functional languages is that they do not cope elegantly or efficiently...
Ecient low-level systems need more control over memory than safe high-level languages usually provid...
C/C++ are the languages of choice for development of many widely used system softwares. However, th...
This project designs and implements a general-purpose functional programming language with linear ty...
Static type determination involves compile time calculation of the type of object a pointer may poin...
Linear types (types of values that can be used just once) have been drawing great attentions because...
C/C++ are the languages of choice for development of many widely used system softwares. However, the...
A type system with linearity is useful for checking software protocols and resource management at co...
International audienceLinear type systems have a long and storied history, but not a clear path forw...
Enhancing the type system of a programming language brings benefits on many fronts. We define and ex...
We present Fo, an extension of System F that uses kinds to distinguish between linear and unrestrict...
We propose a type-directed garbage collection (GC) scheme for a programming language with static mem...
Static type determination involves compile time calculation of the type of object a pointer may poin...
In order to formally reason about low-level system programs one needs a semantics (for the programmi...
We present a static type system for object-oriented languages which strives to provide static typech...
A criticism often levelled at functional languages is that they do not cope elegantly or efficiently...
Ecient low-level systems need more control over memory than safe high-level languages usually provid...
C/C++ are the languages of choice for development of many widely used system softwares. However, th...
This project designs and implements a general-purpose functional programming language with linear ty...
Static type determination involves compile time calculation of the type of object a pointer may poin...
Linear types (types of values that can be used just once) have been drawing great attentions because...
C/C++ are the languages of choice for development of many widely used system softwares. However, the...
A type system with linearity is useful for checking software protocols and resource management at co...
International audienceLinear type systems have a long and storied history, but not a clear path forw...
Enhancing the type system of a programming language brings benefits on many fronts. We define and ex...
We present Fo, an extension of System F that uses kinds to distinguish between linear and unrestrict...
We propose a type-directed garbage collection (GC) scheme for a programming language with static mem...
Static type determination involves compile time calculation of the type of object a pointer may poin...
In order to formally reason about low-level system programs one needs a semantics (for the programmi...
We present a static type system for object-oriented languages which strives to provide static typech...
A criticism often levelled at functional languages is that they do not cope elegantly or efficiently...
Ecient low-level systems need more control over memory than safe high-level languages usually provid...