Edinburgh Research Archive

Abstract interpretation and optimising transformations for applicative programs

dc.contributor.advisor
Burstall, Rod
en
dc.contributor.advisor
Milner, Robin
en
dc.contributor.author
Mycroft, Alan
en
dc.contributor.sponsor
SRC research studentship B/78/313640
en
dc.date.accessioned
2013-04-02T15:02:16Z
dc.date.available
2013-04-02T15:02:16Z
dc.date.issued
1982
dc.description.abstract
This thesis describes methods for transforming applicative programs with the aim of improving their efficiency. The general justification for these techniques is presented via the concept of abstract interpretation. The work can be seen as providing mechanisms to optimise applicative programs for sequential von Neumann machines. The chapters address the following subjects. Chapter 1 gives an overview and gentle introduction to the following technical chapters. Chapter 2 gives an introduction to and motivation for the concept of abstract interpretation necessary for the detailed understanding of the rest of the work. It includes certain theoretical developments, of which I believe the most important is the incorporation of the concept of partial functions into our notion of abstract interpretation. This is done by associating non-standard denotations with functions just as denotational semantics gives the standard denotations. Chapter 3 gives an example of the ease with which we can talk about function objects within abstract interpretive schemes. It uses this to show how a simple language using call-by-need semantics can be augmented with a system that annotates places in a program at which call-by-value can be used without violating the call-by-need semantics. Chapter 4 extends the work of chapter 3 by showing that under some sequentiality restriction, the incorporation of call-by-value for call-by-need can be made complete in the sense that the resulting program will only possess strict functions except for the conditional. Chapter 5 is an attempt to apply the concepts of abstract interpretation to a completely different problem, that of incorporating destructive operators into an applicative program. We do this in order to increase the efficiency of implementation without violating the applicative semantics by introducing destructive operators into our language. Finally, chapter 6 contains a discussion of the implications of such techniques for real languages, and in particular presents arguments whereby applicative languages should be seen as whole systems and not merely the applicative subset of some larger language.
en
dc.identifier.uri
http://hdl.handle.net/1842/6602
dc.language.iso
en
dc.publisher
The University of Edinburgh
en
dc.relation.hasversion
Mycroft, A. The Theory and Practice of Transforming Call-by-need into Call-by-value. Proc. 4th Int. Symp. on Programming: Lecture notes in Computer Science number 83, Paris, April, 1980, pp. 269-281.
en
dc.relation.hasversion
Mycroft, A. Call-by-Need = Call-by-Value + Conditional. Internal report CSR-78-81, Dept. of Computer Science, Edinburgh University, 1981. Presented at IUCC conference at Exeter, Sept 1980.
en
dc.subject
sequential von Neumann machines.
en
dc.subject
abstract interpretive schemes.
en
dc.subject
call-by-need semantics.
en
dc.subject
destructive operators
en
dc.title
Abstract interpretation and optimising transformations for applicative programs
en
dc.type
Thesis or Dissertation
en
dc.type.qualificationlevel
Doctoral
en
dc.type.qualificationname
PhD Doctor of Philosophy
en

Files

Original bundle

Now showing 1 - 1 of 1
Name:
Mycroft1982.pdf
Size:
1.28 MB
Format:
Adobe Portable Document Format
Description:

This item appears in the following Collection(s)