Abstract
We use the concept of laminar flow, as opposed to turbulent flow, as a metaphor for the decomposition of well-behaved purely functional data-flow programs into largely independent parts, necessitated by aspects with different execution constraints. In the context of the total functional data-flow language Sig, we identify three distinct but methodologically related implementation challenges, namely multi-rate scheduling, declarative initialization, and conditional execution, and demonstrate how they can be solved orthogonally, by decomposition using the standard program transformation technique, slicing.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Bresenham, J.E.: Algorithm for computer control of a digital plotter. IBM Syst. J. 4(1), 25–30 (1965)
Caspi, P., Pouzet, M.: Lucid Synchrone, a functional extension of Lustre. Technical report, Université Pierre et Marie Curie, Laboratoire LIP6 (2000)
Clarke, E.M., Fujita, M., Rajan, S.P., Reps, T., Shankar, S., Teitelbaum, T.: Program slicing of hardware description languages. Technical report, Carnegie Mellon University (1999)
Ganapathy, V., Ramesh, S.: Slicing synchronous reactive programs. SLAP 2002, ENTCS 65(5), 50–64 (2002). doi:10.1016/S1571-0661(05)80440-2
Hack, S.: Register Allocation for Programs in SSA Form. Ph.D. Thesis, Universität Karlsruhe, (2007). http://digbib.ubka.uni-karlsruhe.de/volltexte/documents/6532
Hudak, P., Courtney, A., Nilsson, H., Peterson, J.: Arrows, robots, and functional reactive programming. In: Jeuring, J., Jones, S.L.P. (eds.) AFP 2002. LNCS, vol. 2638, pp. 159–187. Springer, Heidelberg (2003). doi:10.1007/978-3-540-44833-4_6
Hughes, J.: Programming with arrows. In: Vene, V., Uustalu, T. (eds.) AFP 2004. LNCS, vol. 3622, pp. 73–129. Springer, Heidelberg (2005)
Liu, H., Cheng, E., Hudak, P.: Causal commutative arrows. J. Funct. Program. 21, 467–496 (2011). doi:10.1017/S0956796811000153
Loth, A.: Synthese von Kontrollfluss für eine Synchrone Datenflusssprache. Master’s thesis, Technische Universität Ilmenau (2015)
Orlarey, Y., Fober, D., Letz, S.: Syntactical and semantical aspects of Faust. Soft Comput. 8(9), 623–632 (2004). doi:10.1007/s00500-004-0388-1
Petricek, T., Mycroft, A., Syme, D.: Extending monads with pattern matching. In: Haskell Symposium 2011, pp. 1–12. ACM (2011). doi:10.1145/2034675.2034677
Rodrigues, N.F., Barbosa, L.S.: Slicing functional programs by calculation. In: Beyond Program Slicing. Dagstuhl Seminar 05451 (2005)
Trancón y Widemann, B., Lepper, M.: tSig: Towards semantics for a functional synchronous signal language. In: KPS 2011, Arbeitsbericht des Instituts für Wirtschaftsinformatik 132, pp. 163–168. Westfälische Wilhelms-Universität Münster (2011). https://www.wi.uni-muenster.de/sites/default/files/publications/arbeitsberichte/ab132.pdf
Trancón y Widemann, B., Lepper, M.: Foundations of total functional dataflow programming. In: MSFP 2014, EPTCS 153, pp. 143–167 (2014). doi:10.4204/EPTCS.153.10
Trancón y Widemann, B., Lepper, M.: Sound, soundness: practical total functional data-flow programming. In: FARM 2014, pp. 35–36. ACM (2014). Demo abstract. doi:10.1145/2633638.2633644
Trancón y Widemann, B., Lepper, M.: The Shepard tone, higher-order multi-rate synchronous data-flow programming in Sig. In: FARM 2015, pp. 6–14. ACM (2015). doi:10.1145/2808083.2808086
Weiser, M.: Program slicing. In: ICSE 1981, pp. 439–449. IEEE (1981)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Trancón y Widemann, B., Lepper, M. (2016). Laminar Data Flow: On the Role of Slicing in Functional Data-Flow Programming. In: Serrano, M., Hage, J. (eds) Trends in Functional Programming. TFP 2015. Lecture Notes in Computer Science(), vol 9547. Springer, Cham. https://doi.org/10.1007/978-3-319-39110-6_5
Download citation
DOI: https://doi.org/10.1007/978-3-319-39110-6_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-39109-0
Online ISBN: 978-3-319-39110-6
eBook Packages: Computer ScienceComputer Science (R0)