Show simple item record

Files in this item

Thumbnail

Item metadata

dc.contributor.advisorCole, A. J. (Alfred John)
dc.contributor.authorCampbell, William R.
dc.coverage.spatialviii, 181 p.en_US
dc.date.accessioned2018-05-21T10:23:59Z
dc.date.available2018-05-21T10:23:59Z
dc.date.issued1978
dc.identifier.urihttps://hdl.handle.net/10023/13411
dc.description.abstractStarting from B M Leavenworth's proposal for syntactic macros, we describe an extension language LE with which one may extend a base Language LB for defining a new programming language LP. The syntactic macro processor is designed to minimise the overheads required for implementing the extensions and for carrying the syntax and data type error diagnostics of LB through to the extended language LP. Wherever possible, programming errors are flagged where they are introduced in the source text, whether in a macro definition or in a macro call. LE provides a notation, similar to popular extended forms of BNF, for specifying alternative syntaxes for new linguistic forms in the macro template, a separate assertion clause for imposing context sensitive restrictions on macro calls which cannot be imposed by the template, and a non-procedural language which reflects the nested structure of the template for prescribing conditional text replacement in the macro body. A super user may use LE for introducing new linguistic forms to LB and redefining, replacing or deleting existing forms. The end user is given the syntactic macro in terms of an LP macro declaration with which he may define new forms which are local to the lexical environments in which they are declared in his LP program. Because the macro process is embedded in and directed by a deterministic top down parse, the user can be sure that his extensions are unambiguous. Examples of macro definitions are given using a base language LB which has been designed to be rich enough in syntax and data types for illustrating the problems encountered in extending high level languages. An implementation of a compiler/processor for LB and LE is also described. A survey of previous work in this area, summaries of LE and LB, and a description of the abstract target machine are contained in appendices.en_US
dc.language.isoenen_US
dc.publisherUniversity of St Andrews
dc.subject.lccQA76.1C2
dc.subject.lcshElectronic data processingen
dc.titleThe effective application of syntactic macros to language extensibilityen_US
dc.typeThesisen_US
dc.type.qualificationlevelDoctoralen_US
dc.type.qualificationnamePhD Doctor of Philosophyen_US
dc.publisher.institutionThe University of St Andrewsen_US


This item appears in the following Collection(s)

Show simple item record