Results 1 
6 of
6
Optimising Compilation  Part II: lazy functional languages
, 1992
"... : This lecture considers the optimisation of functional programming languages (particularly `lazy' languages) based on `strictness analysis'. Such optimisations alter evaluation order to allow more efficient translation into von Neumann architecture or to increase the parallelism in a sequ ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
: This lecture considers the optimisation of functional programming languages (particularly `lazy' languages) based on `strictness analysis'. Such optimisations alter evaluation order to allow more efficient translation into von Neumann architecture or to increase the parallelism in a sequentially specified system (such as that implied by lazysemantics) . Keywords: Functional languages, lazy evaluation, eager evaluation, strictness analysis, abstract interpretation. 1 Functional Languages The term `functional' as applied to programming languages has been used to apply to a number of related but different models of computation. As used here it will refer to purely functional languages, characterised by a complete lack of sideeffects and a very direct relationship with the calculus. This rules out languages such as ML and Lisp which, although emphasising the status of functions in the construction of programming and containing wellunderstood pure subsets, include forms of assignmen...
Uniform PERs and Comportment Analysis
, 1995
"... Hunt showed that the notion of PERbased strictness properties subsumed the incomparable notions of ideal and projectionbased properties on nonlifted value spaces. We extend Hunt's idea so it can encompass other comportment properties (such as totality) by separating the information and fixp ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Hunt showed that the notion of PERbased strictness properties subsumed the incomparable notions of ideal and projectionbased properties on nonlifted value spaces. We extend Hunt's idea so it can encompass other comportment properties (such as totality) by separating the information and fixpoint orderings. We then define a class of uniform PERs (in the sense that they treat nonbottom ground elements, e.g. integers, identically) and then show how these can be hereditarily defined on function spaces. These (or subsets thereof) can be taken as a space of abstract values for abstract interpretation in the style of Nielson.
Strictness Properties of Lazy Algebraic
"... A new construction of a finite set of strictness properties for any lazy algebraic datatype is presented. The construction is based on the categorical view of the solutions to the recursive domain equations associated with such types as initial algebras. We then show how the initial algebra inductio ..."
Abstract
 Add to MetaCart
A new construction of a finite set of strictness properties for any lazy algebraic datatype is presented. The construction is based on the categorical view of the solutions to the recursive domain equations associated with such types as initial algebras. We then show how the initial algebra induction principle can be used to reason about the entailment relation on the chosen collection of properties. We examine the lattice of properties given by our construction for the type nlist of lazy lists of natural numbers and give proof rules which extend the conjunctive strictness logic of [2] to a language including the type nlist. 1
A Semantic Model of Binding Times for Safe Partial Evaluation
 Proc. Programming Languages: Implementations, Logics and Programs (PLILP
"... In program optimisation an analysis determines some information about a portion of a program, which is then used to justify certain transformations on the code. The correctness of the optimisation can be argued monolithically by considering the behaviour of the optimiser and a particular analysis i ..."
Abstract
 Add to MetaCart
In program optimisation an analysis determines some information about a portion of a program, which is then used to justify certain transformations on the code. The correctness of the optimisation can be argued monolithically by considering the behaviour of the optimiser and a particular analysis in conjunction. Alternatively, correctness can be established by finding an interface, a semantic property, between the analysis and the transformation. The semantic property provides modularity by giving a specification for a systematic construction of the analysis, and the program transformations are justified via the semantic properties. This paper considers the problem of partial evaluation. The safety of a partial evaluator ("it does not go wrong") has previously been argued in the monolithic style by considering the behaviour of a particular bindingtime analysis and program specialiser in conjunction. In this paper we pursue the alternative approach of justifying the bindingtime prop...