Abstract Syntax from Concrete Syntax

David S. Wile. Abstract Syntax from Concrete Syntax. In ICSE. pages 472-480, 1997. [doi]

Abstract

Modem Software Engineering practice advocates the development of domain-specific specification languages to characterize formally the idioms of discourse and jargon of specific problem domains. With poorly-understood domains it is best to construct an abstract syntax to characterize the domain concepts and abstractions before developing a concrete syntax. Often, however, a good concrete syntax exists a priori: sometimes in sophisticated formal languages characterizing (often mathematical) domains but more often in miniature, legacy-code languages, sorely in need of reverse engineering. In such cases, it is necessary to derive an appropriate abstract syntax - or its first cousin, an object-oriented model - from the concrete syntax. This report describes a transformation process that produces a good abstract representation from a low-level concrete syntax specification.