Title :
Language design for program manipulation
Author :
Merks, Eduardus A T ; Dyck, J. Michael ; Cameron, Robert D.
Author_Institution :
Sch. of Comput. Sci., Simon Fraser Univ., Burnaby, BC, Canada
fDate :
1/1/1992 12:00:00 AM
Abstract :
The design of procedural and object-oriented programming languages is considered with respect to how easily programs written in those languages can be formally manipulated. Current procedural languages such as Pascal, Modula-2 and Ada; generally support such program manipulations, except for some annoying anomalies and special cases. Three main areas of language design are identified as being of concern from a manipulation viewpoint: the interface between concrete and abstract syntax; the relationship between the abstract syntax and static semantics naming, scoping and typing; and the ability to express basic transformations (folding and unfolding). Design principles are suggested so that the problems identified for current languages can be avoided in the future
Keywords :
high level languages; object-oriented programming; software engineering; Ada; Modula-2; Pascal; abstract syntax; language design; naming; object-oriented programming languages; procedural languages; program manipulation; program manipulations; scoping; static semantics; typing; unfolding; Appropriate technology; Concrete; Data structures; Instruments; Process design; Synthesizers;
Journal_Title :
Software Engineering, IEEE Transactions on