Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Higher-Order and Symbolic Computation: Editorial, 16(1/2)5-6
[go: Go Back, main page]

Higher-Order and Symbolic Computation, 16(1/2)5-6

Editorial

Olivier Danvy, Fritz Henglein, Harry Mairson and Alberto Pettorossi

This double issue of HOSC is the first of two double issues dedicated to the memory of Bob Paige (1947-1999).

Bob's scientific interests were many, and his achievements were many as well, witness his research retrospective, which starts this special issue.

In particular, Bob strongly contributed to the development of new techniques for the derivation of algorithms and programs using the transformational methodology. Starting from specifications written in a set theoretical language, using suitable algebraic or logical formulas, the programmer should transform them, possibly in various steps, into runnable algorithms with high performances. An automatic or semiautomatic system may help him in this task.

There are, basically, two kinds of transformation steps: the first kind consists in the applications of rules according to suitable strategies `a la Burstall-Darlington [1], and the second kind consists in the applications of schema equivalences `a la Walker-Strong [2].

Bob's many research papers provide new insights into these two approaches to transformational programming and, in particular, he contributed to the development of techniques which allow us to derive and improve algorithm efficiency, while preserving correctness. Such derivations and improvements were obtained by suitable modifications of the recursion structure and/or choices of the data structures employed.

When proposing new techniques, Bob always strived for generality, in the sense that these techniques should not be ad-hoc tricks. On the contrary, they should have a large range of applicability for a large class of specifications or programs. Only general ideas could become the basis for an automatic system for program development. Bob's APTS system is indeed the incarnation of most of the techniques he proposed (cf. Leonard and Heitmeyer's contribution in this issue). Only general techniques may become part of a new programming methodology and this was what, ultimately, Bob was looking for and wanted to propose.

Bob's colleagues and friends are all very happy to have been working and sharing ideas with him. In particular, his colleagues at the Courant Institute in New York, the members of the IFIP Working Group 2.1, and the people at the various Universities he visited, including the University of Copenhagen and the University of Wisconsin.

All his friends and colleagues, enjoyed Bob's talks and presentations. His ideas and his visions on program development and programming methodology were a source of enthusiasm, strength, and inspiration.

His dedication to research and teaching is for us all an example to follow.

The articles in this issue of Higher-Order and Symbolic Computation were contributed and formally reviewed, and they reflect the variety of research interests of Bob's scientific work.

"Universal Regular Path Queries" describes the development of an algorithm that abstracts a version of model checking for flow graphs with annotations corresponding to inferred properties. This article shows that such an algorithm can be derived systematically in the spirit of Bob Paige's work.

"Dynamic Programming via Static Incrementalization" describes a (semi)automatic program transformation that optimizes recursive programs amenable to dynamic programming.

"Program Synthesis from Formal Requirements" describes a project to translate a requirements specification, expressed in SCR notation, into C. Two translation strategies are discussed in the paper. Both were implemented using Bob Paige's APTS programtransformation system.

"Computational Divided Differencing and Divided-Difference Arithmetics" uses an approach conceptually similar to the Computational Differentiation technique in order to compute precisely the set of finite, divided differences of a sampled function F(x): F[x0, x1] = (F(x0) - F(x1))/(x0 - x1). The second double issue of HOSC dedicated to Bob's memory will also contain technical contributions, as well as a non-technical retrospective.

References

1. Burstall, R.M. and Darlington, J. Some transformations for developing recursive programs. In Proceedings of the International Conference on Reliable Software, Los Angeles, USA, 1975, pp. 465-472.

2. Walker, S.A. and Strong, H.R. Characterization of flowchartable recursions. In Proceedings 4th Annual ACM Symposium on Theory of Computing, Denver, CO, USA, 1972.
[picture of journal cover]

July 2003 - hosc@brics.dk