Our past work has focused on the study of incremental evaluators for various non-incremental computational formalisms. The formalisms considered have included (first-order) attribute grammars, relational data-base queries, first-order functional programs, acyclic expression graphs, the lambda calculus, and higher-order attribute grammars. For each formalism and for various notions of change in input, we have devised incremental evaluators. Because, in each case, the incremental evaluator can be applied to any program written in the given non-incremental computational formalism, our results have been broadly applicable. Currently, we are studying the formal derivation of incremental programs from non-incremental programs. Although, in principle, the methods to be devised might be used to derive incremental evaluators for general purpose computational formalisms, it is our intention that the methods be applied directly to arbitrary end-user programs. By shifting attention to the derivation of incremental algorithms, we aim to exploit partial evaluation, other static analysis techniques, and domain specific knowledge to provide a degree of incrementality not otherwise achievable by a generic incremental evaluator. A prototype system for transforming non-incremental programs into incremental programs is under development. University ActivitiesOn sabbatical 1997-1998 External ActivitiesCo-founder and Chairman: GrammaTech, Inc. Professional Activities
|