How understanding and restructuring differ from compiling -a rewriting perspective
Author:
- 23 March 2004
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 10928138,p. 2-11
Abstract
Syntactic and semantic analysis are established topics in the area of compiler construction. Their application to the understanding and restructuring of large software systems reveals, however that they have various shortcomings that need to be addressed. In this paper we study these shortcomings and propose several solutions. First, grammar recovery and grammar composition are discussed as well as the symbiosis of lexical syntax and context-free syntax. Next, it is shown how a relational calculus can be defined by way of term rewriting and how a fusion of term rewriting and this relational calculus can be obtained to provide semantics-directed querying and restructuring. Finally, we discuss how the distance between concrete syntax and abstract syntax can be minimized for the benefit of restructuring. In particular we pay attention to origin tracking, a systematic technique to maintain a mapping between the output and the input of the rewriting process. Along the way, opportunities for further research are indicated.Keywords
This publication has 26 references indexed in Scilit:
- Rigi: a system for programming-in-the-large2003
- Native patterns2002
- Generating robust parsers using island grammars2002
- Disambiguation Filters for Scannerless Generalized LR ParsersLecture Notes in Computer Science, 2002
- A slicing-based approach for locating type errorsACM Transactions on Software Engineering and Methodology, 2001
- OPTVIEW1998
- Core technologies for system renovation1996
- SUPPORTING QUERIES ON SOURCE CODE: A FORMAL FRAMEWORKInternational Journal of Software Engineering and Knowledge Engineering, 1994
- Implementing relational views of programs1984
- Deterministic techniques for efficient non-deterministic parsersLecture Notes in Computer Science, 1974