scispace - formally typeset
Search or ask a question

Showing papers on "Program transformation published in 1982"


Journal ArticleDOI
TL;DR: Research directed toward applying one particular transformation method to problems of increasing scale is described, and parts of the approach have been embodied in a machine-based system which assists a user in transforming his programs.
Abstract: Program transformation has been advocated as a potentially appropriate methodology for program development. The ability to transform large programs is crucial to the practicality of such an approach. This paper describes research directed toward applying one particular transformation method to problems of increasing scale. The method adopted is tha t developed by Burstall and Darlington, and familiarity with their work is assumed. The problems which arise when attempting transformation of larger scale programs are discussed, and an approach to overcoming them is presented. Parts of the approach have been embodied in a machine-based system which assists a user in transforming his programs. The approach, and the use of this system, are illustrated by presenting portions of the transformation of a compiler for a \"toy\" language.

124 citations


Journal ArticleDOI
Robert F. Sproull1
TL;DR: The transformations are used to derive several highly parallel variants of Bresenham's algorithm, designed for use on displays that can generate more than one pixel at a time.
Abstract: : A wide variety of line-drawing algorithms can be derived by applying program transformations to a simple, obviously correct algorithm. The transformations increase the algorithm's performance and eliminate the need for floating-point computations. Two familiar algorithms are derived in this way: Bresenham's algorithm and the digital differential analyzer (DDA). The transformations are then used to derive several highly parallel variants of Bresenham's algorithm, designed for use on displays that can generate more than one pixel at a time. The treatment shows a complete, extended example of the practical use of program transformations. Moreover, the transformations derive Bresenham's algorithm without recourse to complex geometric arguments.

72 citations


Journal ArticleDOI
TL;DR: Using the program transformation technique, some algorithms for evaluating linear recurrence relations in logarithmic time are derived from the particular case of the Fibonacci function and a comparison with the conventional matrix exponentiation algorithm is made.
Abstract: Using the program transformation technique we derive some algorithms for evaluating linear recurrence relations in logarithmic time. The particular case of the Fibonacci function is first considered and a comparison with the conventional matrix exponentiation algorithm is made. This comparison allows us also to contrast the transformation technique and the stepwise refinement technique underlining some interesting features of the former one. Through the examples given we also explain why those features are interesting for a useful and reliable program construction methodology.

21 citations


Journal ArticleDOI
TL;DR: The authors present the conception of structured design grammars (SDG), which provide the basis for the MSPD method, which makes it possible to consider the problem of multilevel partial program verification, program transformation, and documentation generation during program development and subsequent maintenance.
Abstract: The authors present the conception of structured design grammars (SDG), which provide the basis for the MSPD method. A classification of program development methods according to top-down, bottom-up, and mixed strategy is proposed. The SDG formalism makes it possible to consider the problem of multilevel partial program verification, program transformation, and documentation generation during program development and subsequent maintenance. The MSPD method is demonstrated in application to a number of program design projects. They develop the arsenal of structured programming using MSPD method. Language and software tools constituting the basis of structured programming are considered. The problem of multilevel optimizing translation is treated in the context of the mul'tiprotsessist system oriented to automatic structured parallel programming by the MSPD method. Applications of the MSPD method to symbolic processing are considered. The process of structured design of the partran system and of software modules for mini- and microcomputers is described. 70 references.

11 citations


Proceedings ArticleDOI
01 Jun 1982
TL;DR: The advantages of writing a compiler in a very high level applicative language are discussed, and the use of program transformation and other techniques to turn the initial 'runnable specification' into a more efficient (if less clear) program are outlined.
Abstract: A compiler for the applicative language HOPE is described. The compiler is itself written in HOPE and generates a machine independent compiler target language, suitable for execution on the parallel reduction machine ALICE. The advantages of writing a compiler in a very high level applicative language are discussed, and the use of program transformation and other techniques to turn the initial 'runnable specification' into a more efficient (if less clear) program are outlined. Extensions to the HOPE language and the compiler which can exploit the parallelism and various execution modes of ALICE are described.

8 citations


Proceedings ArticleDOI
07 Jun 1982
TL;DR: An automatic database system conversion facility which provides one approach for coping with changing data requirements and the revision of the schema, the translation of the stored database, and the conversion of the numerous application programs is described.
Abstract: Changing data requirements present database administrators with a difficult problem: the revision of the schema, the translation of the stored database, and the conversion of the numerous application programs. This paper describes an automatic database system conversion facility which provides one approach for coping with this problem. The Pure Definition Language and the Pure Manipulation Language have been designed to facilitate the conversions specified in the Pure Transformation Language. Two conversions and their effect on retrievals are demonstrated.

8 citations


Book ChapterDOI
09 Mar 1982
TL;DR: It turns out that the formal techniques already developed within the CIP project at the Technical University Munich also apply to this front end of the transformational activities.
Abstract: The paper aims at demonstrating that the concept of algebraic abstract data types together with a suitable development methodology is suited for the specification of larger programs, too. Possible phases in a stepwise, goal-oriented development of such a formal, algebraic specification out of informal requirements are exhibited along with the sample specification of a program transformation system. This development is guided by a continuous communication between the specifier and his client where additional valuable hints are provided by the formal properties of algebraic types. It turns out that the formal techniques already developed within the CIP project at the Technical University Munich also apply to this front end of the transformational activities.

7 citations


Book ChapterDOI
01 Jan 1982
TL;DR: In this paper, a program transformation system developer has the option to declare that the system he is developing is not naive, in the sense that it is not "naive" in a sense that I shall make more precise below.
Abstract: Look how carefully the title has been worded! No developer of a program transformation system need feel offended, for I have given him two escapes Firstly, I am not arguing an impossibility, but only an unlikeliness — and we know that all startling advances have been made against seemingly overwhelming odds, don’t we? Secondly, he has the option to declare that the program transformation system he is developing is not “naive” in the sense that I shall make more precise below

4 citations


Proceedings ArticleDOI
15 Aug 1982
TL;DR: This paper extends the Algebra of Programs by introducing nondeterministic operators and formulating algebraic laws describing their behavior and the transformations applicable to them.
Abstract: Two major advantages of the FP Algebra of Programs are its mathematical tractability and the ease with which parallel evaluation may be introduced. Unfortunately, some aspects of parallelism involve nondeterministic computations which, at times, yield indeterminate results. It is possible to introduce special operators to express the indeterminacy; the augmented language is, however, less tractable than the original. Indeterminacy destroys referential transparency: program transformation is not applicable when, for example, the expression x=x may not be identically true. In this paper, we extend the Algebra of Programs by introducing nondeterministic operators and formulating algebraic laws describing their behavior and the transformations applicable to them.

3 citations



01 Jan 1982
TL;DR: In this thesis several aspects of functional languages in general, and FFP languages in particular, are investigated andinterpreters are described which are based on the algebras of functional programs.
Abstract: In this thesis several aspects of functional languages in general, and FFP languages in particular, are investigated. Interpreters are described which are based on the algebras of functional programs. Extensions are proposed for improving the readability of functional programs and algorithms are given for transforming programs in the extended language into the base language. The concept of assertion functions is introduced for use in automatic specialization of functional programs. Finally, a functional language for animation which makes use of a "stream" of time values is described.