@InProceedings{BEG+95, author = {Brand, M. G. J. van den and S. M. Eijkelkamp and D. K. A. Geluk and H. Meijer and H. R. Osborne and M. J. F. Polling}, title = {Program transformations using {ASF+SDF}}, crossref = {ASF+SDF95}, pages = {29--52}, abstract = { This paper describes the ongoing work in the design and implementation of a program transformation system for educational purposes. The system is based on {\sc Asf+Sdf} for the implementation of the application of transformation rules and on {\sc Seal} for the implementation of the user interface. The transformation rules are given in a mixture of {\sc CIP-L} and {\sc Clean}: {\sc Disciplean}. The {\sc Disciplean} transformation rules are not `hard-wired' in the system but they are stored in a kind of data base and they are available via an editor. This allows a flexible way of extending the set of transformation rules. } } @InProceedings{Bra95, author = {Brand, M. G. J. van den}, title = {Pretty printing in the {ASF+SDF} Meta-environment: Past, Present, and Future}, crossref = {ASF+SDF95}, pages = {155--174}, abstract = { This paper gives an overview of the various pretty printing tools available in the {\sc Asf+Sdf} Meta-environment. The default pretty printer in the Meta-environment is probably the first component which has been fully specified in {\sc Asf+Sdf} and compiled to C using the ASF2C compiler~\cite{KW93}. Some of the achievements concerning pretty printing will be discussed in this paper. A pretty printer generator and its use will be discussed, as well as the tuning of generated pretty printers, this will be demonstrated by means of a small example. } } @InProceedings{Deu95, author = {A. van Deursen}, title = {A Simple Pi-calculus Manipulation Tool}, crossref = {ASF+SDF95}, pages = {211--233}, abstract = { The $\pi$-calculus is a challenge for tool generation software, as it is subject to frequent changes. A specification of desirable functionality of tools for manipulating $\pi$-calculus expressions is given, and its extensibility is studied. The difficulties encountered during specification are discussed, as well as several proposals for easier tool specification. } } @InProceedings{Din95, author = {Dinesh, T. B.}, title = {Injection Misdemeanors}, crossref = {ASF+SDF95}, pages = {255--270}, abstract = { ASF+SDF allows injections in the presence of over-loading. The injections are generally perceived as a very useful feature of ASF+SDF. They have, however, troubled many -- from implementors to specifiers. We elaborate on some of the problems (misunderstandings) encountered. } } @InProceedings{FP95, author = {M. V. Ferro and M.A.A. Pardo}, title = {Friendly Incremental Prototyping}, crossref = {ASF+SDF95}, pages = {127--142}, abstract = { A development environment for interactive systems devoted to generate formal languages is described. Our system is organized around three cooperative modules. The first is a generator of general context-free parsers, following different parsing schemes among several available. The second is a generic incremental parsing facility that can be used to make the overall parsing process efficient in the context of program development. The third is an extensible user graphical interface that provides a complete set of customization and trace facilities for the system. \par The final tool has been baptized {\sc Ice}, after {\bf I}ncremental {\bf C}ontext-Free {\bf E}nvironment. All components in {\sc Ice} show a reasonable grade of efficiency both, in space and time. In an empirical comparison, it appears to be superior to other general context-free parsing environments and is comparable to the classic deterministic ones, when the context is not ambiguous. The cooperative architecture allows the modification of the environment, by adding or redesigning modules, with low impact on other components. } } @InProceedings{HK95, author = {J. Heering and P. Klint}, title = {The Prehistory of {ASF+SDF} (1980-1984)}, crossref = {ASF+SDF95}, pages = {1--4} } @InProceedings{Hee95, author = {J. Heering}, title = {An Algebraic Machine for Imperative Programs (Abstract)}, crossref = {ASF+SDF95}, pages = {27}, abstract = { In \cite{Fie92} Field introduced PIM, an algebraic machine for the analysis, transformation, and optimization of imperative programs. For these purposes the algebraic framework is particularly attractive since it provides a uniform setting for modelling the standard dynamic semantics of a language (implemented as a confluent term rewriting system) as well as arbitrary semantics preserving program transformation and partial evaluation (using equations of the complete logic).\par Whereas the standard semantics involves only rewriting of PIM ground terms, program transformation and partial evaluation amount to rewriting of PIM terms containing (meta)variables. The appropriate notion of completeness in this setting is not the well-known completeness of equational logic, but $\omega$-completeness \cite{Hee86,BH94} of the specification of PIM. Making an algebraic specification $\omega$-complete usually requires hard work (if it is possible at all), and PIM is no exception. } } @InProceedings{KW95, author = {Kamperman, J. F. Th. and Walters, H. R.}, title = {The New {ASF} compiler --- {A}n exercise in self-applicability}, crossref = {ASF+SDF95}, pages = {271--293}, abstract = { We call a compiler {\em bootstrapped} when it is able to compile its own source. To achieve this situation, the compiler must be expressed in its own language, and an initial interpreter or compiler for this language must be available.\par We describe the tools and techniques used for the bootstrapping of the new ASF compiler, which is itself expressed in ASF+SDF. As initial compiler, the previous version of the ASF compiler, ASF2C, and the meta-environment are used.\par Both as a case-study in the manipulation of algebraic specifications, and as case-study in software-engineering of a portable compiler, the project is interesting to the ASF+SDF community. } } @InProceedings{Kli95, author = {P. Klint}, title = {The Evolution of Implementation Techniques in the {ASF+SDF} Meta-environment}, crossref = {ASF+SDF95}, pages = {5--26}, abstract = { The ASF+SDF Meta-environment is an interactive development environment for formal language definitions. It is both a {\em meta-environment} supporting fully interactive editing of modular language definitions written in the formalism ASF+SDF and a {\em generator} for dedicated environments for defined languages.\par The actual development of this system started in 1985 as part of the GIPE (Generation of Interactive Programming Environments) projects~\cite{HKKL85}. Now, ten years later, it is worthwhile to assess what has been achieved and, more importantly, which problems are still to be addressed.\par A historical and at times methodological perspective is necessary in such an assessment. However, rather than evaluating {\em all} aspects of the system I will concentrate on the evolution of the implementation techniques being used. This implies that I will neither assess the formalism ASF+SDF itself nor discuss more fundamental research questions related to topics like modularization, higher-order formalisms, compiler generation, and the like.\par Instead, I will try to distill lessons from the patterns that can be identified in the evolution of the implementation techniques used so far. These lessons are used to make projections for the future.\par The ASF+SDF Meta-environment has been developed as part of the Centaur system, the end result of the GIPE projects. The analysis to be given here will completely focus on the Meta-environment and will only discuss those aspects of Centaur that are directly relevant to this analysis. Other aspects of Centaur will be mostly ignored.\par The paper gives a chronological account: past, present, and future. Readers interested in {\em pre\/} historic considerations should consult~\cite{HK95}. An overview of the Meta-environment is given in~\cite{Kli93.meta}. } } @InProceedings{MM95a, author = {S. Mauw and J.C. Mulder}, title = {A {PSF} Library of Data Types}, crossref = {ASF+SDF95}, pages = {53--64}, abstract = { We present a library of basic data types for the process specification formalism PSF. The specification is written in the algebraic specification formalism ASF, which is a sublanguage of PSF. } } @InProceedings{MM95b, author = {S. Mauw and E. van der Meulen}, title = {Specification of Tools for Message Sequence Charts}, crossref = {ASF+SDF95}, pages = {175--210}, abstract = { The recent formalization of the semantics of Message Sequence Charts enables the derivation of tools for MSCs directly from this formal definition. We use the ASF+SDF meta-environment to make a straightforward implementation of tools for transformation, simulation and requirements testing. In this paper we present the complete specification of the tools. } } @InProceedings{ND95, author = {D. Naidich and T.B. Dinesh}, title = {Specifying an Automated Induction Proof Procedure in {ASF+SDF}}, crossref = {ASF+SDF95}, pages = {233--254}, abstract = { We describe the implementation of an automated theorem prover for algebraic specifications, in an algebraic specification setting using the ASF+SDF Meta-environment. The current implementation is based on the implicit induction approach implemented in SPIKE \cite{BKR92,BR93}. We consider the implementation as a case study on the tool generation within ASF+SDF which also provides an experimental basis for the research on automated induction. We consider the issues of the simplification strategies of implicit induction, the user interaction/heuristics in implicit induction, the computational effectiveness of ASF+SDF specifications, and the plausible improvements of the ASF+SDF specification language. } } @InProceedings{Usk95, author = {S. {{\"U}sk{\"u}darl{\i}}}, title = {Specifying Visual Syntax}, crossref = {ASF+SDF95}, pages = {143--154}, abstract = { This paper discusses visual syntax definition in a framework of generating programming environments for visual languages. In particular, the work is set in the context of the ASF+SDF Meta-environment~\cite{Kli93.meta}. For the generation of a visual programming environment we need to be able specify visual languages. This paper discusses how we can define visual syntax for existing languages, and then outlines an approach to defining a visual specification formalism.\par The basic idea is that given a language specification, such as {\em sets}, and a mapping from this language to a graphical syntax (using a visual definition language), we obtain a visual language definition from which we can generate visual tools. This approach can be exploited to define tools for a visual specification formalism yielding a {\em visual} environment for specifying visual languages. } } @InProceedings{Vig95, author = {S. Vigna}, title = {Specifying {IMP$(G)$} Using {ASF+SDF}: A Case Study}, crossref = {ASF+SDF95}, pages = {65--88}, abstract = { {\bf Imp}$(G)$ is a language based on distributive categories which allows to define uniformly classes of computable function arising from a basic set. The syntax of {\bf Imp}$(G)$ has been defined mathematically in terms of abstract syntax, so that any implementation has to face with a number of choices, ambiguities and polymorphisms of the categorical notation. In this paper we summarize the goals attained using ASF+SDF without resorting to hybrid functions. In particular, we describe how type checking was implemented equationally using the backtracking mechanism of list unification in order to obtain indifference to the associativity isomorphisms. } } @InProceedings{Vis95, author = {E. Visser}, title = {A Family of Syntax Definition Formalisms}, crossref = {ASF+SDF95}, pages = {89--126}, abstract = { In this paper we design a syntax definition formalism as a family of formalisms. Starting with a small kernel, various features for syntax definition are designed orthogonally to each other. This provides a framework for constructing new formalisms by adapting and extending old ones. The formalism is developed with the algebraic specification formalism ASF+SDF. It provides the following features: lexical and context-free syntax, variables, disambiguation by priorities, regular expressions, character classes and modular definitions. New are the uniform treatment of lexical syntax, context-free syntax and variables, the treatment of regular expressions by normalization yielding abstract syntax without auxiliary sorts, regular expressions as result of productions and modules with hidden imports and renamings. } } @Proceedings{ASF+SDF95, booktitle = {Proceedings of {ASF+SDF'95}: a workshop on Generating Tools from Algebraic Specifications}, title = {Proceedings of {ASF+SDF'95}: a workshop on Generating Tools from Algebraic Specifications}, year = {1995}, editor = {Brand, M. G. J. van den and Deursen, A. van and Dinesh, T. B. and Kamperman, J. and Visser, E.}, publisher = {Technical Report P9504, Programming Research Group, University of Amsterdam}, OPTorganization = {}, OPTaddress = {}, month = {May 11 \& 12}, URL = {http://www.cwi.nl/~gipe/asf+sdf95/} }