Incremental Static Semantic Analysis

Abstract

Language-based programming environments provide some or all of the functionality of a compiler, an interactive debugger, a browser, and a configuration manager behind a unified user interface based on an editing paradigm. As the user edits a program, the changes are processed incrementally, allowing for low-latency updates to derived information. This information can be made available to interactive environment services, such as browsing, navigation, and "real time" error-reporting. In this dissertation, we address an important subproblem in the construction of such environments, the generation of static semantic analyzers that operate in an incremental mode. Our work is embodied in the Colander II system, which introduces both a new metalanguage for the declarative specification of static semantic analyses and new techniques for generating an incremental analyzer from these specifications automatically. Our specification metalanguage melds the advantages of traditional attribute grammars, including amenability to extensive generation-time analysis, with the expressiveness and client-independence characteristic of Ballance's Logical Constraint Grammars. In comparison to traditional attribute grammars, our metalanguage allows much more of the incrementality inherent in a particular analysis task to be exposed within the formalism itself, where it can be exploited automatically by our implementation. Our incremental analysis algorithms exploit the attributed objects and function-valued attributes provided by our metalanguage, mapping these expressive notations onto a fine-grained incremental implementation. We are thus able to automatically generate incremental analyzers that handle long-distance dependencies and aggregate attributes efficiently.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
May 01, 1997
Accession Number
ADA604432

Entities

People

  • William H. Maddox Iii

Organizations

  • University of California, Berkeley

Tags

Communities of Interest

  • C4I

DTIC Thesaurus Topics

  • Analyzers
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Engineering
  • Environment
  • Formal Languages
  • Grammars
  • Information Operations
  • Interdisciplinary Science
  • Language
  • Plastic Explosives
  • Specifications
  • Standards
  • Systems Science
  • User Interface

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computational Linguistics
  • Database Systems and Applications
  • Distributed Systems and Data Platform Development