Abstract
We give semantics for imperative while-programs by assigning a set of single-assignments and a value function to each program. The semantics is shown to be consistent with Dijkstra's predicate transformers. Every program execution is seen to generate a set of events with data dependencies. The events are the single-assignments and the data dependencies between them are given by common input/output variables. Program parts that always generate isomorphic sets can sometimes be effectively parallelized, using known methods for mapping sets of events with static dependencies to a space-time. Thus, the semantics can be helpful for finding techniques for compilation of while-programs to fine-grain parallel and pipelined target architectures. It also shows the relationship between imperative languages and single-assignment languages.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
W. B. Ackerman. Data flow languages. Computer, 15:15–25, February 1982.
B. Alpern, M. N. Wegman, and F. K. Zadeck. Detecting equality of variables in programs. In Proc. POPL, pages 1–11, ACM, January 1988.
P. K. Cappello and K. Steiglitz. Unifying VLSI Array Design with Linear Transformations of Space-Time. Research Report TRCS83-03, Dept. Comput. Sci., UCSB, 1983.
M. C. Chen. Transformation of parallel programs in Crystal. In H.-J. Kugler, editor, INFORMATION PROCESSING 86, pages 455–462, Elsevier Publishers B.V. (North-Holland), 1986.
R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. An efficient method of computing static single assignment form. In Proc. POPL, pages 25–35, ACM, January 1989.
E. W. Dijkstra. A Discipline of Programming. Prentice-Hall, Englewood Cliffs, N.J., 1976.
R. W. Floyd. Assigning meaning to programs. In J. T. Schwartz, editor, Proc. Symp. Applied Mathematics, vol. 19: Mathematical Aspects of Computer Science, pages 19–32, American Mathematical Society, Providence, R.I., 1967.
G. Grätzer. Universal Algebra. Springer-Verlag, New York, NY, 1979.
I. Greif and A. R. Meyer. Specifying the semantics of while programs: a tutorial and critique of a paper by Hoare and Lauer. ACM Trans. Program. Lang. Syst., 4(1):44–82, January 1982.
D. Gries. The Science of Programming. Springer-Verlag, 1981.
C. A. R. Hoare. An exiomatic basis for computer programming. Comm. ACM, 12(10):576–580, 583, October 1969.
C. A. R. Hoare and P. E. Lauer. Consistent and complementary formal theories of the semantics of programming languages. Acta Inf., 3:135–153, 1974.
P. Hudak, J-M. Delosme, and I. C. F. Ipsen. ParLance: A Para-Functional Programming Environment for Parallel and Distributed Computing. Research Report YALEU/DCS/RR-524, Dept. Comput. Sci., Yale University, March 1987.
D. J. Kuck. A survey of parallel machine organization and programming. Computing Surveys, 9(1):29–59, March 1977.
D. J. Kuck, Y. Muraoka, and S. C. Chen. On the number of operations simultaneously executable in Fortran-like programs and their resulting speedup. IEEE Trans. Comput., C-21:1293–1310, December 1972.
L. Lamport. The parallel execution of DO loops. Comm. ACM, 17:83–93, February 1974.
J. Li, M. C. Chen, and M. F. Young. Design of Systolic Algorithms for Large Scale Multiprocessors. Technical Report YALEU/DCS/TR-513, Dept. Comput. Sci., Yale University, February 1987.
B. Lisper. Synthesis and equivalence of concurrent systems. Theoretical Computer Science, 58:183–199, 1988.
B. Lisper. Synthesis of Synchronous Systems by Static Scheduling in Space-time. Volume 362 of Lecture Notes in Computer Science, Springer-Verlag, Heidelberg, May 1989.
B. Lisper. Time-Optimal Synthesis of Systolic Arrays with Pipelined Cells. Research Report YALEU/DCS/RR-560, Dept. Comput. Sci., Yale University, September 1987.
M. G. Main. A powerdomain primer. Bullentin of the European Association for Theoretical Computer Science, (33):115–147, October 1987.
Z. Manna. Mathematical Theory of Computation. McGraw-Hill, New York, 1974.
J. R. McGraw. The VAL language: description and analysis. ACM Trans. Program. Lang. Syst., 4(1):44–82, January 1982.
W. L. Miranker and A. Winkler. Spacetime representations of computational structures. Computing, 32:93–114, 1984.
D. I. Moldovan. On the analysis and synthesis of VLSI algorithms. IEEE Trans. Comput., C-31:1121–1126, October 1982.
D. I. Moldovan and J. A. B. Fortes. Partitioning and mapping algorithms in fixed size systolic arrays. IEEE Trans. Comput., C-35:1–12, January 1986.
D. A. Padua, D. J. Kuck, and D. H. Lawrie. High-speed multiprocessors and compilation techniques. IEEE Trans. Comput., C-29(9):763–776, September 1980.
D. A. Padua and M. J. Wolfe. Advanced compiler optimizations for supercomputers. Comm. ACM, 29(12):1184–1201, December 1986.
P. Quinton. The Systematic Design of Systolic Arrays. Research Report RR 216, INRIA, Rennes, July 1983.
S. V. Rajopadye, S. Purushotaman, and R. Fujimoto. On Synthesizing Systolic Arrays from Recurrence Relations with Linear Dependencies. Detailed summary, Dept. Comput. Sci., University of Utah, 1986.
R. A. Towle. Control and data dependence for program transformations. PhD thesis, Dept. Comput. Sci., University of Illinois at Urbana-Champaign, March 1976.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1989 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lisper, B. (1989). Single-assignment semantics for imperative programs. In: Odijk, E., Rem, M., Syre, JC. (eds) PARLE '89 Parallel Architectures and Languages Europe. PARLE 1989. Lecture Notes in Computer Science, vol 366. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-51285-3_49
Download citation
DOI: https://doi.org/10.1007/3-540-51285-3_49
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-51285-1
Online ISBN: 978-3-540-46184-5
eBook Packages: Springer Book Archive