Issue No. 01 - January (1992 vol. 18)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/32.120313
<p>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.</p>
program manipulation; object-oriented programming languages; procedural languages; Pascal; Modula-2; Ada; program manipulations; language design; abstract syntax; static semantics; naming; scoping; typing; unfolding; high level languages; object-oriented programming; software engineering
E. Merks, J. Dyck and R. Cameron, "Language Design for Program Manipulation," in IEEE Transactions on Software Engineering, vol. 18, no. , pp. 19-32, 1992.