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
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
A. Aho, R. Sethi, and J. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, 1986.
E. A. Ashcroft and W. W. Wadge. Lucid, the data-flow programming language. Academic Press, 1985.
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.
A. Bouajjani, J. C. Fernandez, and N. Halbwachs. Minimal model generation. In Workshop on Computer-Aided Verification, june 1990.
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.
R. E. Bryant. Graph-based algorithms for boolean function manipulation. IEEE Transactions on Computers, C-35(8), 1986.
J. A. Brzozowski. Derivative of regular expressions. JACM, 11(4), 1964.
G. Berry and R. Sethi. From regular expressions to deterministic automata. TCS, 25(1), 1987.
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.
J. C. Fernandez. An implementation of an efficient algorithm for bisimulation equivalence. Science of Computer Programming, 13(2–3), may 1990.
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.
G. Kahn. The semantics of a simple language for parallel programming. In IFIP 74, North Holland, 1974.
J. R. Mc Graw. The Val language: description and analysis. TOPLAS, 4(1), january 1982.
J. A. Plaice. Sémantique et compilation de Lustre, un langage déclaratif synchrone. Thesis, Institut National Polytechnique de Grenoble, 1988.
G. D. Plotkin. A structural approach to operational semantics. Lecture Notes, Aarhus University, 1981.
N.S. Prywes and A. Pnueli. Compilation of nonprocedural specifications into computer programs. IEEE Transactions on Software Engineering, SE-9(3), may 1983.
J. A. Plaice and J-B. Saint. The Lustre-Esterel portable format. 1987. Unpublished Report, INRIA, Sophia Antipolis.
R. Paige and R. Tarjan. Three partition refinement algorithms. SIAM J. Comput., 16(6), 1987.
Author information
Authors and Affiliations
Editor information
Rights 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