Gregor Snelting

dblp:s/GregorSnelting · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Program analysis › static analysis
program slicing
0.732022
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.612022
On Time-sensitive Control Dependencies · ACM Trans. Program. Lang. Syst. 2022
Hardware security and side channels
side-channel attack
0.212022
On Time-sensitive Control Dependencies · ACM Trans. Program. Lang. Syst. 2022
Program analysis
path constraint
0.122006
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.122004
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.112006
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.112006
An operational semantics and type safety prooffor multiple inheritance in C++ · OOPSLA 2006
Program analysis › static analysis
information flow analysis
0.112006
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.112006
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.112006
An operational semantics and type safety prooffor multiple inheritance in C++ · OOPSLA 2006
Requirements engineering and software design
software architecture
0.132000
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.132000
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.012004
Refactoring class hierarchies with KABA · OOPSLA 2004
Program analysis › program representation
dependence graphs
0.012002
Efficient path conditions in dependence graphs · ICSE 2002
Programming languages and type systems
object-oriented programming
0.012006
An operational semantics and type safety prooffor multiple inheritance in C++ · OOPSLA 2006
Compilers and program optimization › intermediate representation
static single assignment form
0.012006
Efficient path conditions in dependence graphs for software safety analysis · ACM Trans. Softw. Eng. Methodol. 2006
Software maintenance and evolution
software configuration management
0.011997
Unified Versioning Through Feature Logic · ACM Trans. Softw. Eng. Methodol. 1997
Software maintenance and evolution › software configuration management
versioning model
0.011997
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.021996
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.011996
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.011996
Reengineering of Configurations Based on Mathematical Concept Analysis · ACM Trans. Softw. Eng. Methodol. 1996
Program analysis
dynamic analysis
0.012004
Refactoring class hierarchies with KABA · OOPSLA 2004
Program analysis › static analysis › incremental analysis
incremental semantic analysis
0.021986
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.011987
A generator for language-specific debugging systems · PLDI 1987
Programming languages and type systems
language specification
0.011986
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.011986
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.011986
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.011986
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.011986
Unification in Many-Sorted Algebras as a Device for Incremental Semantic Analysis · POPL 1986
User interface design and tools
programming environments
0.011992
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
YearPublicationVenuePosition
2022 On Time-sensitive Control Dependencies
abstract
We 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 programs
abstract
We 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 Programming
abstract
Networks 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
DAC8
2011 Resource-aware programming and simulation of MPSoC architectures through extension of X10
abstract
The 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
SCOPES3
2010 Gateway Decompositions for Constrained Reachability Problems
Bastian Katz, Marcus Krug, Andreas Lochbihler, Ignaz Rutter, Gregor Snelting, Dorothea Wagner
SEA5
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++
abstract
We 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
OOPSLA3
2006 Efficient path conditions in dependence graphs for software safety analysis
abstract
A 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 KABA
abstract
KABA 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
OOPSLA2
2004 An improved slicer for Java
abstract
We 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
PASTE2
2002 Semantics-Based Composition of Class Hierarchies
Gregor Snelting, Frank Tip
ECOOP1
2002 Efficient path conditions in dependence graphs
abstract
Program 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
ICSE2
2000 Understanding class hierarchies using concept analysis
abstract
A 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 Understanding
abstract
Concept 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
PASTE1
1998 Reengineering Class Hierarchies Using Concept Analysis
abstract
The 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 FSE1
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 Analysis
abstract
We 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
ICSE2
1997 Unified Versioning Through Feature Logic
abstract
Software 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
SAS1
1996 Reengineering of Configurations Based on Mathematical Concept Analysis
abstract
We 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
ICSE2
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 Informatica1
1988 The PSG System: From Formal Language Definitions to Interactive Programming Environments
Rolf Bahlke, Gregor Snelting
ESOP2
1987 A generator for language-specific debugging systems
abstract
We 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
PLDI3
1986 Unification in Many-Sorted Algebras as a Device for Incremental Semantic Analysis
abstract
Language-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
POPL1
1986 The PSG System: From Formal Language Definitions to Interactive Programming Environments
abstract
The 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