VLDB 2026 Research / reviewers in the wild / expert
Janis Voigtländer
dblp:v/JanisVoigtlander
· DBLP profile ↗
22ranked-venue papers
13as first author
1since 2021 · last 2025
0009-0001-2411-9909ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 14 · 9 first-author · 1 since 2021Theory of computation · 9 · 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
4 papers |
Programming languages and type systems · 91% Compilers and program optimization · 9% | |
| Theoretical computer science
1 paper |
Algorithms and data structures · 67% Logic in computer science · 33% |
Topics — the 16 heaviest of 16, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems › parametricity
relational parametricity |
0.1 | 2 | 2010 | Bidirectionalization for free! (Pearl) · POPL 2009 A Generic Operational Metatheory for Algebraic Effects · LICS 2010 |
Programming languages and type systems
logical relations |
0.1 | 2 | 2009 | A family of syntactic logical relations for the semantics of Haskell-like languages · Inf. Comput. 2009 Free theorems in the presence of seq · POPL 2004 |
Programming languages and type systems › computational effects
algebraic effects |
0.1 | 1 | 2010 | A Generic Operational Metatheory for Algebraic Effects · LICS 2010 |
Programming languages and type systems › program equivalence
contextual equivalence |
0.1 | 1 | 2010 | A Generic Operational Metatheory for Algebraic Effects · LICS 2010 |
Programming languages and type systems › language semantics › formal semantics
operational semantics |
0.1 | 1 | 2010 | A Generic Operational Metatheory for Algebraic Effects · LICS 2010 |
Programming languages and type systems
program equivalence |
0.1 | 1 | 2010 | A Generic Operational Metatheory for Algebraic Effects · LICS 2010 |
Compilers and program optimization › program transformation
bidirectional transformation |
0.1 | 1 | 2009 | Bidirectionalization for free! (Pearl) · POPL 2009 |
Programming languages and type systems
language semantics |
0.1 | 1 | 2009 | A family of syntactic logical relations for the semantics of Haskell-like languages · Inf. Comput. 2009 |
Algorithms and data structures
parallel algorithms |
0.1 | 1 | 2008 | Much ado about two (pearl): a pearl on parallel prefix computation · POPL 2008 |
Algorithms and data structures › parallel algorithms
parallel prefix computation |
0.1 | 1 | 2008 | Much ado about two (pearl): a pearl on parallel prefix computation · POPL 2008 |
Logic in computer science › type theory
relational parametricity |
0.1 | 1 | 2008 | Much ado about two (pearl): a pearl on parallel prefix computation · POPL 2008 |
Programming languages and type systems
parametricity |
0.0 | 1 | 2004 | Free theorems in the presence of seq · POPL 2004 |
Programming languages and type systems › type systems › polymorphism
parametric polymorphism |
0.0 | 1 | 2004 | Free theorems in the presence of seq · POPL 2004 |
Programming languages and type systems › type systems
polymorphism |
0.0 | 1 | 2010 | A Generic Operational Metatheory for Algebraic Effects · LICS 2010 |
Programming languages and type systems
functional programming |
0.0 | 1 | 2009 | A family of syntactic logical relations for the semantics of Haskell-like languages · Inf. Comput. 2009 |
Programming languages and type systems
type theory |
0.0 | 1 | 2004 | Free theorems in the presence of seq · POPL 2004 |
Methods — techniques the papers use, named apart from their topics
relational parametricity · 0.3structural operational semantics · 0.1free theorems · 0.1logical relations · 0.0fixpoint computation · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Automatically testing console I/O behavior of student submissions in HaskellabstractAbstract Good test-suites are an important tool to check the correctness of programs. They are also essential in unsupervised educational settings, like automatic grading or for students to check their solution to some programming task by themselves. For most Haskell programming tasks, one can easily provide high-quality test-suites using standard tools like QuickCheck. Unfortunately, this is no longer the case once we leave the purely functional world and enter the lands of console I/O. Nonetheless, understanding console I/O is an important part of learning Haskell, and we would like to provide students the same support as with other subject matters. The difficulty in testing console I/O programs arises from the standard tools’ lack of support for specifying intended console interactions as simple declarative properties. These interactions are however essential in order to determine whether a program behaves as desired. We describe the console interactions of a program by tracing its text input and output actions. In order to describe which traces match the intended behavior of the program under test, we present a formal specification language. The language is designed to capture interactive behavior found in commonly used textbook exercises and examples, or as much of it as possible, as well as in our own teaching, while at the same time retaining simplicity and clarity of specifications. We intentionally restrict the language, ensuring that expressed behavior is truly interactive and not simply a pure string-builder function in disguise. Based on this specification language, we build a testing framework that allows testing against specifications in an automated way. A central feature of the testing procedure is the use of a constraint solver in order to find meaningful input sequences for the program under test. Oliver Westphal, Janis Voigtländer |
J. Funct. Program. | 2 |
| 2014 | Parametricity and Proving Free Theorems for Functional-Logic LanguagesabstractThe goal of this paper is to provide the required foundations for establishing free theorems -- statements about program equivalence, guaranteed by polymorphic types -- for the functional-logic programming language Curry. For the sake of presentation we restrict ourselves to a language fragment that we call CuMin, and that has the characteristic features of Curry (both functional and logic). We present a new denotational semantics based on partially ordered sets without limits. We then introduce an intermediate language called SaLT that is essentially a lambda-calculus extended with an abstract set type, and again give a denotational semantics. We show that the standard (logical relations) techniques can be applied to obtain a general parametricity theorem for SaLT and derive free theorems from it. Via a translation from CuMin to SaLT that fits the respective semantics, we then derive free theorems for CuMin. Stefan Mehner, Daniel Seidel, Lutz Straßburger, Janis Voigtländer |
PPDP | 4 |
| 2013 | Understanding idiomatic traversals backwards and forwardsabstractWe present new ways of reasoning about a particular class of effectful Haskell programs, namely those expressed as idiomatic traversals. Starting out with a specific problem about labelling and unlabelling binary trees, we extract a general inversion law, applicable to any monad, relating a traversal over the elements of an arbitrary traversable type to a traversal that goes in the opposite direction. This law can be invoked to show that, in a suitable sense, unlabelling is the inverse of labelling. The inversion law, as well as a number of other properties of idiomatic traversals, is a corollary of a more general theorem characterising traversable functors as finitary containers: an arbitrary traversable object can be decomposed uniquely into shape and contents, and traversal be understood in terms of those. Proof of the theorem involves the properties of traversal in a special idiom related to the free applicative functor. Richard S. Bird, Jeremy Gibbons, Stefan Mehner, Janis Voigtländer, Tom Schrijvers |
Haskell | 4 |
| 2013 | Enhancing semantic bidirectionalization via shape bidirectionalizer plug-insabstractAbstract Matsuda et al . (Matsuda, K., Hu, Z., Nakano, K., Hamana, M. & Takeichi, M. (2007) Bidirectionalization transformation based on automatic derivation of view complement functions. In Proceedings of the International Conference on Functional Programming . ACM Press, pp. 47–58) and Voigtländer (Voigtländer, J. (2009) Bidirectionalization for free! In Proceedings of Principles of Programming Languages . ACM Press, pp. 165–176) have introduced two techniques that given a source-to-view function provide an update propagation function mapping an original source and an updated view back to an updated source, subject to standard consistency conditions. Previously, we developed a synthesis of the two techniques, based on a separation of shape and content aspects (Voigtländer, J., Hu, Z., Matsuda, K. & Wang, M. (2010) Combining syntactic and semantic bidirectionalization. In Proceedings of the International Conference on Functional Programming . ACM Press, pp. 181–192). Here we carry that idea further, reworking the technique of Voigtländer such that any shape bidirectionalizer (based on the work of Matsuda et al . (2007) or not) can be used as a plug-in, to good effect. We also provide a data-type-generic account, enabling wider reuse, including the use of pluggable bidirectionalization itself as a plug-in. Janis Voigtländer, Zhenjiang Hu 0002, Kazutaka Matsuda, Meng Wang 0002 |
J. Funct. Program. | 1 |
| 2012 | Ideas for connecting inductive program synthesis and bidirectionalizationabstractWe share a vision of connecting the topics of bidirectional transformation and inductive program synthesis, by proposing to use the latter in approaching problematic aspects of the former. This research perspective does not present accomplished results, rather opening discussion and describing experiments designed to explore the potential of inductive program synthesis for bidirectionalization (the act of automatically producing a backwards from a forwards transformation), in particular to address the issue of integrating programmer intentions and expectations. Janis Voigtländer |
PEPM | 1 |
| 2011 | Strictification of circular programsabstractCircular functional programs (necessarily evaluated lazily) have been used as algorithmic tools, as attribute grammar implementations, and as target for program transformation techniques. Classically, Richard Bird [1984] showed how to transform certain multitraversal programs (which could be evaluated strictly or lazily) into one-traversal ones using circular bindings. Can we go the other way, even for programs that are not in the image of his technique? That is the question we pursue in this paper. We develop an approach that on the one hand lets us deal with typical examples corresponding to attribute grammars, but on the other hand also helps to derive new algorithms for problems not previously in reach. João Paulo Fernandes, João Saraiva, Daniel Seidel, Janis Voigtländer |
PEPM | 4 |
| 2011 | Refined typing to localize the impact of forced strictness on free theorems
Daniel Seidel, Janis Voigtländer |
Acta Informatica | 2 |
| 2010 | Combining syntactic and semantic bidirectionalizationabstractMatsuda et al. [2007, ICFP] and Voigtländer [2009, POPL] introduced two techniques that given a source-to-view function provide an update propagation function mapping an original source and an updated view back to an updated source, subject to standard consistency conditions. Being fundamentally different in approach, both techniques have their respective strengths and weaknesses. Here we develop a synthesis of the two techniques to good effect. On the intersection of their applicability domains we achieve more than what a simple union of applying the techniques side by side delivers. Janis Voigtländer, Zhenjiang Hu 0002, Kazutaka Matsuda, Meng Wang 0002 |
ICFP | 1 |
| 2010 | A Generic Operational Metatheory for Algebraic EffectsabstractWe provide a syntactic analysis of contextual preorder and equivalence for a polymorphic programming language with effects. Our approach applies uniformly across a range of {algebraic effects}, and incorporates, as instances: errors, input/output, global state, nondeterminism, probabilistic choice, and combinations thereof. Our approach is to extend Plotkin and Power's structural operational semantics for algebraic effects (FoSSaCS 2001) with a primitive "basic preorder" on ground type computation trees. The basic preorder is used to derive notions of contextual preorder and equivalence on program terms. Under mild assumptions on this relation, we prove fundamental properties of contextual preorder (hence equivalence) including extensionality properties and a characterisation via applicative contexts, and we provide machinery for reasoning about polymorphism using relational parametricity. Patricia Johann, Alex K. Simpson, Janis Voigtländer |
LICS | 3 |
| 2009 | Free theorems involving type constructor classes: functional pearlabstractFree theorems are a charm, allowing the derivation of useful statements about programs from their (polymorphic) types alone. We show how to reap such theorems not only from polymorphism over ordinary types, but also from polymorphism over type constructors restricted by class constraints. Our prime application area is that of monads, which form the probably most popular type constructor class of Haskell. To demonstrate the broader scope, we also deal with a transparent way of introducing difference lists into a program, endowed with a neat and general correctness proof. Janis Voigtländer |
ICFP | 1 |
| 2009 | Bidirectionalization for free! (Pearl)abstractA bidirectional transformation consists of a function get that takes a source (document or value) to a view and a function put that takes an updated view and the original source back to an updated source, governed by certain consistency conditions relating the two functions. Both the database and programming language communities have studied techniques that essentially allow a user to specify only one of get and put and have the other inferred automatically. All approaches so far to this bidirectionalization task have been syntactic in nature, either proposing a domain-specific language with limited expressiveness but built-in (and composable) backward components, or restricting get to a simple syntactic form from which some algorithm can synthesize an appropriate definition for put. Here we present a semantic approach instead. The idea is to take a general-purpose language, Haskell, and write a higher-order function that takes (polymorphic) get-functions as arguments and returns appropriate put-functions. All this on the level of semantic values, without being willing, or even able, to inspect the definition of get, and thus liberated from syntactic restraints. Our solution is inspired by relational parametricity and uses free theorems for proving the consistency conditions. It works beautifully. Janis Voigtländer |
POPL | 1 |
| 2009 | A family of syntactic logical relations for the semantics of Haskell-like languages
Patricia Johann, Janis Voigtländer |
Inf. Comput. | 2 |
| 2008 | Asymptotic Improvement of Computations over Free Monads
Janis Voigtländer |
MPC | 1 |
| 2008 | Proving correctness via free theorems: the case of the destroy/build-ruleabstractFree theorems feature prominently in the field of program transformation for pure functional languages such as Haskell. However, somewhat disappointingly, the semantic properties of so based transformations are often established only very superficially. This paper is intended as a case study showing how to use the existing theoretical foundations and formal methods for improving the situation. To that end, we investigate the correctness issue for a new transformation rule in the short cut fusion family. This destroy/build-rule provides a certain reconciliation between the competing foldr/build- and destroy/unfoldr-approaches to eliminating intermediate lists. Our emphasis is on systematically and rigorously developing the rule's correctness proof, even while paying attention to semantic aspects like potential nontermination and mixed strict/nonstrict evaluation. Janis Voigtländer |
PEPM | 1 |
| 2008 | Much ado about two (pearl): a pearl on parallel prefix computationabstractThis pearl develops a statement about parallel prefix computation in the spirit of Knuth's 0-1-Principle for oblivious sorting algorithms. It turns out that 0-1 is not quite enough here. The perfect hammer for the nails we are going to drive in is relational parametricity. Janis Voigtländer |
POPL | 1 |
| 2007 | Formal Efficiency Analysis for Tree Transducer Composition
Janis Voigtländer |
Theory Comput. Syst. | 1 |
| 2007 | Selective strictness and parametricity in structural operational semantics, inequationally
Janis Voigtländer, Patricia Johann |
Theor. Comput. Sci. | 1 |
| 2006 | The Impact of seq on Free Theorems-Based Program Transformations
Patricia Johann, Janis Voigtländer |
Fundam. Informaticae | 2 |
| 2004 | Free theorems in the presence of seqabstractParametric polymorphism constrains the behavior of pure functional programs in a way that allows the derivation of interesting theorems about them solely from their types, i.e., virtually for free. Unfortunately, the standard parametricity theorem fails for nonstrict languages supporting a polymorphic strict evaluation primitive like Haskell's seq. Contrary to the folklore surrounding seq and parametricity, we show that not even quantifying only over strict and bottom-reflecting relations in the $\forall$-clause of the underlying logical relation --- and thus restricting the choice of functions with which such relations are instantiated to obtain free theorems to strict and total ones --- is sufficient to recover from this failure. By addressing the subtle issues that arise when propagating up the type hierarchy restrictions imposed on a logical relation in order to accommodate the strictness primitive, we provide a parametricity theorem for the subset of Haskell corresponding to a Girard-Reynolds-style calculus with fixpoints, algebraic datatypes, and seq. A crucial ingredient of our approach is the use of an asymmetric logical relation, which leads to "inequational" versions of free theorems enriched by preconditions guaranteeing their validity in the described setting. Besides the potential to obtain corresponding preconditions for standard equational free theorems by combining some new inequational ones, the latter also have value in their own right, as is exemplified with a careful analysis of seq's impact on familiar program transformations. Patricia Johann, Janis Voigtländer |
POPL | 2 |
| 2004 | Composition of functions with accumulating parametersabstractMany functional programs with accumulating parameters are contained in the class of macro tree transducers. We present a program transformation technique that can be used to solve the efficiency problems due to creation and consumption of intermediate data structures in compositions of such functions, where classical deforestation techniques fail. To do so, given two macro tree transducers under appropriate restrictions, we construct a single macro tree transducer that implements the composition of the two original ones. The imposed restrictions are more liberal than those in the literature on macro tree transducer composition, thus generalising previous results. Janis Voigtländer, Armin Kühnemann |
J. Funct. Program. | 1 |
| 2002 | Concatenate, reverse and map vanish for freeabstractWe introduce a new transformation method to eliminate intermediate data structures occurring in functional programs due to repeated list concatenations and other data manipulations (additionally exemplified with list reversal and mapping of functions over lists).The general idea is to uniformly abstract from data constructors and manipulating operations by means of rank-2 polymorphic combinators that exploit algebraic properties of these operations to provide an optimized implementation. The correctness of transformations is proved by using the free theorems derivable from parametric polymorphic types. Janis Voigtländer |
ICFP | 1 |
| 2002 | Conditions for Efficiency Improvement by Tree Transducer Composition
Janis Voigtländer |
RTA | 1 |