Use this URL to cite or link to this record in EThOS: https://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.796900
Title: Action notation transformations
Author: Moura, Hermano Perrelli de
Awarding Body: University of Glasgow
Current Institution: University of Glasgow
Date of Award: 1993
Availability of Full Text:
Access from EThOS:
Access from Institution:
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.
Supervisor: Not available Sponsor: Not available
Qualification Name: Thesis (Ph.D.) Qualification Level: Doctoral
EThOS ID: uk.bl.ethos.796900  DOI: Not available
Share: