"The Reuse of Grammars with Embedded Semantic Actions"Assistant professor and graduate program director
University of San Francisco
AbstractFormal grammars are at the heart of many important applications, including source code rewriting systems and program comprehension tools. To go beyond syntax checking, grammars must have some way to specify the translation or interpretation logic (the semantics). Unfortunately, the act of specifying the semantics can lock a grammar into one specific application since the grammar is often modified to suit. Reusing this grammar then becomes a serious problem even though it might be needed verbatim in another application but with different semantics.
Researchers have explored a number of formal strategies for decoupling the syntax and semantics specifications (e.g., SDF+ASF, Stratego, and friends). Once grammars are decoupled from the semantics, programmers can treat grammars just like libraries. In contrast, ANTLR cannot enforce this separation. An ANTLR grammar's syntax and semantics are often entangled because programmers embed arbitrary actions within the rules.
In this talk, I will summarize and illustrate solutions for the most common grammar reuse problems encountered by ANTLR users: grammar composition and grammars derived from prototypes. ANTLR v3.1 incorporates a delegation model for composing grammars and my proposed "lowbrow" solution for dealing with prototypical grammars may surprise you.
PaperThe paper can be downloaded here
BioTerence Parr is a professor of computer science at the University of San Francisco where he continues to work on his ANTLR parser generator, http://www.antlr.org. Terence recently returned from years in industry where he co-founded jGuru.com. He herded programmers and implemented the large jGuru developers web site, during which time he developed and refined the StringTemplate engine. Terence has consulted for and held various technical positions at companies such as IBM, Lockheed Missiles and Space, NeXT, and Renault Automation. Terence holds a Ph.D. in Computer Engineering from Purdue University and was a postdoctoral fellow at the Army High-Performance Computing Research Center at the University of Minnesota where he built parallelizing FORTRAN source-to-source translators.
Suraj C. Kothari
"Scalable Program Comprehension for Analyzing Complex Defects"Professor and Chair, Software Systems Group in the Electrical and Computer Engineering Department, Iowa State University (ISU), USA
President of EnSoft Corp., USA
AbstractIt is no longer the time and space complexity, but it is the human complexity . programmer.s time and effort, that is really the concern and the bottleneck for achieving high software productivity and quality. Effective program comprehension tools are needed to reduce the human complexity.
This talk will be about an interactive Query-Model-Refine (QMR) approach for building program comprehension tools. The QMR approach has been used for building a number of program comprehension tools for different applications: interactive automatic parallelization, business rule analysis, auditing safety-critical control software, and defect analysis. This presentation will be accompanied by a demonstration of a program comprehension tool called Atlas. We will show its use for analyzing complex defects in an operating systems code. The demonstration will illustrate how the tedious and time-consuming task of analyzing complex defects can be greatly simplified so that instead of hours we can do the analysis in minutes and avoid human errors that are likely to occur without the tool.
The QMR is an extensible approach. The query language, the models, and the refinement transformations will evolve as we get better insights into solving different types of program comprehension problems.