Generation of dataflow graphical object code for the lapse programming language

  • J. R. Gurd
  • J. R. W. Glauert
  • C. C. Kirkham
Programming Languages Which Support Parallelism
Part of the Lecture Notes in Computer Science book series (LNCS, volume 111)


Of the many proposals for parallel computer architectures, dataflow systems offer perhaps the greatest potential parallelism at the hardware level. However, it is unreasonable to expect users to exploit this parallelism at such a low level, and it is necessary to provide high level programming facilities which allow the user the abstract freedom of expression he requires, whilst permitting efficient use of the hardware. It has been noticed that single-assignment languages are particularly well-suited to dataflow machines, yet exhibit most of the familiar, useful features of conventional high level languages. This paper considers some aspects of code generation from the single-assignment language Lapse for the Manchester prototype dataflow computer. The syntax of Lapse, which resembles Pascal, is introduced, and code generation templates are presented. Some possible optimisations of flowgraph code are discussed, particularly in the implementation of arrays.


Activation Name Dataflow Graph Parallel Hardware Firing Rule Single Assignment 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ackerman W.B. and Dennis J.B., VAL — A Value-Oriented Algorithmic Language, CSG Technical Report no.218, Lab. for Computer Science, M.I.T., June 1979.Google Scholar
  2. 2.
    Arvind and Gostelow K.P., A Computer Capable of Exchanging Processors for Time, Information Processing 77, North Holland, 1977, p849.Google Scholar
  3. 3.
    Arvind, Gostelow K.P. and Plouffe W., The Id Report: An Asynchronous Language and Computing Machine, Technical Report, Dept. of Information and Computer Science, Univ. of California, Irvine, May 1978.Google Scholar
  4. 4.
    Ashcroft E.A. and Wadge W.W., Lucid, a Nonprocedural Language with Iteration, Communications of the ACM, vol.20, no.7, July 1977, p519.zbMATHCrossRefGoogle Scholar
  5. 5.
    Brent R.P., The Parallel Evaluation of Arithmetic Expressions in Logarithmic Time, in Traub J.F. (ed.), Complexity of Sequential and Parallel Numerical Algorithms, Academic Press, 1973, p83.Google Scholar
  6. 6.
    Catto A.J., Gurd J.R. and Kirkham C.C., Nondeterministic Dataflow Programming, Proc. ACM Int. Computing Symposium on Systems Architecture, March 1981.Google Scholar
  7. 7.
    Chamberlin D.D., The Single-Assignment Approach to Parallel Processing, AFIPS FJCC, vol.39, 1971, p263.Google Scholar
  8. 8.
    Dennis J.B. and Misunas D.P., A Preliminary Architecture for a Basic Data Flow Processor, Second IEEE Symposium on Computer Architecture, Jan. 1975, p126.Google Scholar
  9. 9.
    Dennis J.B., Misunas D.P. and Leung C.K., A Highly Parallel Processor Using a Data Flow Machine Language, CSG Memo no.134, Lab. for Computer Science, M.I.T., Jan. 1977.Google Scholar
  10. 10.
    Dijkstra E.W., A Discipline of Programming, ch11, p94, Prentice-Hall, 1976.Google Scholar
  11. 11.
    Glauert J.R.W., A Single Assignment Language for Data Flow Computing, M.Sc. Dissertation, Dept. of Computer Science, Univ. of Manchester, Jan. 1978.Google Scholar
  12. 12.
    Gurd J.R. and Watson I., Data Driven System for High Speed Parallel Computing, Computer Design, vol.19, no.6, June 1980, p91, and vol.19 no.7, July 1980, p97.Google Scholar
  13. 13.
    Jensen K. and Wirth N., Pascal User Manual and Report, Springer-Verlag, 1975.Google Scholar
  14. 14.
    Miller R.E. and Rutledge J.D., Generating a Data Flow Model of a Program, IBM Technical Disclosure Bulletin, vol.8, no.11, April 1966, p1550.Google Scholar
  15. 15.
    Miranker G.S., Implementation of Procedures on a Class of Data Flow Processors, IEEE Int. Conf. on Parallel Processing, Aug. 1977, p77.Google Scholar
  16. 16.
    Plas A., et. al., LAU System Architecture: A Parallel Data Driven Processor Based on Single Assignment, IEEE Int. Conf. on Parallel Processing, Aug. 1976, p293.Google Scholar
  17. 17.
    Tesler L.G. and Enea H.J., A Language Design for Concurrent Processes, AFIPS SJCC, vol.32, 1968, p403.Google Scholar
  18. 18.
    Warren D.H.D. and Pereira L.M., Prolog — the Language and its Implementation Compared with Lisp, SIGPLAN Notices, vol.12, no.8, Aug. 1977, p109.CrossRefGoogle Scholar
  19. 19.
    Watson I. and Gurd J.R., A Prototype Data Flow Computer with Token Labelling, AFIPS NCC, vol.48, June 1979, p623.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1981

Authors and Affiliations

  • J. R. Gurd
    • 1
  • J. R. W. Glauert
    • 1
  • C. C. Kirkham
    • 1
  1. 1.Department of Computer ScienceUniversity of ManchesterManchesterEngland

Personalised recommendations