Abstract
Synchronous languages, such as Signal, are best suited for the design of dependable real-time systems. Synchronous languages enable a very high-level specification and an extremely modular implementation of complex systems by structurally decomposing them into elementary synchronous processes. Separate compilation in reactive languages is however made a difficult issue by global safety requirements. To enable separate compilation of the functional components of reactive systems while preserving their global integrity, we introduce a module system for Signal. Just as data-types describe the invariants of program modules in functional languages, temporal and data-flow invariants interface Signal processes to their environment. In conventional languages, typing is the medium allowing the separate compilation of functions in a program. In Signal, the notion of conditional data-flow graph can similarly be used for separately compiling reactive processes and for assembling them in complex systems. Following this principle, we present the first design and implementation of a polymorphic type system and of a module system for the synchronous language Signal.
Chapter PDF
References
T. P. Amagbegnon, L. Besnard and P. Le Guernic. Implementation of the data-flow synchronous language Signal. In Proceedings of the 1995's ACM Conference on Programming Language Design and Implementation, p. 163–173. ACM, 1995.
A. Benveniste, P. Le Guernic and C. Jacquemot. Synchronous programming with events and relations: the Signal language and its semantics. In Science of Computer Programming, v. 16, p. 103–149, 1991.
G. Berry and G. Gonthier. The Esterel synchronous programming language: design, semantics, implementation. In Science of Computer Programming, v. 19, p. 87–152, 1992.
N. Halbwachs, P. Caspi, P. Raymond and D. Pilaud. The synchronous data-flow programming language Lustre. In Proceedings of the IEEE, v. 79(9). IEEE Press, 1991.
D. Harel and A. Naamad. The Statemate semantics of Statecharts. I-Logix, 1995.
Thierry Gautier, Paul Le Guernic, and François Dupont. Signal v4: manuel de référence. Technical report n. 832. IRISA, 1994.
D. Nowak, Talpin, J.-P., and Gautier, T. Un systeme de modules avancé pour Signal. Rapport de recherche n. ??, 1997. (To appear, available from nowak@irisa.fr).
R. Milner, M. Tofte, R. Harper. The definition of Standard Ml. MIT Press, 1990.
M. Tofte. Principal signatures for higher-order program modules. In Proceedings of the 1992's ACM Symposium Principles of Programming Languages, p. 189–199. ACM, 1992.
X. Leroy. Applicative functors and fully transparent higher-order modules. In Proceedings of the 1995's ACM Symposium Principles of Programming Languages. ACM, 1995.
O. Maffeïs and P. Le Guernic. Distributed implementation of Signal: scheduling and graph clustering. In Symposium on Formal Techniques in Real-Time and Fault-Tolerant Systems. Lecture Notes in Computer Science n. 863. Springer Verlag, 1994.
J.-P. Talpin. Reactive Types. In Conference on the Theory and Practice of Software Development (TAPSOFT'97). Lecture Notes in Computer Science. Springer Verlag, 1997.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Nowak, D., Talpin, JP., Gautier, T., Le Guernic, P. (1997). An Ml-like module system for the synchronous language Signal . In: Lengauer, C., Griebl, M., Gorlatch, S. (eds) Euro-Par'97 Parallel Processing. Euro-Par 1997. Lecture Notes in Computer Science, vol 1300. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0002880
Download citation
DOI: https://doi.org/10.1007/BFb0002880
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63440-9
Online ISBN: 978-3-540-69549-3
eBook Packages: Springer Book Archive