Christian Lindig

dblp:l/ChristianLindig · DBLP profile ↗
← Back
6ranked-venue papers
2as first author
0since 2021 · last 2007
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 6 · 2 first-author

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
4 papers
Compilers and program optimization · 28% Software maintenance and evolution · 20% Program analysis · 16%
Network and information security
1 paper
Systems and software security · 100%

Topics — the 7 heaviest of 9, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis
dynamic analysis
0.112007
Detecting object usage anomalies · ESEC/SIGSOFT FSE 2007
Software testing
fault detection
0.112007
Detecting object usage anomalies · ESEC/SIGSOFT FSE 2007
Software maintenance and evolution › code clone detection
software plagiarism detection
0.112007
A dynamic birthmark for java · ASE 2007
Compilers and program optimization › compiler back end
calling conventions
0.112006
Staged allocation: a compositional technique for specifying and implementing procedure calling conventions · POPL 2006
Compilers and program optimization
compiler construction
0.112006
Staged allocation: a compositional technique for specifying and implementing procedure calling conventions · POPL 2006
Programming languages and type systems › program specification
specification composition
0.112006
Staged allocation: a compositional technique for specifying and implementing procedure calling conventions · POPL 2006
Requirements engineering and software design
software architecture
0.011997
Assessing Modular Structure of Legacy Code Based on Mathematical Concept Analysis · ICSE 1997

Methods — techniques the papers use, named apart from their topics

obfuscation · 0.1API usage observation · 0.1sequence mining · 0.1pattern inference · 0.1test suite generation · 0.1formal semantics · 0.1formal concept analysis · 0.0concept lattice · 0.0
YearPublicationVenuePosition
2007 A dynamic birthmark for java
abstract
Code theft is a threat for companies that consider code asa core asset. A birthmark can help them to prove codetheft by identifying intrinsic properties of a program. Twoprograms with the same birthmark are likely to share a com-mon origin. Birthmarking works in particular for code thatwas not protected by tamper-resistant copyright notices thatotherwise could prove ownership.We propose a dynamic birthmark for Java that observes howa program uses objects provided by the Java Standard API.Such a birthmark is difficult to foil because it captures the observable semantics of a program. In an evaluation, ourAPI Birthmark reliably identified XML parsers and PNGreaders before and after obfuscating them with state-of-the-art obfuscation tools. These rendered existing birthmarksineffective, such as the Whole-Program-Path Birthmark byMyles and Collberg
David Schuler, Valentin Dallmeier, Christian Lindig
ASE3
2007 Detecting object usage anomalies
abstract
Interacting with objects often requires following a protocol—for instance, a specific sequence of method calls. These protocols are not always documented, and violations can lead to subtle problems. Our approach takes code examples to automatically infer legal sequences of method calls. The resulting patterns can then be used to detect anomalies such as “Before calling next(), one normally calls hasNext()”. To our knowledge, this is the first fully automatic defect detection approach that learns and checks method call sequences. Our JADET prototype has detected yet undiscovered defects and code smells in five popular open-source programs, including two new defects in ASPECTJ.
Andrzej Wasylkowski, Andreas Zeller, Christian Lindig
ESEC/SIGSOFT FSE3
2006 Staged allocation: a compositional technique for specifying and implementing procedure calling conventions
abstract
We present staged allocation, a technique for specifying calling conventions by composing tiny allocators called stages. A specification written using staged allocation has a precise, formal semantics, and it can be executed directly inside a compiler. Specifications of nine standard C~calling conventions range in size from 15 to 30 lines each. An implementation of staged allocation takes about 250 lines of ML or 650~lines of C++. Each specification can be used not only to help a compiler implement the calling convention but also to generate a test suite.
Reuben Olinsky, Christian Lindig, Norman Ramsey
POPL2
2005 Lightweight Defect Localization for Java
Valentin Dallmeier, Christian Lindig, Andreas Zeller
ECOOP2
2004 Declarative Composition of Stack Frames
Christian Lindig, Norman Ramsey
CC1
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
ICSE1