Moura, Hermano Perrelli de (1993) Action Notation Transformations. PhD thesis, University of Glasgow.
Full text available as:
PDF
Download (7MB) |
Abstract
ACTRESS is a semantics-directed compiler generation system based on action semantics. Its aim is to generate compilers whose performance is closer to hand-written compilers than the ones generated by other semantics-directed compiler generators. ACTRESS generates a compiler for a language based solely on the language's action semantic description. We describe the process by which this is achieved. A compiler for action notation, the formal notation used in action semantic descriptions, is the core of the generated compilers. We specify and implement a code generator for the action notation compiler. We also present the design and implementation of an action notation interpreter. A conventional hand-written compiler eliminates, whenever possible, references to identifiers at compile time. Some storage allocation is often performed at compile-time too. We can see both steps as transformations whose main objective is to improve the quality of the object code. The compiler writer, based on his knowledge of properties of the source language, implements these "transformations" as best as he can. In the context of ACTRESS, where action notation can be seen as the intermediate language of every generated compiler, we adopt a similar approach. We introduce a set of transformations, called action transformations, which allow the systematic and automatic elimination of bindings in action notation for statically scoped languages. They also allocate storage statically whenever possible. We formalise and implement these action transformations. The transformations may be included in generated compilers. We show that this inclusion improves the quality of the object code generated by ACTRESS' compilers. In general, action transformations are a way to do some static processing of actions. Transforming actions corresponds to partially performing them, leaving less work to be done at performance time. Thus, transformed actions are more efficient. Binding elimination exposes the static and dynamic nature of bindings in action notation. This relates with the binding discipline one can find in a programming language. We study the binding discipline of action notation and we state a condition which identifies a statically scoped action. We extend this condition to a sufficient condition on the action semantics of a language which tells if the language is statically scoped. This condition can be implemented as an analysis to be performed by ACTRESS, at compiler generation time, to decide which transformations will be included in a generated compiler for the language. Finally, we list possibilities for improvements and potential areas for further research.
Item Type: | Thesis (PhD) |
---|---|
Qualification Level: | Doctoral |
Additional Information: | Adviser: David A Watt |
Keywords: | Computer science |
Date of Award: | 1993 |
Depositing User: | Enlighten Team |
Unique ID: | glathesis:1993-76384 |
Copyright: | Copyright of this thesis is held by the author. |
Date Deposited: | 19 Nov 2019 14:46 |
Last Modified: | 19 Nov 2019 14:46 |
URI: | https://theses.gla.ac.uk/id/eprint/76384 |
Actions (login required)
View Item |
Downloads
Downloads per month over past year