Description
Grammatical abstraction and logical constraint grammars are new approaches to specifying and enforcing the syntactic and static-semantic constraints of a language within a language-based editor. Grammatical abstraction defines a formal correspondence between the concrete (parsing) syntax of the language and the abstract syntax of the language as viewed by a user of the system. This correspondence allows a decorated abstract syntax tree to be used during incremental LR parsing.
Logical constraint grammars couple logic programming with consistency maintenance to describe and enforce the static-semantic constraints of a language. The information required for incremental consistency maintenance is derived directly from the description of the semantic constraints. The author of a language description is shielded from most of the details of information flow and storage management. Information gathered during enforcement is retained in a logic database accessible by other tools.
Pan is an experimental language-based editing and browsing system that uses grammatical abstraction and logical constraint grammars. Experience with Pan confirms the utility of these approaches.