VLDB 2026 Research / reviewers in the wild / expert
Gregor Snelting
dblp:s/GregorSnelting
· DBLP profile ↗
30ranked-venue papers
11as first author
1since 2021 · last 2022
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 23 · 10 first-author · 1 since 2021Theory of computation · 2 · 1 first-authorArtificial intelligence and machine learning · 1Systems, architecture and hardware · 1Security and privacy · 1Human-computer interaction and ubiquitous computing · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
15 papers |
Program analysis · 43% Compilers and program optimization · 30% Programming languages and type systems · 11% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Interconnection networks and networks-on-chip · 77% Parallel and multicore computing · 23% | |
| Network and information security
1 paper |
Hardware security and side channels · 100% |
Topics — the 30 heaviest of 38, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis › static analysis
program slicing |
0.7 | 3 | 2022 | On Time-sensitive Control Dependencies · ACM Trans. Program. Lang. Syst. 2022 Efficient path conditions in dependence graphs for software safety analysis · ACM Trans. Softw. Eng. Methodol. 2006 Efficient path conditions in dependence graphs · ICSE 2002 |
Compilers and program optimization › dependence analysis
control dependence analysis |
0.6 | 1 | 2022 | On Time-sensitive Control Dependencies · ACM Trans. Program. Lang. Syst. 2022 |
Hardware security and side channels
side-channel attack |
0.2 | 1 | 2022 | On Time-sensitive Control Dependencies · ACM Trans. Program. Lang. Syst. 2022 |
Program analysis
path constraint |
0.1 | 2 | 2006 | Efficient path conditions in dependence graphs for software safety analysis · ACM Trans. Softw. Eng. Methodol. 2006 Efficient path conditions in dependence graphs · ICSE 2002 |
Software maintenance and evolution
refactoring |
0.1 | 2 | 2004 | Refactoring class hierarchies with KABA · OOPSLA 2004 Reengineering Class Hierarchies Using Concept Analysis · SIGSOFT FSE 1998 |
Compilers and program optimization › dependence analysis
dependence graph analysis |
0.1 | 1 | 2006 | Efficient path conditions in dependence graphs for software safety analysis · ACM Trans. Softw. Eng. Methodol. 2006 |
Programming languages and type systems › language semantics
formal semantics |
0.1 | 1 | 2006 | An operational semantics and type safety prooffor multiple inheritance in C++ · OOPSLA 2006 |
Program analysis › static analysis
information flow analysis |
0.1 | 1 | 2006 | Efficient path conditions in dependence graphs for software safety analysis · ACM Trans. Softw. Eng. Methodol. 2006 |
Programming languages and type systems › object-oriented programming
multiple inheritance |
0.1 | 1 | 2006 | An operational semantics and type safety prooffor multiple inheritance in C++ · OOPSLA 2006 |
Programming languages and type systems › language semantics › formal semantics
operational semantics |
0.1 | 1 | 2006 | An operational semantics and type safety prooffor multiple inheritance in C++ · OOPSLA 2006 |
Requirements engineering and software design
software architecture |
0.1 | 3 | 2000 | Understanding class hierarchies using concept analysis · ACM Trans. Program. Lang. Syst. 2000 Assessing Modular Structure of Legacy Code Based on Mathematical Concept Analysis · ICSE 1997 On the Inference of Configuration Structures from Source Code · ICSE 1994 |
Software maintenance and evolution
software reengineering |
0.1 | 3 | 2000 | Understanding class hierarchies using concept analysis · ACM Trans. Program. Lang. Syst. 2000 Reengineering of Configurations Based on Mathematical Concept Analysis · ACM Trans. Softw. Eng. Methodol. 1996 On the Inference of Configuration Structures from Source Code · ICSE 1994 |
Program analysis
static analysis |
0.0 | 1 | 2004 | Refactoring class hierarchies with KABA · OOPSLA 2004 |
Program analysis › program representation
dependence graphs |
0.0 | 1 | 2002 | Efficient path conditions in dependence graphs · ICSE 2002 |
Programming languages and type systems
object-oriented programming |
0.0 | 1 | 2006 | An operational semantics and type safety prooffor multiple inheritance in C++ · OOPSLA 2006 |
Compilers and program optimization › intermediate representation
static single assignment form |
0.0 | 1 | 2006 | Efficient path conditions in dependence graphs for software safety analysis · ACM Trans. Softw. Eng. Methodol. 2006 |
Software maintenance and evolution
software configuration management |
0.0 | 1 | 1997 | Unified Versioning Through Feature Logic · ACM Trans. Softw. Eng. Methodol. 1997 |
Software maintenance and evolution › software configuration management
versioning model |
0.0 | 1 | 1997 | Unified Versioning Through Feature Logic · ACM Trans. Softw. Eng. Methodol. 1997 |
Requirements engineering and software design › software architecture › architecture description › architectural modeling
configuration structures |
0.0 | 2 | 1996 | On the Inference of Configuration Structures from Source Code · ICSE 1994 Reengineering of Configurations Based on Mathematical Concept Analysis · ACM Trans. Softw. Eng. Methodol. 1996 |
Software maintenance and evolution
concept analysis |
0.0 | 1 | 1996 | Reengineering of Configurations Based on Mathematical Concept Analysis · ACM Trans. Softw. Eng. Methodol. 1996 |
Requirements engineering and software design › software architecture › software architecture analysis
software architecture recovery |
0.0 | 1 | 1996 | Reengineering of Configurations Based on Mathematical Concept Analysis · ACM Trans. Softw. Eng. Methodol. 1996 |
Program analysis
dynamic analysis |
0.0 | 1 | 2004 | Refactoring class hierarchies with KABA · OOPSLA 2004 |
Program analysis › static analysis › incremental analysis
incremental semantic analysis |
0.0 | 2 | 1986 | The PSG System: From Formal Language Definitions to Interactive Programming Environments · ACM Trans. Program. Lang. Syst. 1986 Unification in Many-Sorted Algebras as a Device for Incremental Semantic Analysis · POPL 1986 |
Programming languages and type systems › language semantics › formal semantics
denotational semantics |
0.0 | 1 | 1987 | A generator for language-specific debugging systems · PLDI 1987 |
Programming languages and type systems
language specification |
0.0 | 1 | 1986 | The PSG System: From Formal Language Definitions to Interactive Programming Environments · ACM Trans. Program. Lang. Syst. 1986 |
Programming languages and type systems
programming environment |
0.0 | 1 | 1986 | The PSG System: From Formal Language Definitions to Interactive Programming Environments · ACM Trans. Program. Lang. Syst. 1986 |
Compilers and program optimization › compiler front end
semantic analysis |
0.0 | 1 | 1986 | The PSG System: From Formal Language Definitions to Interactive Programming Environments · ACM Trans. Program. Lang. Syst. 1986 |
Programming languages and type systems
type systems |
0.0 | 1 | 1986 | Unification in Many-Sorted Algebras as a Device for Incremental Semantic Analysis · POPL 1986 |
Program analysis › static analysis › constraint-based analysis
unification-based analysis |
0.0 | 1 | 1986 | Unification in Many-Sorted Algebras as a Device for Incremental Semantic Analysis · POPL 1986 |
User interface design and tools
programming environments |
0.0 | 1 | 1992 | Design and Structure of a Semantics-Based Programming Environment · Int. J. Man Mach. Stud. 1992 |
Methods — techniques the papers use, named apart from their topics
dominance frontier computation · 1.1control flow graph analysis · 1.1interval analysis · 0.1constraint solving · 0.1binary decision diagrams · 0.1Isabelle/HOL · 0.1concept lattice · 0.1concept analysis · 0.0snelting/tip algorithm · 0.0lattice construction · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | On Time-sensitive Control DependenciesabstractWe present efficient algorithms for time-sensitive control dependencies (CDs). If statement y is time-sensitively control dependent on statement x , then x decides not only whether y is executed but also how many timesteps after x . If y is not standard control dependent on x , but time-sensitively control dependent, then y will always be executed after x , but the execution time between x and y varies. This allows us to discover, e.g., timing leaks in security-critical software. We systematically develop properties and algorithms for time-sensitive CDs, as well as for nontermination-sensitive CDs. These work not only for standard control flow graphs (CFGs) but also for CFGs lacking a unique exit node (e.g., reactive systems). We show that Cytron’s efficient algorithm for dominance frontiers [ 10 ] can be generalized to allow efficient computation not just of classical CDs but also of time-sensitive and nontermination-sensitive CDs. We then use time-sensitive CDs and time-sensitive slicing to discover cache timing leaks in an AES implementation. Performance measurements demonstrate scalability of the approach. Martin Hecker 0001, Simon Bischof, Gregor Snelting |
ACM Trans. Program. Lang. Syst. | 3 |
| 2018 | Introduction to Milestones in Interactive Theorem Proving
Jeremy Avigad, Jasmin Blanchette, Gerwin Klein, Lawrence C. Paulson, Andrei Popescu 0001, Gregor Snelting |
J. Autom. Reason. | 6 |
| 2018 | Low-deterministic security for low-nondeterministic programsabstractWe present a new algorithm, together with a full soundness proof, which guarantees probabilistic noninterference (PN) for concurrent programs. The algorithm follows the “low-deterministic security” (LSOD) approach, but for the first time allows general low-nondeterminism as long as PN is not violated. The algorithm is based on the earlier observation by Giffhorn and Snelting that low-nondeterminism is secure as long as it is not influenced by high events [ International Journal of Information Security 14 ( 2015 ) 263–287]. It uses a new system of classification flow equations in multi-threaded programs, together with inter-thread/interprocedural dominators. Compared to LSOD, precision is boosted and false alarms are minimized. We explain details of the new algorithm and its soundness proof. The algorithm is integrated into the JOANA software security tool, and can handle full Java with arbitrary threads. We apply JOANA to a multi-threaded e-voting system, and show how the algorithm eliminates false alarms. We thus demonstrate that low-deterministic security is a highly precise and practically mature software security analysis method. Simon Bischof, Joachim Breitner, Jürgen Graf 0001, Martin Hecker 0001, Martin Mohr, Gregor Snelting |
J. Comput. Secur. | 6 |
| 2015 | Understanding probabilistic software leaks
Gregor Snelting |
Sci. Comput. Program. | 1 |
| 2014 | CAP: Communication Aware ProgrammingabstractNetworks on Chip (NoC) come along with increased complexity from the implementation and management perspective. This leads to higher energy consumption and programming complexity of NoC architectures. Jan Heisswolf, Aurang Zaib, Andreas Zwinkau, Sebastian Kobbe, Andreas Weichslgartner, Jürgen Teich, Jörg Henkel, Gregor Snelting, Andreas Herkersdorf, Jürgen Becker 0001 |
DAC | 8 |
| 2011 | Resource-aware programming and simulation of MPSoC architectures through extension of X10abstractThe efficient use of future MPSoCs with 1000 or more processor cores requires new means of resource-aware programming to deal with increasing imperfections such as process variation, fault rates, aging effects, and power as well as thermal problems. In this paper, we apply a new approach called invasive computing that enables an application programmer to spread computations to processors deliberately and on purpose at certain points of the program. Such decisions can be made depending on the degree of application parallelism and the state of the underlying resources such as utilization, load, and temperature. The introduced programming constructs for resource-aware programming are embedded into the parallel computing language X10 as developed by IBM using a library-based approach. Moreover, we show how individual heterogeneous MPSoC architectures may be modeled for subsequent functional simulation by defining compute resources such as processors themselves by lightweight threads that are executed in parallel together with the application threads by the X10 run-time system. Thus, the state changes of each hardware resource may be simulated including temperature, aging, and other useful monitor functionality to provide a first high-level programming test-bed for invasive computing. Frank Hannig, Sascha Roloff, Gregor Snelting, Jürgen Teich, Andreas Zwinkau |
SCOPES | 3 |
| 2010 | Gateway Decompositions for Constrained Reachability Problems
Bastian Katz, Marcus Krug, Andreas Lochbihler, Ignaz Rutter, Gregor Snelting, Dorothea Wagner |
SEA | 5 |
| 2009 | On temporal path conditions in dependence graphs
Andreas Lochbihler, Gregor Snelting |
Autom. Softw. Eng. | 2 |
| 2006 | An operational semantics and type safety prooffor multiple inheritance in C++abstractWe present an operational semantics and type safety proof for multiple inheritance in C++. The semantics models the behaviour of method calls, field accesses, and two forms of casts in C++ class hierarchies exactly, and the type safety proof was formalized and machine-checked in Isabelle/HOL. Our semantics enables one, for the first time, to understand the behaviour of operations on C++ class hierarchies without referring to implementation-level artifacts such as virtual function tables. Moreover, it can - as the semantics is executable - act as a reference for compilers, and it can form the basis for more advanced correctness proofs of, e.g., automated program transformations. The paper presents the semantics and type safety proof, and a discussion of the many subtleties that we encountered in modeling the intricate multiple inheritance model of C++. Daniel Wasserrab, Tobias Nipkow, Gregor Snelting, Frank Tip |
OOPSLA | 3 |
| 2006 | Efficient path conditions in dependence graphs for software safety analysisabstractA new method for software safety analysis is presented which uses program slicing and constraint solving to construct and analyze path conditions , conditions defined on a program's input variables which must hold for information flow between two points in a program. Path conditions are constructed from subgraphs of a program's dependence graph, specifically, slices and chops. The article describes how constraint solvers can be used to determine if a path condition is satisfiable and, if so, to construct a witness for a safety violation, such as an information flow from a program point at one security level to another program point at a different security level. Such a witness can prove useful in legal matters.The article reviews previous research on path conditions in program dependence graphs; presents new extensions of path conditions for arrays, pointers, abstract data types, and multithreaded programs; presents new decomposition formulae for path conditions; demonstrates how interval analysis and BDDs (binary decision diagrams) can be used to reduce the scalability problem for path conditions; and presents case studies illustrating the use of path conditions in safety analysis. Applying interval analysis and BDDs is shown to overcome the combinatorial explosion that can occur in constructing path conditions. Case studies and empirical data demonstrate the usefulness of path conditions for analyzing practical programs, in particular, how illegal influences on safety-critical programs can be discovered and analyzed. Gregor Snelting, Torsten Robschink, Jens Krinke |
ACM Trans. Softw. Eng. Methodol. | 1 |
| 2004 | Refactoring class hierarchies with KABAabstractKABA is an innovative system for refactoring Java class hierar-chies. It uses the Snelting/Tip algorithm [13] in order to determine a behavior-preserving refactoring which is optimal with respect to a given set of client programs. KABA can be based on dynamic as well as static program analysis. The static variant will preserve program behavior for all possible input values; the dynamic version guarantees preservation of behavior for all runs in a given test suite. KABA offers automatic refactoring as well as manual refactoring using a dedicated editor. Mirko Streckenbach, Gregor Snelting |
OOPSLA | 2 |
| 2004 | An improved slicer for JavaabstractWe present an improved slicing algorithm for Java. The best algorithm known so far, first presented in [11], is not always precise if nested objects are used as actual parameters. The new algorithm presented in this paper always generates correct and precise slices, but is more expensive in general.We describe the algorithms and their treatment of objects as parameters. In particular, we present a new, safe criterion for termination of unfolding nested parameter objects. We then compare the two algorithms by providing measurements for a benchmark of Java and JavaCard programs. Christian Hammer 0001, Gregor Snelting |
PASTE | 2 |
| 2002 | Semantics-Based Composition of Class Hierarchies
Gregor Snelting, Frank Tip |
ECOOP | 1 |
| 2002 | Efficient path conditions in dependence graphsabstractProgram slicing combined with constraint solving is a powerful tool for software analysis. Path conditions are generated for a slice or chop, which --- when solved for the input variables --- deliver compact "witnesses" for dependences or illegal influences between program points.In this contribution we show how to make path conditions work for large programs. Aggressive engineering, based on interval analysis and BDDs, is shown to overcome the potential combinatoric explosion. Case studies and empirical data will demonstrate the usefulness of path conditions for practical program analysis. Torsten Robschink, Gregor Snelting |
ICSE | 2 |
| 2000 | Understanding class hierarchies using concept analysisabstractA new method is presented for analyzing and reengineering class hierarchies. In our approach, a class hierarchy is processed along with a set of applications that use it, and a fine-grained analysis of the access and subtype relationships between objects, variables, and class members is performed. The result of this analysis is again a class hierarchy, which is guaranteed to be behaviorally equivalent to the original hierarchy, but in which each object only contains the members that are required. Our method is semantically well-founded in concept analysis : the new class hierarchy is a minimal and maximally factorized concept lattice that reflects the access and subtype relationships between variables, objects and class members. The method is primarily intended as a tool for finding imperfections in the design of class hierarchies, and can be used as the basis for tools that largely automate the process of reengineering such hierachies. The method can also be used as a space-optimizing source-to-source transformation that removes redundant fields from objects. A prototype implementation for Java has been constructed, and used to conduct several case studies. Our results demonstrate that the method can provide valuable insights into the usage of a class hierarchy in a specific context, and lead to useful restructuring proposals. Gregor Snelting, Frank Tip |
ACM Trans. Program. Lang. Syst. | 1 |
| 1998 | Concept Analysis - A New Framework for Program UnderstandingabstractConcept analysis transforms any relation between ‘lob-jects ” and “attributes ” into a complete lattice. This concept lattice can be studied by algebraic means and offers remarkable insight into properties and structure of the original relation. As relations between “objects” and “at,t,ributcs ” occur all the time in software technol-ogy, concept analysis is an attractive foundat,ion for a new class of program analysis tools. The article presents a short overview of the underlying theory, as well as applications for software component retrieval, analysis of configuration spaces, and modularization of legacy code. 1 Gregor Snelting |
PASTE | 1 |
| 1998 | Reengineering Class Hierarchies Using Concept AnalysisabstractThe design of a class hierarchy may be imperfect. For example, a class C may contain a member m not accessed in any C-instance, an indication that m could be eliminated, or moved into a derived class. Furthermore, different subsets of C's members may be accessed from different C-instances, indicating that it might be appropriate to split C into multiple classes. We present a framework for detecting and remediating such design problems, which is based on concept analysis. Our method analyzes a class hierarchy along with a set of applications that use it, and constructs a lattice that provides valuable insights into the usage of the class hierarchy in a specific context. We show how a restructured class hierarchy can be generated from the lattice, and how the lattice can serve as a formal basis for interactive tools for redesigning and restructuring class hierarchies. Gregor Snelting, Frank Tip |
SIGSOFT FSE | 1 |
| 1998 | Validation of measurement software as an application of slicing and constraint solving
Jens Krinke, Gregor Snelting |
Inf. Softw. Technol. | 2 |
| 1998 | Paul Feyerabend and Software Technology
Gregor Snelting |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 1997 | Assessing Modular Structure of Legacy Code Based on Mathematical Concept AnalysisabstractWe apply mathematical concept analysis in order to modularize legacy code.By analysing the relation between procedures and global variables, a so-called concept lattice is constructed.The paper explains how module structures show up in the lattice, and how the lattice can be used to assess cohesion and coupling between module candidates.Certain algebraic decompositions of the lattice can lead to automatic generation of modularization proposals.The method is applied to several examples written in Modula-2, Fortran, and Cobol; among them a >100kloc aerodynamics program. Christian Lindig, Gregor Snelting |
ICSE | 2 |
| 1997 | Unified Versioning Through Feature LogicabstractSoftware configuration management (SCM) suffers from tight coupling between SCM version-ing models and the imposed SCM processes. In order to adapt SCM tools to SCM processes, rather than vice versa, we propose a unified versioning model, the version set model . Version sets denote versions, components, and configurations by feature terms , that is, Boolean terms over ( feature : value )-attributions. Through feature logic , we deduce consistency of abstract configurations as well as features of derived components and describe how features propagate in the SCM process; using feature implications , we integrate change-oriented and version-oriented SCM models. We have implemented the version set model in an SCM system called ICE, for Incremental Configuration Environment . ICE is based on a featured file system (FFS) , where version sets are accessed as virtual files and directories. Using the well-known C preprocessor (CPP) representation, users can view and edit multiple versions simultaneously, while only the differences between versions are stored. It turns out that all major SCM models can be realized and integrated efficiently on top of the FFS, demonstrating the flexible and unifying nature of the version set model. Andreas Zeller, Gregor Snelting |
ACM Trans. Softw. Eng. Methodol. | 2 |
| 1996 | Combining Slicing and Constraint Solving for Validation of Measurement Software
Gregor Snelting |
SAS | 1 |
| 1996 | Reengineering of Configurations Based on Mathematical Concept AnalysisabstractWe apply mathematical concept analysis to the problem of reengineering configurations.Concept analysis will reconstruct a taxonomy of concepts from a relation between objects and attributes.We use concept analysis to infer configuration structures from existing source code.Our tool NORA/RECS will accept source code, where configuration-specific code pieces are controlled by the preprocessor.The algorithm will compute a so-called concept lattice, which -when visually displayed -offers remarkable insight into the structure and properties of possible configurations.The lattice not only displays tine-grained dependencies between configurations, but also visualizes the overall quality of configuration structures according to software engineering principles.In a second step, interferences between configurations can be analyzed in order to restructure or simplify configurations.Interferences showing up in the lattice indicate high coupling and low cohesion between configuration concepts.Source files can then be simplified according to the lattice structure.Finally, we show how governing expressions can be simplified by utilizing an isomorphism theorem of mathematical concept analysis. Gregor Snelting |
ACM Trans. Softw. Eng. Methodol. | 1 |
| 1994 | On the Inference of Configuration Structures from Source Code
Maren Krone, Gregor Snelting |
ICSE | 2 |
| 1992 | Design and Structure of a Semantics-Based Programming Environment
Rolf Bahlke, Gregor Snelting |
Int. J. Man Mach. Stud. | 2 |
| 1991 | The Calculus of Context Relations
Gregor Snelting |
Acta Informatica | 1 |
| 1988 | The PSG System: From Formal Language Definitions to Interactive Programming Environments
Rolf Bahlke, Gregor Snelting |
ESOP | 2 |
| 1987 | A generator for language-specific debugging systemsabstractWe present a system which generates interactive high-level debugging systems from formal language definitions. The language definer has to specify a denotational semantics augmented with a formal description of the language specific debugging facilities. The generated debugger offers the traditional features such as tracing programs, setting breakpoints, displaying variables etc; interaction with the user is always on language level rather than on machine level. The concept has been implemented as part of the PSG-Programming System Generator, and has successfully been used to generate debuggers for Pascal and Modula-2. The core of the implementation consists of an interpreter for a functional language, which has been extended with the language-independent mechanisms needed in order to allow interaction with the user during program execution. Rolf Bahlke, Bernhard Moritz, Gregor Snelting |
PLDI | 3 |
| 1986 | Unification in Many-Sorted Algebras as a Device for Incremental Semantic AnalysisabstractLanguage-specific editors for typed programming languages must contain a subsystem for semantic analysis in order to guarantee correctness of programs with respect to the context conditions of the language. As programs are usually incomplete during development, the semantic analysis must be able to cope with missing context information, e. g. incomplete variable declarations or calls to procedures imported from still missing modules. In this paper we present an algorithm for incremental semantic analysis, which guarantees immediate detection of semantic errors even in arbitrary incomplete program fragments. The algorithm is generated from the language's context conditions, which are described by inference rules. During editing, these rules are evaluated using a unification algorithm for many-sorted algebras with semi-lattice ordered subsorts and non-empty equational theories. The method has been implemented as part of the PSG system, which generates interactive programming environments from formal language definitions, and has been successfully used to generate an incremental semantic analysis for PASCAL and MODULA-2. Gregor Snelting, Wolfgang Henhapl |
POPL | 1 |
| 1986 | The PSG System: From Formal Language Definitions to Interactive Programming EnvironmentsabstractThe PSG programming system generator developed at the Technical University of Darmstadt produces interactive, language-specific programming environments from formal language definitions. All language-dependent parts of the environment are generated from an entirely nonprocedural specification of the language's syntax, context conditions, and dynamic semantics. The generated environment consists of a language-based editor, supporting systematic program development by named program fragments, an interpreter, and a fragment library system. The major component of the environment is a full-screen editor, which allows both structure and text editing. In structure mode the editor guarantees prevention of both syntactic and semantic errors, whereas in textual mode it guarantees their immediate recognition. PSG editors employ a novel algorithm for incremental semantic analysis which is based on unification. The algorithm will immediately detect semantic errors even in incomplete program fragments. The dynamic semantics of the language are defined in denotational style using a functional language based on the lambda calculus. Program fragments are compiled to terms of the functional language which are executed by an interpreter. The PSG generator has been used to produce environments for Pascal, ALGOL 60, MODULA-2, and the formal language definition language itself. Rolf Bahlke, Gregor Snelting |
ACM Trans. Program. Lang. Syst. | 2 |