Skip to main content

Generating efficient code from data-flow programs

  • Session: Compiler Construction II
  • Conference paper
  • First Online:
Book cover Programming Language Implementation and Logic Programming (PLILP 1991)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 528))

Abstract

This paper presents the techniques applied in compiling the synchronous data-flow language Lustre. The most original technique consists in synthesising an efficient control structure, by simulating the behavior of boolean variables at compile-time. Here, the techniques are explained on a small subset of Lustre.

This work was partially supported by ESPRIT-BRA Project “SPEC”, by PRC-C3 (CNRS) and by a contract from Merlin-Gerin

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. Aho, R. Sethi, and J. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, 1986.

    Google Scholar 

  2. E. A. Ashcroft and W. W. Wadge. Lucid, the data-flow programming language. Academic Press, 1985.

    Google Scholar 

  3. J-L. Bergerand, P. Caspi, N. Halbwachs, and J. Plaice. Automatic control systems programming using a real-time declarative language. In IFAC/IFIP Symp. 'SOCOCO 86, may 1986.

    Google Scholar 

  4. A. Bouajjani, J. C. Fernandez, and N. Halbwachs. Minimal model generation. In Workshop on Computer-Aided Verification, june 1990.

    Google Scholar 

  5. G. Berry and G. Gonthier. The synchronous programming language Esterel, design, semantics, implementation. Technical Report 327, INRIA, 1985. to appear in Science of Computer Programming.

    Google Scholar 

  6. R. E. Bryant. Graph-based algorithms for boolean function manipulation. IEEE Transactions on Computers, C-35(8), 1986.

    Google Scholar 

  7. J. A. Brzozowski. Derivative of regular expressions. JACM, 11(4), 1964.

    Google Scholar 

  8. G. Berry and R. Sethi. From regular expressions to deterministic automata. TCS, 25(1), 1987.

    Google Scholar 

  9. P. Caspi, D. Pilaud, N. Halbwachs, and J. Plaice. Lustre: a declarative language for programming synchronous systems. In 14th ACM Symposium on Principles of Programming Languages, january 1987.

    Google Scholar 

  10. J. C. Fernandez. An implementation of an efficient algorithm for bisimulation equivalence. Science of Computer Programming, 13(2–3), may 1990.

    Google Scholar 

  11. N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The synchronous dataflow programming language Lustre. Proceedings of the IEEE, Special Issue on Synchronous Programming, To appear, 1991.

    Google Scholar 

  12. G. Kahn. The semantics of a simple language for parallel programming. In IFIP 74, North Holland, 1974.

    Google Scholar 

  13. J. R. Mc Graw. The Val language: description and analysis. TOPLAS, 4(1), january 1982.

    Google Scholar 

  14. J. A. Plaice. Sémantique et compilation de Lustre, un langage déclaratif synchrone. Thesis, Institut National Polytechnique de Grenoble, 1988.

    Google Scholar 

  15. G. D. Plotkin. A structural approach to operational semantics. Lecture Notes, Aarhus University, 1981.

    Google Scholar 

  16. N.S. Prywes and A. Pnueli. Compilation of nonprocedural specifications into computer programs. IEEE Transactions on Software Engineering, SE-9(3), may 1983.

    Google Scholar 

  17. J. A. Plaice and J-B. Saint. The Lustre-Esterel portable format. 1987. Unpublished Report, INRIA, Sophia Antipolis.

    Google Scholar 

  18. R. Paige and R. Tarjan. Three partition refinement algorithms. SIAM J. Comput., 16(6), 1987.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jan Maluszyński Martin Wirsing

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Halbwachs, N., Raymond, P., Ratel, C. (1991). Generating efficient code from data-flow programs. In: Maluszyński, J., Wirsing, M. (eds) Programming Language Implementation and Logic Programming. PLILP 1991. Lecture Notes in Computer Science, vol 528. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54444-5_100

Download citation

  • DOI: https://doi.org/10.1007/3-540-54444-5_100

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-54444-9

  • Online ISBN: 978-3-540-38362-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics