Jan Heering
Centrum Wiskunde & Informatica
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Jan Heering.
compiler construction | 2001
Mark G. J. van den Brand; Arie van Deursen; Jan Heering; H. A. de Jong; Merijn de Jonge; Tobias Kuipers; Paul Klint; L.M.F. Moonen; Pieter A. Olivier; J. Scheerder; Jurgen J. Vinju; Eelco Visser; Joost Visser
The Asf+Sdf Meta-environment is an interactive development environment for the automatic generation of interactive systems for constructing language definitions and generating tools for them. Over the years, this system has been used in a variety of academic and commercial projects ranging from formal program manipulation to conversion of COBOL systems. Since the existing implementation of the Meta-environment started exhibiting more and more characteristics of a legacy system, we decided to build a completely new, component-based, version. We demonstrate this new system and stress its open architecture.
Sigplan Notices | 1989
Jan Heering; P.R.H. Hendriks; Paul Klint; J.G. Rekers
SDF is a formalism for the definition of syntax which is comparable to BNF in some respects, but has a wider scope in that it also covers the definition of lexical and abstract syntax. Its design and implementation are tailored towards the language designer who wants to develop new languages as well as implement existing ones in a highly interactive manner. It emphasizes compactness of syntax definitions by offering (a) a standard interface between lexical and context-free syntax; (b) a standard correspondence between context-free and abstract syntax; (c) powerful disambiguation and list constructs; and (d) an efficient incremental implementation which accepts arbitrary context-free syntax definitions. SDF can be combined with a variety of programming and specification languages. In this way these obtain fully general user-definable syntax.
AMAST Series in Computing | 1996
Arie van Deursen; Jan Heering; Paul Klint
From the Publisher: Language prototyping provides a means to generate language implementations automatically from high-level language definitions. This volume presents an algebraic specification approach to language prototyping; and is centered around the ASF+SDF formalism and Meta-Environment. The volume is an integrated collection of articles covering a number of case studies, and includes several chapters proposing new techniques for deriving advanced language implementations. The accompanying software is freely available.
ACM Transactions on Programming Languages and Systems | 1985
Jan Heering; Paul Klint
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.
Electronic Notes in Theoretical Computer Science | 2001
M.G.J. van den Brand; A. Van Deursen; Jan Heering; H. A. de Jong; M. de Jonge; Tobias Kuipers; Paul Klint; Leon Moonen; Pieter A. Olivier; J. Scheerder; Jurgen J. Vinju; Eelco Visser; Joost Visser
Abstract The A sf +S df Meta-Environment is an interactive development environment for the automatic generation of interactive systems for constructing language definitions and generating tools for them. Over the years, this system has been used in a variety of academic and commercial projects ranging from formal program manipulation to conversion of COBOL systems. Since the existing implementation of the Meta-Environment started exhibiting more and more characteristics of a legacy system, we decided to build a completely new, component-based, version. We demonstrate this new system and stress its open architecture.
ACM Transactions on Programming Languages and Systems | 1997
Jan A. Bergstra; T. B. Dinesh; John Field; Jan Heering
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 PIMs core algebraic component, PIM<subscrpt><italic>t</italic></subscrpt>, possesses a <italic>complete</italic> 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<subscrpt><italic>t</italic></subscrpt> can be derived by application of PIM<subscrpt><italic>t</italic></subscrpt> rules. We systematically derive the complete PIM<subscrpt><italic>t</italic></subscrpt> logic as the culmination of a sequence of increasingly powerful equational systems starting from a straightforward “interpreter” for closed PIM<subscrpt><italic>t</italic></subscrpt> 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.
ACM Sigsoft Software Engineering Notes | 2003
Jan Heering
We introduce the notion of generative software complexity to illustrate some of the problems one may run into when trying to tackle a special case of a question recently raised by Brooks.
ACM Computing Surveys | 1998
John Field; Jan Heering; T. B. Dinesh
A variety of disparate methods have traditionally been used to define the execution semantics of programming languages, to describe partial evaluation, to formalize program analysis as abstract interpretation, and to implement each of these operations in practical systems. We argue here that equational logic can serve to unify each of these aspects of language manipulation.
ifip international conference on theoretical computer science | 1994
Jan A. Bergstra; Jan Heering
Abstract An algebraic specification is called ω-complete or inductively complete if all (open as well as closed) equations valid in its initial model are equationally derivable from it, i.e., if the equational theory of the initial model is identical to the equational theory of the specification. As the latter is recursively enumerable, the initial model of an ω-complete algebraic specification is a data type with a recursively enumerable equational theory. We show that if hidden sorts and functions are allowed in the specification, the converse is also true: every data type with a recursively enumerable equational theory has an ω-complete initial algebra specification with hidden sorts and functions. We also show that in the case of finite data types the hidden sorts can be dispensed with.
Proceedings of the 2nd international workshop on Ultra-large-scale software-intensive systems | 2008
Jan Heering; Marjan Mernik
We briefly discuss the potential of domain-specific languages and domain-specific modeling languages for ULSSIS engineering, some of the scaling challenges involved, and the possibilities for raising expressiveness beyond current levels.