Results 1  10
of
43
A Type System for Bounded Space and Functional inPlace Update
, 2000
"... We show how linear typing can be used to obtain functional programs which modify heapallocated data structures in place. We present this both as a "design pattern" for writing Ccode in a functional style and as a compilation process from linearly typed firstorder functional programs into malloc() ..."
Abstract

Cited by 84 (14 self)
 Add to MetaCart
We show how linear typing can be used to obtain functional programs which modify heapallocated data structures in place. We present this both as a "design pattern" for writing Ccode in a functional style and as a compilation process from linearly typed firstorder functional programs into malloc()free C code. The main technical result is the correctness of this compilation. The crucial innovation over previous linear typing schemes consists of the introduction of a resource type # which controls the number of constructor symbols such as cons in recursive definitions and ensures linear space while restricting expressive power surprisingly little. While the space e#ciency brought about by the new typing scheme and the compilation into C can also be realised by with stateoftheart optimising compilers for functional languages such as Ocaml [16], the present method provides guaranteed bounds on heap space which will be of use for applications such as languages for embedd...
Mobile Resource Guarantees for Smart Devices
 Proceedings of CASSISâ€™04, LNCS
, 2005
"... Abstract. We present the Mobile Resource Guarantees framework: a system for ensuring that downloaded programs are free from runtime violations of resource bounds. Certificates are attached to code in the form of efficiently checkable proofs of resource bounds; in contrast to cryptographic certifica ..."
Abstract

Cited by 49 (6 self)
 Add to MetaCart
Abstract. We present the Mobile Resource Guarantees framework: a system for ensuring that downloaded programs are free from runtime violations of resource bounds. Certificates are attached to code in the form of efficiently checkable proofs of resource bounds; in contrast to cryptographic certificates of code origin, these are independent of trust networks. A novel programming language with resource constraints encoded in function types is used to streamline the generation of proofs of resource usage. 1
A Type System for LockFree Processes
, 2002
"... Interpretation. An alternative way to analyze the behavior of a concurrent program would be to use abstract interpretation [4, 5]. Actually, from a very general viewpoint, our typebased analysis of locks can be seen as a kind of abstract interpretation. We can read a type judgment # P as "# is a ..."
Abstract

Cited by 35 (7 self)
 Add to MetaCart
Interpretation. An alternative way to analyze the behavior of a concurrent program would be to use abstract interpretation [4, 5]. Actually, from a very general viewpoint, our typebased analysis of locks can be seen as a kind of abstract interpretation. We can read a type judgment # P as "# is an abstraction of a concrete process P ." (The relation "#" corresponds to a pair of abstraction /concretization functions.) Indeed, we can regard a type environment as an abstract process: we have defined reductions of type environments in Section 3.7.
Another Type System for inPlace Update
, 2002
"... Linear typing schemes guarantee singlethreadedness and so the soundness of inplace update with respect to a functional semantics. But linear ..."
Abstract

Cited by 35 (6 self)
 Add to MetaCart
Linear typing schemes guarantee singlethreadedness and so the soundness of inplace update with respect to a functional semantics. But linear
Efficient First Order Functional Program Interpreter With Time Bound Certifications
, 2000
"... We demonstrate that the class of rst order functional programs over lists which terminate by multiset path ordering and admit a polynomial quasiinterpretation, is exactly the class of function computable in polynomial time. The interest of this result lies (i) on the simplicity of the conditions on ..."
Abstract

Cited by 25 (10 self)
 Add to MetaCart
We demonstrate that the class of rst order functional programs over lists which terminate by multiset path ordering and admit a polynomial quasiinterpretation, is exactly the class of function computable in polynomial time. The interest of this result lies (i) on the simplicity of the conditions on programs to certify their complexity, (ii) on the fact that an important class of natural programs is captured, (iii) and on potential applications on program optimizations. 1 Introduction This paper is part of a general investigation on the implicit complexity of a specication. To illustrate what we mean, we write below the recursive rules that computes the longest common subsequences of two words. More precisely, given two strings u = u1 um and v = v1 vn of f0; 1g , a common subsequence of length k is dened by two sequences of indices i 1 < < i k and j1 < < jk satisfying u i q = v j q . lcs(; y) ! 0 lcs(x; ) ! 0 lcs(i(x); i(y)) ! lcs(x; y) + 1 lcs(i(...
Safe recursion with higher types and BCKalgebra
 Annals of Pure and Applied Logic
, 2000
"... In previous work the author has introduced a lambda calculus SLR with modal and linear types which serves as an extension of BellantoniCook's function algebra BC to higher types. It is a step towards a functional programming language in which all programs run in polynomial time. In this paper we de ..."
Abstract

Cited by 21 (3 self)
 Add to MetaCart
In previous work the author has introduced a lambda calculus SLR with modal and linear types which serves as an extension of BellantoniCook's function algebra BC to higher types. It is a step towards a functional programming language in which all programs run in polynomial time. In this paper we develop a semantics of SLR using BCKalgebras consisting of certain polynomialtime algorithms. It will follow from this semantics that safe recursion with arbitrary result type built up from N and ( as well as recursion over trees and other data structures remains within polynomial time. In its original formulation SLR supported only natural numbers and recursion on notation with first order functional result type. 1 Introduction In [10] and [11] we have introduced a lambda calculus SLR which generalises the BellantoniCook characterisation of PTIME [2] to higherorder functions. The separation between normal and safe variables which is crucial to the BellantoniCook system has been achieved...
Soft lambdacalculus: a language for polynomial time computation
 In Proc. FoSSaCS, Springer LNCS 2987
, 2004
"... Abstract. Soft linear logic ([Lafont02]) is a subsystem of linear logic characterizing the class PTIME. We introduce Soft lambdacalculus as a calculus typable in the intuitionistic and affine variant of this logic. We prove that the (untyped) terms of this calculus are reducible in polynomial time. ..."
Abstract

Cited by 19 (2 self)
 Add to MetaCart
Abstract. Soft linear logic ([Lafont02]) is a subsystem of linear logic characterizing the class PTIME. We introduce Soft lambdacalculus as a calculus typable in the intuitionistic and affine variant of this logic. We prove that the (untyped) terms of this calculus are reducible in polynomial time. We then extend the type system of Soft logic with recursive types. This allows us to consider nonstandard types for representing lists. Using these datatypes we examine the concrete expressiveness of Soft lambdacalculus with the example of the insertion sort algorithm. 1
Analysing the Implicit Complexity of Programs
, 2000
"... We construct a termination ordering, called light multiset path ordering (LMPO), which is a restriction of the multiset path ordering. We establish that the class of programs based on rewriting rules on lists which is terminating by LMPO, characterises exactly the functions computable in polynomial ..."
Abstract

Cited by 16 (7 self)
 Add to MetaCart
We construct a termination ordering, called light multiset path ordering (LMPO), which is a restriction of the multiset path ordering. We establish that the class of programs based on rewriting rules on lists which is terminating by LMPO, characterises exactly the functions computable in polynomial time.
Syntactic Control of Concurrency
, 2004
"... We consider a finitary procedural programming language (finite datatypes, no recursion) extended with parallel composition and binary semaphores. Having first shown that mayequivalence of secondorder open terms is undecidable we set out to find a framework in which decidability can be regained wi ..."
Abstract

Cited by 15 (8 self)
 Add to MetaCart
We consider a finitary procedural programming language (finite datatypes, no recursion) extended with parallel composition and binary semaphores. Having first shown that mayequivalence of secondorder open terms is undecidable we set out to find a framework in which decidability can be regained with minimum loss of expressivity. To that end we define an annotated type system that controls the number of concurrent threads created by terms and give a fully abstract game semantics for the notion of equivalence induced by typable terms and contexts. Finally, we show that the semantics of all typable terms, at any order and in the presence of iteration, has a regularlanguage representation and thus the restricted observational equivalence is decidable.