UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

The translation of programming languages through the use of a graph transformation language Van den Bosch, Peter Nico

Abstract

It is shown that the automated translation of programming languages suffers from its traditional domination by context free parsing techniques, specifically in failing to deal uniformly with such translation-related concerns as language extension, optimization, error handling and reporting, and multi-stage translation, as well as in generally ad hoc treatment of the context sensitive aspects of translation, particularly those concerned with the identification of symbols. A descriptive technique for discussing translation that takes into account not only the immense and continued success of the syntactic basis for programming language translation but also the need to deal uniformly with the above concerns is presented, and demonstrated to be implementable as a programming tool. This demonstration is effected both by means of a detailed discussion of the technique's application to the expression of translation algorithms, and by a consideration of the practical aspects of its implementation as a programming language. The technique involves a representation of the complete syntactic structure of programs as a directed graph, and the expression of translations as local transformations of the graph representation. A wide range of translation concerns is discussed with reference to graph transformation. Practical experience with an experimental version of a graph transformation language is presented, and used as the basis for a further development in the design. An evaluation of the completed research, and an assessment of its position within concurrent developments in the discipline of programming language translation, conclude this dissertation.

Item Media

Item Citations and Data

Rights

For non-commercial purposes only, such as research, private study and education. Additional conditions apply, see Terms of Use https://open.library.ubc.ca/terms_of_use.