International audienceFunction uncurrying is an important optimization for the efficient execution of functional programming languages. This optimization replaces curried functions by uncur-ried, multiple-argument functions, while preserving the ability to evaluate partial applications. First-order uncurrying (where curried functions are optimized only in the static scopes of their definitions) is well understood and implemented by many compilers, but its extension to higher-order functions (where uncurrying can also be performed on parameters and results of higher-order functions) is challenging. This article develops a generic framework that expresses higher-order uncurrying optimizations as type-directed insertion of coercions, and prove...
We discuss how the 1'st order specification and programming language ABEL could be extended with hig...
We describe a technique for automatically proving compiler optimizations sound, meaning that their t...
It is argued that a programming style based on higher order techniquesthe use of procedures that hav...
International audienceFunction uncurrying is an important optimization for the efficient execution o...
Inlining is an optimization that replaces a call to a function with that function’s body. This optim...
This paper presents a new approach to optimising corecursive programs by factorisation. In particula...
Functional programs often define functions by pattern matching where patterns may inadvertedly overl...
This paper presents a new approach to optimising corecursive pro-grams by factorisation. In particul...
We present a new approach for constructing and verifying higher-order, imperative programs using the...
International audienceAbstract Unification is a central operation in constructing a range of computa...
It is well-known that each polymorphic function satisfies a certain equational law, called a natural...
We discuss how the 1st order specification and programming language ABEL could be extended with high...
AbstractBecause functions are abstract values without convenient print representations, implementing...
The unification algorithm is at the heart of a proof assistant like Coq. In particular, it is a key ...
. A higher order logic programming system is presented. The declarative semantics of the system is b...
We discuss how the 1'st order specification and programming language ABEL could be extended with hig...
We describe a technique for automatically proving compiler optimizations sound, meaning that their t...
It is argued that a programming style based on higher order techniquesthe use of procedures that hav...
International audienceFunction uncurrying is an important optimization for the efficient execution o...
Inlining is an optimization that replaces a call to a function with that function’s body. This optim...
This paper presents a new approach to optimising corecursive programs by factorisation. In particula...
Functional programs often define functions by pattern matching where patterns may inadvertedly overl...
This paper presents a new approach to optimising corecursive pro-grams by factorisation. In particul...
We present a new approach for constructing and verifying higher-order, imperative programs using the...
International audienceAbstract Unification is a central operation in constructing a range of computa...
It is well-known that each polymorphic function satisfies a certain equational law, called a natural...
We discuss how the 1st order specification and programming language ABEL could be extended with high...
AbstractBecause functions are abstract values without convenient print representations, implementing...
The unification algorithm is at the heart of a proof assistant like Coq. In particular, it is a key ...
. A higher order logic programming system is presented. The declarative semantics of the system is b...
We discuss how the 1'st order specification and programming language ABEL could be extended with hig...
We describe a technique for automatically proving compiler optimizations sound, meaning that their t...
It is argued that a programming style based on higher order techniquesthe use of procedures that hav...