EDBT 2026 Demo / reviewers in the wild / expert
Tillmann Rendel
dblp:72/3832
· DBLP profile ↗
13ranked-venue papers
4as first author
0since 2021 · last 2016
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 13 · 4 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
6 papers |
Compilers and program optimization · 48% Programming languages and type systems · 31% Program analysis · 12% |
Topics — the 13 heaviest of 15, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Compilers and program optimization
parsing |
0.5 | 3 | 2016 | Parsing with first-class derivatives · OOPSLA 2016 Variability-aware parsing in the presence of lexical macros and conditional compilation · OOPSLA 2011 SugarJ: library-based syntactic language extensibility · OOPSLA 2011 |
Compilers and program optimization › parsing
parser combinators |
0.2 | 1 | 2016 | Parsing with first-class derivatives · OOPSLA 2016 |
Programming languages and type systems › grammar formalisms
attribute grammars |
0.2 | 1 | 2014 | From object algebras to attribute grammars · OOPSLA 2014 |
Program analysis › static analysis
incremental analysis |
0.2 | 1 | 2014 | A theory of changes for higher-order languages: incrementalizing λ-calculi by static differentiation · PLDI 2014 |
Compilers and program optimization
program transformation |
0.2 | 1 | 2014 | A theory of changes for higher-order languages: incrementalizing λ-calculi by static differentiation · PLDI 2014 |
Programming languages and type systems
domain-specific languages |
0.1 | 1 | 2011 | SugarJ: library-based syntactic language extensibility · OOPSLA 2011 |
Compilers and program optimization › parsing
incremental parsing |
0.1 | 1 | 2011 | SugarJ: library-based syntactic language extensibility · OOPSLA 2011 |
Programming languages and type systems
language design |
0.1 | 1 | 2011 | SugarJ: library-based syntactic language extensibility · OOPSLA 2011 |
Programming languages and type systems › metaprogramming
language embedding |
0.1 | 1 | 2011 | SugarJ: library-based syntactic language extensibility · OOPSLA 2011 |
Requirements engineering and software design
software product lines |
0.1 | 1 | 2011 | Variability-aware parsing in the presence of lexical macros and conditional compilation · OOPSLA 2011 |
Software maintenance and evolution
software variability |
0.1 | 1 | 2011 | Variability-aware parsing in the presence of lexical macros and conditional compilation · OOPSLA 2011 |
Program analysis
variability analysis |
0.1 | 1 | 2011 | Variability-aware parsing in the presence of lexical macros and conditional compilation · OOPSLA 2011 |
Programming languages and type systems
lambda calculus |
0.1 | 1 | 2009 | Typed self-representation · PLDI 2009 |
Methods — techniques the papers use, named apart from their topics
formalization · 0.3scala encoding · 0.2program differentiation · 0.2lambda calculus · 0.2variability-aware parsing · 0.1sugar libraries · 0.1stratego · 0.1SDF · 0.1type soundness proof · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2016 | Parsing with first-class derivativesabstractBrzozowski derivatives, well known in the context of regular expressions, have recently been rediscovered to give a simplified explanation to parsers of context-free languages. We add derivatives as a novel first-class feature to a standard parser combinator language. First-class derivatives enable an inversion of the control flow, allowing to implement modular parsers for languages that previously required separate pre-processing steps or cross-cutting modifications of the parsers. We show that our framework offers new opportunities for reuse and supports a modular definition of interesting use cases of layout-sensitive parsing. Jonathan Immanuel Brachthäuser, Tillmann Rendel, Klaus Ostermann |
OOPSLA | 2 |
| 2015 | Automatic refunctionalization to a language with copattern matching: with applications to the expression problemabstractDefunctionalization and refunctionalization establish a correspondence between first-class functions and pattern matching, but the correspondence is not symmetric: Not all uses of pattern matching can be automatically refunctionalized to uses of higher-order functions. To remedy this asymmetry, we generalize from first-class functions to arbitrary codata. This leads us to full defunctionalization and refunctionalization between a codata language based on copattern matching and a data language based on pattern matching. We observe how programs can be written as matrices so that they are modularly extensible in one dimension but not the other. In this representation, defunctionalization and refunctionalization correspond to matrix transposition which effectively changes the dimension of extensibility a program supports. This suggests applications to the expression problem. Tillmann Rendel, Julia Trieflinger, Klaus Ostermann |
ICFP | 1 |
| 2014 | From object algebras to attribute grammarsabstractOliveira and Cook (2012) and Oliveira et al. (2013) have recently introduced object algebras as a program structuring technique to improve the modularity and extensibility of programs. We analyze the relationship between object algebras and attribute grammars (AGs), a formalism to augment context-free grammars with attributes. We present an extension of the object algebra technique with which the full class of L-attributed grammars - an important class of AGs that corresponds to one-pass compilers - can be encoded in Scala. The encoding is modular (attributes can be defined and type-checked separately), scalable (the size of the encoding is linear in the size of the AG specification) and compositional (each AG artifact is represented as a semantic object of the host language). To evaluate these claims, we have formalized the encoding and re-implemented a one-pass compiler for a subset of C with our technique. We also discuss how advanced features of modern AG systems, such as higher-order and parameterized attributes, reference attributes, and forwarding can be supported. Tillmann Rendel, Jonathan Immanuel Brachthäuser, Klaus Ostermann |
OOPSLA | 1 |
| 2014 | A theory of changes for higher-order languages: incrementalizing λ-calculi by static differentiationabstractIf the result of an expensive computation is invalidated by a small change to the input, the old result should be updated incrementally instead of reexecuting the whole computation. We incrementalize programs through their derivative. A derivative maps changes in the program's input directly to changes in the program's output, without reexecuting the original program. We present a program transformation taking programs to their derivatives, which is fully static and automatic, supports first-class functions, and produces derivatives amenable to standard optimization. Yufei Cai, Paolo G. Giarrusso, Tillmann Rendel, Klaus Ostermann |
PLDI | 3 |
| 2012 | Layout-sensitive language extensibility with SugarHaskellabstractProgrammers need convenient syntax to write elegant and concise programs. Consequently, the Haskell standard provides syntactic sugar for some scenarios (e.g., do notation for monadic code), authors of Haskell compilers provide syntactic sugar for more scenarios (e.g., arrow notation in GHC), and some Haskell programmers implement preprocessors for their individual needs (e.g., idiom brackets in SHE). But manually written preprocessors cannot scale: They are expensive, error-prone, and not composable. Most researchers and programmers therefore refrain from using the syntactic notations they need in actual Haskell programs, but only use them in documentation or papers. We present a syntactically extensible version of Haskell, SugarHaskell, that empowers ordinary programmers to implement and use custom syntactic sugar. Sebastian Erdweg, Felix Rieger, Tillmann Rendel, Klaus Ostermann |
Haskell | 3 |
| 2012 | Layout-Sensitive Generalized Parsing
Sebastian Erdweg, Tillmann Rendel, Christian Kästner, Klaus Ostermann |
SLE | 2 |
| 2011 | Revisiting Information Hiding: Reflections on Classical and Nonclassical Modularity
Klaus Ostermann, Paolo G. Giarrusso, Christian Kästner, Tillmann Rendel |
ECOOP | 4 |
| 2011 | Growing a language environment with editor librariesabstractLarge software projects consist of code written in a multitude of different (possibly domain-specific) languages, which are often deeply interspersed even in single files. While many proposals exist on how to integrate languages semantically and syntactically, the question of how to support this scenario in integrated development environments (IDEs) remains open: How can standard IDE services, such as syntax highlighting, outlining, or reference resolving, be provided in an extensible and compositional way, such that an open mix of languages is supported in a single file? Sebastian Erdweg, Lennart C. L. Kats, Tillmann Rendel, Christian Kästner, Klaus Ostermann, Eelco Visser |
GPCE | 3 |
| 2011 | SugarJ: library-based syntactic language extensibilityabstractExisting approaches to extend a programming language with syntactic sugar often leave a bitter taste, because they cannot be used with the same ease as the main extension mechanism of the programming language - libraries. Sugar libraries are a novel approach for syntactically extending a programming language within the language. A sugar library is like an ordinary library, but can, in addition, export syntactic sugar for using the library. Sugar libraries maintain the composability and scoping properties of ordinary libraries and are hence particularly well-suited for embedding a multitude of domain-specific languages into a host language. They also inherit self-applicability from libraries, which means that sugar libraries can provide syntactic extensions for the definition of other sugar libraries. To demonstrate the expressiveness and applicability of sugar libraries, we have developed SugarJ, a language on top of Java, SDF and Stratego, which supports syntactic extensibility. SugarJ employs a novel incremental parsing technique, which allows changing the syntax within a source file. We demonstrate SugarJ by five language extensions, including embeddings of XML and closures in Java, all available as sugar libraries. We illustrate the utility of self-applicability by embedding XML Schema, a metalanguage to define XML languages. Sebastian Erdweg, Tillmann Rendel, Christian Kästner, Klaus Ostermann |
OOPSLA | 2 |
| 2011 | Variability-aware parsing in the presence of lexical macros and conditional compilationabstractIn many projects, lexical preprocessors are used to manage different variants of the project (using conditional compilation) and to define compile-time code transformations (using macros). Unfortunately, while being a simple way to implement variability, conditional compilation and lexical macros hinder automatic analysis, even though such analysis is urgently needed to combat variability-induced complexity. To analyze code with its variability, we need to parse it without preprocessing it. However, current parsing solutions use unsound heuristics, support only a subset of the language, or suffer from exponential explosion. As part of the TypeChef project, we contribute a novel variability-aware parser that can parse almost all unpreprocessed code without heuristics in practicable time. Beyond the obvious task of detecting syntax errors, our parser paves the road for further analysis, such as variability-aware type checking. We implement variability-aware parsers for Java and GNU C and demonstrate practicability by parsing the product line MobileMedia and the entire X86 architecture of the Linux kernel with 6065 variable features. Christian Kästner, Paolo G. Giarrusso, Tillmann Rendel, Sebastian Erdweg, Klaus Ostermann, Thorsten Berger |
OOPSLA | 3 |
| 2010 | Invertible syntax descriptions: unifying parsing and pretty printingabstractParsers and pretty-printers for a language are often quite similar, yet both are typically implemented separately, leading to redundancy and potential inconsistency. We propose a new interface of syntactic descriptions, with which both parser and pretty-printer can be described as a single program. Whether a syntactic description is used as a parser or as a pretty-printer is determined by the implementation of the interface. Syntactic descriptions enable programmers to describe the connection between concrete and abstract syntax once and for all, and use these descriptions for parsing or pretty-printing as needed. We also discuss the generalization of our programming technique towards an algebra of partial isomorphisms. Tillmann Rendel, Klaus Ostermann |
Haskell | 1 |
| 2009 | Typed self-representationabstractSelf-representation -- the ability to represent programs in their own language -- has important applications in reflective languages and many other domains of programming language design. Although approaches to designing typed program representations for sublanguages of some base language have become quite popular recently, the question whether a fully metacircular typed self-representation is possible is still open. This paper makes a big step towards this aim by defining the Fω* calculus, an extension of the higher-order polymorphic lambda calculus Fω that allows typed self-representations. While the usability of these representations for metaprogramming is still limited, we believe that our approach makes a significant step towards a new generation of reflective languages that are both safe and efficient. Tillmann Rendel, Klaus Ostermann, Christian Hofer |
PLDI | 1 |
| 2008 | Polymorphic embedding of dslsabstractThe influential pure embedding methodology of embedding domain-specific languages (DSLs) as libraries into a general-purpose host language forces the DSL designer to commit to a single semantics. This precludes the subsequent addition of compilation, optimization or domain-specific analyses. We propose polymorphic embedding of DSLs, where many different interpretations of a DSL can be provided as reusable components, and show how polymorphic embedding can be realized in the programming language Scala. With polymorphic embedding, the static type-safety, modularity, composability and rapid prototyping of pure embedding are reconciled with the flexibility attainable by external toolchains. Christian Hofer, Klaus Ostermann, Tillmann Rendel, Adriaan Moors |
GPCE | 3 |