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
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)

