A GENTLE INTRODUCTION TO S-NET: TYPED STREAM PROCESSING AND DECLARATIVE COORDINATION OF ASYNCHRONOUS COMPONENTS
Abstract
We present the design of S-NET, a coordination language and component technology based on stream processing. S-NET achieves a near-complete separation between application code, written in a conventional programming language, and coordination code, written in S-NET itself. S-NET boxes integrate existing sequential code as stream-processing components into streaming networks, whose construction is based on algebraic formulae built out of four network combinators. Subtyping on the level of boxes and networks and a tailor-made inheritance mechanism achieve flexible software reuse.
References
- Dr. Dobb's Journal 30, (2005). Google Scholar
- Grelck, C, Shafarenko, A.: Report on S-Net: A Typed Stream Processing Language, Part I: Foundations, Record Types and Networks. Technical report, University of Hertfordshire, Department of Computer Science, Compiler Technology and Computer Architecture Group, Hatfield, England, United Kingdom (2006) . Google Scholar
- International Journal of Parallel Programming 34, 383 (2006), DOI: 10.1007/s10766-006-0018-x. Crossref, ISI, Google Scholar
-
H. Cai , Extending the S-Net Type System , Proceedings of the Æther-Morpheus Workshop From Reconfigurable to Self- Adaptive Computing (AMWAS'07) ( 2007 ) . Google Scholar -
C. Grelck , S. B. Scholz and A. Shafarenko , Coordinating Data Parallel SAC Programs with S-Net , Proceedings of the 21st IEEE International Parallel and Distributed Processing Symposium (IPDPS'07) ( IEEE Computer Society Press , Los Alamitos, California, USA , 2007 ) . Google Scholar - Acta Informatica 34, 491 (1997), DOI: 10.1007/s002360050095. Crossref, ISI, Google Scholar
G. Kahn , The semantics of a simple language for parallel programming, Information Processing 74, Proc. IFIP Congress 74, ed.L. Rosenfeld (North-Holland, 1974) pp. 471–475. Google Scholar- Communications of the ACM 20, 519 (1977), DOI: 10.1145/359636.359715. Crossref, ISI, Google Scholar
- Proceedings of the IEEE 79, 1305 (1991), DOI: 10.1109/5.97300. Crossref, ISI, Google Scholar
- Science of Computer Programming 19, 87 (1992), DOI: 10.1016/0167-6423(92)90005-V. Crossref, ISI, Google Scholar
- Aerospace America 26 (2004). Google Scholar
P. Caspi and M. Pouzet , Synchronous Kahn networks, ICFP '96: Proceedings of the first ACM SIGPLAN international conference on Functional programming, ed.R. L. Wexelblat (1996) pp. 226–238. Google ScholarP. Caspi and M. Pouzet , A co-iterative characterization of synchronous stream functions, CMCS'98, First Workshop on Coalgebraic Methods in Computer Science Lisbon, eds.Bart Jacobs , Larry Moss , H. R. Rutten and J. (1998) pp. 1–21. Google ScholarK. Hammond and G. Michaelson , Domain-Specific Program Generation: International Seminar 3016 (Dagstuhl Castle, Germany, 2003) pp. 127–147. Google Scholar-
Michael I. Gordon , A stream compiler for communication-exposed architectures , Proceedings of the Tenth International Conference on Architectural Support for Programming Languages and Operating Systems ( 2002 ) . Google Scholar -
G. A. Papadopoulos and F. Arbab , Advances in Computers 46 ( Academic Press , 1998 ) . Google Scholar G. Florijn , T. Bessamusca and D. Greefhorst , Ariadne and HOPLa: flexible coordination of collaborative processes, First International Conference on Coordination Models, Languages and Applications (Coordination'96),LNCS , eds.P. Ciancarini and C. Hankin (1996) pp. 197–214. Google Scholar- J. Parallel Distrib. Comput. 10, 349 (1990), DOI: 10.1016/0743-7315(90)90035-N. Crossref, ISI, Google Scholar
- Journal of Functional Programming 15, 431 (2005), DOI: 10.1017/S0956796805005526. Crossref, ISI, Google Scholar
- Structures in Comp. Sci. 14, 329 (2004), DOI: 10.1017/S0960129504004153. Crossref, ISI, Google Scholar
G. Stefanescu , An algebraic theory of flowchart schemes, Proceedings 11th Colloquium on Trees in Algebra and Programming,LNCS , ed.P. Franchi-Zannettacci (Springer-Verlag, 1986) pp. 60–73. Google Scholar- Theoretical Computer Science 99 (2001), DOI: 10.1016/S0304-3975(99)00322-9. Google Scholar
- Grelck, C, Penczek, F.: Implementing S-Net: A Typed Stream Processing Language, Part I: Compilation, Code Generation and Deployment. Technical report, University of Hertfordshire, Department of Computer Science, Compiler Technology and Computer Architecture Group, Hatfield, England, United Kingdom (2007) . Google Scholar
- Penczek, F.: Design and Implementation of a Multithreaded Runtime System for the Stream Processing Language S-Net. Master's thesis, Institute of Software Technology and Programming Languages, University of Liibeck, Germany (2007) . Google Scholar
T. Bernard , A Microthreaded Architecture and its Compiler, Proceedings of the 19th International Conference on Architecture of Computing Systems (ARCS'06), eds.M. Arenez (Frankfurt/Main, 2006) pp. 326–342. Google Scholar


