Programming in an Interactive Environment: the ``Lisp'' Experience
ACM Computing Surveys (CSUR)
Grammar-Based Definition of Metaprogramming Systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Cornell program synthesizer: a syntax-directed programming environment
Communications of the ACM
Elements of the Theory of Computation
Elements of the Theory of Computation
Abstraction mechanisms in the BETA programming language
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Multi-sequential execution in the BETA programming language
ACM SIGPLAN Notices
Grammatical abstraction and incremental syntax analysis in a language-based editor
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Program visualization using reference attributed grammars
Nordic Journal of Computing
The when, why and why not of the BETA programming language
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Hi-index | 0.00 |
Program fragments are described either by strings in the concrete syntax or by constructor applications in the abstract syntax. By defining conversions between these forms, both may be intermixed. Program fragments are constructed by terminal and nonterminal symbols from the grammar and by variables having program fragments as values. Basic operations such as valuetransfer, composition and decomposition are defined for program fragments allowing more complicated operations to be implemented. Usual operations such as testing for equality are defined, and in addition more specialized operations such as testing that a program fragment is derivable from another and converting program fragments in concrete form to abstract form are defined. By introducing regular expressions in the grammar these may be used in program fragments in concrete form. By defining constructors for regular expressions these may also be used in program fragments in abstract form.