VLDB 2026 Research / reviewers in the wild / expert
Jan Heering
dblp:h/JanHeering
· DBLP profile ↗
15ranked-venue papers
8as first author
0since 2021 · last 2015
0000-0002-4922-1993ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 10 · 6 first-authorTheory of computation · 3 · 1 first-authorSystems, architecture and hardware · 1 · 1 first-authorApplied, interdisciplinary, general and emerging 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
8 papers |
Compilers and program optimization · 53% Programming languages and type systems · 38% Program synthesis and code generation · 4% | |
| Theoretical computer science
5 papers |
Logic in computer science · 90% Automata and formal languages · 10% |
Topics — the 20 heaviest of 23, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems
language design |
0.0 | 2 | 2002 | Compiling language definitions: the ASF+SDF compiler · ACM Trans. Program. Lang. Syst. 2002 Towards Monolingual Programming Environments · ACM Trans. Program. Lang. Syst. 1985 |
Compilers and program optimization
compiler construction |
0.0 | 1 | 2002 | Compiling language definitions: the ASF+SDF compiler · ACM Trans. Program. Lang. Syst. 2002 |
Programming languages and type systems
domain-specific languages |
0.0 | 1 | 2002 | Compiling language definitions: the ASF+SDF compiler · ACM Trans. Program. Lang. Syst. 2002 |
Logic in computer science
algebraic specification |
0.0 | 2 | 1995 | Homomorphism Preserving Algebraic Specifications Require Hidden Sorts · Inf. Comput. 1995 Module Algebra · J. ACM 1990 |
Programming languages and type systems
equational logic |
0.0 | 1 | 1997 | Toward a Complete Transformational Toolkit for Compilers · ACM Trans. Program. Lang. Syst. 1997 |
Compilers and program optimization
intermediate representation |
0.0 | 1 | 1997 | Toward a Complete Transformational Toolkit for Compilers · ACM Trans. Program. Lang. Syst. 1997 |
Compilers and program optimization
program transformation |
0.0 | 1 | 1997 | Toward a Complete Transformational Toolkit for Compilers · ACM Trans. Program. Lang. Syst. 1997 |
Compilers and program optimization › program transformation
semantics-preserving transformation |
0.0 | 1 | 1997 | Toward a Complete Transformational Toolkit for Compilers · ACM Trans. Program. Lang. Syst. 1997 |
Logic in computer science › completeness
complete axiomatization |
0.0 | 1 | 1997 | Toward a Complete Transformational Toolkit for Compilers · ACM Trans. Program. Lang. Syst. 1997 |
Logic in computer science › algebraic logic
equational logic |
0.0 | 1 | 1997 | Toward a Complete Transformational Toolkit for Compilers · ACM Trans. Program. Lang. Syst. 1997 |
Compilers and program optimization › parsing › parser generation
incremental parser generation |
0.0 | 2 | 1990 | Incremental Generation of Parsers · IEEE Trans. Software Eng. 1990 Incremental Generation of Parsers · PLDI 1989 |
Compilers and program optimization › parsing
parser generation |
0.0 | 2 | 1990 | Incremental Generation of Parsers · IEEE Trans. Software Eng. 1990 Incremental Generation of Parsers · PLDI 1989 |
Compilers and program optimization
code generation |
0.0 | 1 | 1994 | Lazy and Incremental Program Generation · ACM Trans. Program. Lang. Syst. 1994 |
Program synthesis and code generation
incremental program generation |
0.0 | 1 | 1994 | Lazy and Incremental Program Generation · ACM Trans. Program. Lang. Syst. 1994 |
Compilers and program optimization › compiler front end
lexical analysis |
0.0 | 1 | 1992 | Incremental Generation of Lexical Scanners · ACM Trans. Program. Lang. Syst. 1992 |
Compilers and program optimization › parsing
LR parsing |
0.0 | 1 | 1990 | Incremental Generation of Parsers · IEEE Trans. Software Eng. 1990 |
Programming languages and type systems
module systems |
0.0 | 1 | 1990 | Module Algebra · J. ACM 1990 |
Compilers and program optimization
parsing |
0.0 | 1 | 1990 | Incremental Generation of Parsers · IEEE Trans. Software Eng. 1990 |
Automata and formal languages › formal grammars
context-free grammar |
0.0 | 1 | 1989 | Incremental Generation of Parsers · PLDI 1989 |
Automata and formal languages › parsing
LR parsing |
0.0 | 1 | 1989 | Incremental Generation of Parsers · PLDI 1989 |
Methods — techniques the papers use, named apart from their topics
lambda calculus · 0.0hash-consing · 0.0conditional rewrite rules · 0.0algebraic data types · 0.0incremental generation · 0.0LR parsing · 0.0regular expression to finite automaton transformation · 0.0equational logic · 0.0axiomatic calculus · 0.0context-free grammar · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2015 | Generative software complexity and software understanding
Jan Heering |
Sci. Comput. Program. | 1 |
| 2002 | Compiling language definitions: the ASF+SDF compilerabstractThe ASF+SDF Meta-Environment is an interactive language development environment whose main application areas are definition and implementation of domain-specific languages, generation of program analysis and transformation tools, and production of software renovation tools. It uses conditional rewrite rules to define the dynamic semantics and other tool-oriented aspects of languages, so the effectiveness of the generated tools is critically dependent on the quality of the rewrite rule implementation. The ASF+SDF rewrite rule compiler generates C code, thus taking advantage of C's portability and the sophisticated optimization capabilities of current C compilers as well as avoiding potential abstract machine interface bottlenecks. It can handle large (10,000+ rule) language definitions and uses an efficient run-time storage scheme capable of handling large (1,000,000+ node) terms. Term storage uses maximal subterm sharing (hash-consing), which turns out to be more effective in the case of ASF+SDF than in Lisp or SML. Extensive benchmarking has shown the time and space performance of the generated code to be as good as or better than that of the best current rewrite rule and functional language compilers. Mark van den Brand, Jan Heering, Paul Klint, Pieter A. Olivier |
ACM Trans. Program. Lang. Syst. | 2 |
| 2001 | The ASF+SDF Meta-environment: A Component-Based Language Development Environment
Mark van den Brand, Arie van Deursen, Jan Heering, Hayco de Jong, Merijn de Jonge, Tobias Kuipers, Paul Klint, Leon Moonen, Pieter A. Olivier, Jeroen Scheerder, Jurgen J. Vinju, Eelco Visser, Joost Visser 0001 |
CC | 3 |
| 1997 | Toward a Complete Transformational Toolkit for CompilersabstractPIM is an equational logic designed to function as a “transformational toolkit” for compilers and other programming tools that analyze and manipulate imperative languages. It has been applied to such problems as program slicing, symbolic evaluation, conditional constant propagation, and dependence analysis. PIM consists of the untyped lambda calculus extended with an algebraic data type that characterizes the behavior of lazy stores and generalized conditionals. A graph form of PIM terms is by design closely related to several intermediate representations commonly used in optimizing compilers. In this article, we show that PIM's core algebraic component, PIM t , possesses a complete equational axiomatization (under the assumption of certain reasonable restrictions on term formation). This has the practical consequence of guaranteeing that every semantics-preserving transformation on a program representable in PIM t can be derived by application of PIM t rules. We systematically derive the complete PIM t logic as the culmination of a sequence of increasingly powerful equational systems starting from a straightforward “interpreter” for closed PIM t terms. This work is an intermediate step in a larger program to develop a set of well-founded tools for manipulation of imperative programs by compilers and other systems that perform program analysis. Jan A. Bergstra, T. B. Dinesh, John Field, Jan Heering |
ACM Trans. Program. Lang. Syst. | 4 |
| 1996 | A Complete Transformational Toolkit for Compilers
Jan A. Bergstra, T. B. Dinesh, John Field, Jan Heering |
ESOP | 4 |
| 1995 | Homomorphism Preserving Algebraic Specifications Require Hidden Sorts
Jan A. Bergstra, Jan Heering |
Inf. Comput. | 2 |
| 1994 | Which Data Types have omega-complete Initial Algebra Specifications?
Jan A. Bergstra, Jan Heering |
Theor. Comput. Sci. | 2 |
| 1994 | Lazy and Incremental Program GenerationabstractCurrent program generators usually operate in a greedy manner in the sense that a program must be generated in its entirety before it can be used. If generation time is scarce, or if the input to the generator is subject to modification, it may be better to be more cautious and to generate only those parts of the program that are indispensable for processing the particular data at hand. We call this lazy program generation . Another, closely related strategy is incremental program generation . When its input is modified, an incremental generator will try to make a corresponding modification in its output rather than generate a completely new program. It may be advantageous to use a combination of both strategies in program generators that have to operate in a highly dynamic and/or interactive environment. Jan Heering, Paul Klint, J. Rekers |
ACM Trans. Program. Lang. Syst. | 1 |
| 1992 | Incremental Generation of Lexical ScannersabstractIt is common practice to specify textual patterns by means of a set of regular expressions and to transform this set into a finite automaton to be used for the scanning of input strings. In many applications, the cost of this preprocessing phase can be amortized over many uses of the constructed automaton. In this paper new techniques for lazy and incremental scanner generation are presented. The lazy technique postpones the construction of parts of the automaton until they are really needed during the scanning of input. The incremental technique allows modifications to the original set of regular expressions to be made and reuses major parts of the previous automaton. This is interesting in applications such as environments for the interactive development of language definitions in which modifications to the definition of lexical syntax and the uses of the generated scanners alternate frequently. Jan Heering, Paul Klint, J. Rekers |
ACM Trans. Program. Lang. Syst. | 1 |
| 1990 | Module AlgebraabstractAn axiomatic algebraic calculus of modules is given that is based on the operators combination/union, export, renaming, and taking the visible signature . Four different models of module algebra are discussed and compared. Jan A. Bergstra, Jan Heering, Paul Klint |
J. ACM | 2 |
| 1990 | Incremental Generation of ParsersabstractAn LR-based parser generator for arbitrary context-free grammars that generates parsers by need and handles modifications to its input grammar by updating the parser it has generated so far is described. The need for these techniques is discussed in the context of interactive language definition environments. All required algorithms are presented. Measurements are given comparing their performance with that of conventional techniques.> Jan Heering, Paul Klint, J. Rekers |
IEEE Trans. Software Eng. | 1 |
| 1989 | Incremental Generation of ParsersabstractAn LR-based parser generator for arbitrary context-free grammars is described, which generates parsers by need and processes grammar modifications by updating already existing parsers. We motivate the need for these techniques in the context of interactive language definition environments, present all required algorithms, and give measurements comparing their performance with that of conventional techniques. Jan Heering, Paul Klint, J. Rekers |
PLDI | 1 |
| 1986 | Partial Evaluation and omega-Completeness of Algebraic Specifications
Jan Heering |
Theor. Comput. Sci. | 1 |
| 1985 | Towards Monolingual Programming EnvironmentsabstractMost programming environments are much too complex. One way of simplifying them is to reduce the number of mode-dependent languages the user has to be familiar with. As a first step towards this end, the feasibility of unified command/programming/debugging languages, and the concepts on which such languages have to be based, are investigated. The unification process is accomplished in two phases. First, a unified command/programming framework is defined and, second, this framework is extended by adding an integrated debugging capability to it. Strict rules are laid down by which to judge language concepts presenting themselves as candidates for inclusion in the framework during each phase. On the basis of these rules many of the language design questions that have hitherto been resolved this way or that, depending on the taste of the designer, lose their vagueness and can be decided in an unambiguous manner. Jan Heering, Paul Klint |
ACM Trans. Program. Lang. Syst. | 1 |
| 1980 | The intel 8086, the Zilog Z8000, and the motorola MC68000 microprocessors
Jan Heering |
Euromicro Newsletter | 1 |