Jan Heering

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems
language design
0.022002
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.012002
Compiling language definitions: the ASF+SDF compiler · ACM Trans. Program. Lang. Syst. 2002
Programming languages and type systems
domain-specific languages
0.012002
Compiling language definitions: the ASF+SDF compiler · ACM Trans. Program. Lang. Syst. 2002
Logic in computer science
algebraic specification
0.021995
Homomorphism Preserving Algebraic Specifications Require Hidden Sorts · Inf. Comput. 1995
Module Algebra · J. ACM 1990
Programming languages and type systems
equational logic
0.011997
Toward a Complete Transformational Toolkit for Compilers · ACM Trans. Program. Lang. Syst. 1997
Compilers and program optimization
intermediate representation
0.011997
Toward a Complete Transformational Toolkit for Compilers · ACM Trans. Program. Lang. Syst. 1997
Compilers and program optimization
program transformation
0.011997
Toward a Complete Transformational Toolkit for Compilers · ACM Trans. Program. Lang. Syst. 1997
Compilers and program optimization › program transformation
semantics-preserving transformation
0.011997
Toward a Complete Transformational Toolkit for Compilers · ACM Trans. Program. Lang. Syst. 1997
Logic in computer science › completeness
complete axiomatization
0.011997
Toward a Complete Transformational Toolkit for Compilers · ACM Trans. Program. Lang. Syst. 1997
Logic in computer science › algebraic logic
equational logic
0.011997
Toward a Complete Transformational Toolkit for Compilers · ACM Trans. Program. Lang. Syst. 1997
Compilers and program optimization › parsing › parser generation
incremental parser generation
0.021990
Incremental Generation of Parsers · IEEE Trans. Software Eng. 1990
Incremental Generation of Parsers · PLDI 1989
Compilers and program optimization › parsing
parser generation
0.021990
Incremental Generation of Parsers · IEEE Trans. Software Eng. 1990
Incremental Generation of Parsers · PLDI 1989
Compilers and program optimization
code generation
0.011994
Lazy and Incremental Program Generation · ACM Trans. Program. Lang. Syst. 1994
Program synthesis and code generation
incremental program generation
0.011994
Lazy and Incremental Program Generation · ACM Trans. Program. Lang. Syst. 1994
Compilers and program optimization › compiler front end
lexical analysis
0.011992
Incremental Generation of Lexical Scanners · ACM Trans. Program. Lang. Syst. 1992
Compilers and program optimization › parsing
LR parsing
0.011990
Incremental Generation of Parsers · IEEE Trans. Software Eng. 1990
Programming languages and type systems
module systems
0.011990
Module Algebra · J. ACM 1990
Compilers and program optimization
parsing
0.011990
Incremental Generation of Parsers · IEEE Trans. Software Eng. 1990
Automata and formal languages › formal grammars
context-free grammar
0.011989
Incremental Generation of Parsers · PLDI 1989
Automata and formal languages › parsing
LR parsing
0.011989
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
YearPublicationVenuePosition
2015 Generative software complexity and software understanding
Jan Heering
Sci. Comput. Program.1
2002 Compiling language definitions: the ASF+SDF compiler
abstract
The 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
CC3
1997 Toward a Complete Transformational Toolkit for Compilers
abstract
PIM 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
ESOP4
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 Generation
abstract
Current 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 Scanners
abstract
It 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 Algebra
abstract
An 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. ACM2
1990 Incremental Generation of Parsers
abstract
An 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 Parsers
abstract
An 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
PLDI1
1986 Partial Evaluation and omega-Completeness of Algebraic Specifications
Jan Heering
Theor. Comput. Sci.1
1985 Towards Monolingual Programming Environments
abstract
Most 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 Newsletter1