Functions, types and expressions programming languages and their operational semantics compilation partial evaluation of a flow chart languages partial evaluation of a first-order functional… Expand

The "size-change termination" principle for first-order functional language with well-founded data is: a program terminates on all inputs if every infinite call sequence (following program control flow) would cause an infinite descent in some data values.Size-change analysis is based only on local approximations to parameter size changes derivable from program syntax.Expand

We introduce a positive supercompiler, a version of Turchin's super compiler maintaining only positive information during transformation, and using folding without generalization.Expand

Reducibility and completeness among combinatorial problems can be formulated in terms of space bounds, in some cases refining the polynomial time-reducibility of Cook and Karp.Expand

A programming approach to computability and complexity theory yields proofs of central results that are sometimes more natural than the classical ones; and some new results as well.Expand

We provide methods for determining the class of shapes which an unbounded data object may assume during execution of a LISP-like program, and describe a number of uses to which that information may be put to improve storage allocation in compilers and interpreters for advanced programming languages.Expand

The present paper is an extended abstract of (Jones 1985), in which a running , non-trivial partial evaluator is described, which is used in practice to transform interpreters into corresponding stand-alone compilers, or to generate a compile r generator by transforming itself .Expand

A new approach to data flow analysis of procedural programs and programs with recursive data structures using a retrieval function to approximate a program's data structures is described.Expand

This paper uses complexity theory to prove some expressivity results about small programming languages that are less than Turing complete by comparing first-order functional programs with higher-order programs allowing functions as function parameters.Expand

Partial evaluation provides a unifying paradigm for a broad spectrum of work in program optimization compiling interpretation and the generation of automatic program generators [Bjørner et al. 1987; Ershov 1992).Expand