ABSTRACT
We address the design of distributed systems with synchronous dataflow programming languages. As modular design entails handling both architectural and functional modularity, our first contribution is to extend an existing synchronous dataflow programming language with primitives allowing the description of a distributed architecture and the localization of some expressions onto some processors. We also present a distributed semantics to formalize the distributed execution of synchronous programs. Our second contribution is to provide a type system, in order to infer the localization of non-annotated values by means of type inference and to ensure, at compilation time, the consistency of the distribution. Our third contribution is to provide a type-directed projection operation to obtain automatically, from a centralized typed program, the local program to be executed by each computing resource. The type system as well as the automatic distribution mechanism has been fully implemented in the compiler of an existing synchronous data-flow programming language.
- Lucid synchrone v3. www.lri.fr/~pouzet/lucid-synchrone.Google Scholar
- Architecture analysis & design language (AADL). SAE Standard (AS5506), Nov. 2004.Google Scholar
- P. Aubry and P. Le Guernic. On the desynchronization of synchronous applications. In 11th International Conference on Systems Engineering, ICSE'96, Las Vegas, USA, June 1996.Google Scholar
- H. E. Bal, J. G. Steiner, and A. S. Tanenbaum. Programming languages for distributed computing systems. ACM Computing Surveys, 21(3):261--322, 1989. Google Scholar
Digital Library
- A. Benveniste, P. Caspi, S. Edwards, N. Halbwachs, P. L. Guernic, and R. de Simone. The synchronous languages twelve years later. Proc. of the IEEE, Special issue on embedded systems, 91(1):64--83, Jan. 2003.Google Scholar
Cross Ref
- B. Caillaud, P. Caspi, A. Girault, and C. Jard. Distributing automata for asynchronous networks of processors. European Journal of Automated Systems, 31(3):503--524, 1997.Google Scholar
- P. Caspi, A. Curic, A. Maignan, C. Sofronis, S. Tripakis, and P. Niebert. From Simulink to Scade/Lustre to TTA: A layered approach for distributed embedded applications. In International Conference on Languages, Compilers, and Tools for Embedded Systems, LCTES'03, San Diego, USA, June 2003. ACM. Google Scholar
Digital Library
- P. Caspi, A. Girault, and D. Pilaud. Automatic distribution of reactive systems for asynchronous networks of processors. IEEE Trans. on Software Engineering, 25(3):416--427, May 1999. Google Scholar
Digital Library
- J.-L. Colaço, A. Girault, G. Hamon, and M. Pouzet. Towards a Higher-order Synchronous Data-flow Language. In ACM Fourth International Conference on Embedded Software (EMSOFT'04), Pisa, Italy, september 2004. Google Scholar
Digital Library
- F. Jondral. Software-defined radio -- basics and evolution to cognitive radio. EURASIP Journal on Wireless Communications and Networking, 3:275--283, 2005. Google Scholar
Digital Library
- G. Kahn. The semantics of a simple language for parallel programming. In J. L. Rosenfeld, editor, Information Processing '74: Proceedings of the IFIP Congress, pages 471--475, New York, NY, 1974. North-Holland.Google Scholar
- B. Liblit and A. Aiken. Type systems for distributed data structures. In POPL '00: Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 199--213, New York, NY, USA, 2000. ACM Press. Google Scholar
Digital Library
- N. Liogkas, B. MacIntyre, E. D. Mynatt, Y. Smaragdakis, E. Tilevich, and S. Voida. Automatic partitioning: A promising approach to prototyping ubiquitous computing applications. IEEE Pervasive Computing, 2004. Google Scholar
Digital Library
- O. Maffeïs. Ordonnancements de graphes de flots synchrones ; Application à la mise en æuvre de Signal. Phd thesis, University of Rennes I, Rennes, France, Jan. 1993.Google Scholar
- J. Mitola. The software radio architecture. IEEE Communications Magazine, 33(5):26--38, May 1995. Google Scholar
Digital Library
- M. Neubauer and P. Thiemann. From sequential programs to multi-tier applications by program transformation. In POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 221--232, New York, NY, USA, 2005. ACM Press. Google Scholar
Digital Library
- P. Sewell, J. J. Leifer, K. Wansbrough, F. Z. Nardelli, M. Allen- Williams, P. Habouzit, and V. Vafeiadis. Acute: High-level programming language design for distributed computation. In Proceedings of ICFP 2005: International Conference on Functional Programming (Tallinn), Sept. 2005. Google Scholar
Digital Library
- Y. Sorel. SynDEx: System-level cad software for optimizing distributed real-time embedded systems. Journal ERCIM News, 59:68--69, Oct. 2004.Google Scholar
- J.-P. Talpin and P. Jouvelot. Polymorphic type, region and effect inference. Journal of Functional Programming, 2(3), 1992.Google Scholar
Cross Ref
- M. Ward and H. Zedan. Slicing as a program transformation. ACM Transactions on Programming Languages and Systems (TOPLAS), 29(2):7, 2007. Google Scholar
Digital Library
Index Terms
A type system for the automatic distribution of higher-order synchronous dataflow programs
Recommendations
A type system for the automatic distribution of higher-order synchronous dataflow programs
LCTES '08We address the design of distributed systems with synchronous dataflow programming languages. As modular design entails handling both architectural and functional modularity, our first contribution is to extend an existing synchronous dataflow ...
Towards a higher-order synchronous data-flow language
EMSOFT '04: Proceedings of the 4th ACM international conference on Embedded softwareThe paper introduces a higher-order synchronous data-flow language in which communication channels may themselves transport programs. This provides a mean to dynamically reconfigure data-flow processes. The language comes as a natural and strict ...
PolyAML: a polymorphic aspect-oriented functional programming language
Proceedings of the tenth ACM SIGPLAN international conference on Functional programmingThis paper defines PolyAML, a typed functional, aspect-oriented programming language. The main contribution of Poly<SMALL>AML</SMALL> is the seamless integration of polymorphism, run-time type analysis and aspect-oriented programming language features. ...







Comments