Laminar Data Flow: On the Role of Slicing in Functional Data-Flow Programming

Research Paper
  • Baltasar Trancón y Widemann
  • Markus Lepper
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9547)


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.


Basic Block Local Schedule Local Scheduler Execution Platform Clock Tick 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Bresenham, J.E.: Algorithm for computer control of a digital plotter. IBM Syst. J. 4(1), 25–30 (1965)CrossRefGoogle Scholar
  2. 2.
    Caspi, P., Pouzet, M.: Lucid Synchrone, a functional extension of Lustre. Technical report, Université Pierre et Marie Curie, Laboratoire LIP6 (2000)Google Scholar
  3. 3.
    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)Google Scholar
  4. 4.
    Ganapathy, V., Ramesh, S.: Slicing synchronous reactive programs. SLAP 2002, ENTCS 65(5), 50–64 (2002). doi: 10.1016/S1571-0661(05)80440-2 Google Scholar
  5. 5.
    Hack, S.: Register Allocation for Programs in SSA Form. Ph.D. Thesis, Universität Karlsruhe, (2007).
  6. 6.
    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 CrossRefGoogle Scholar
  7. 7.
    Hughes, J.: Programming with arrows. In: Vene, V., Uustalu, T. (eds.) AFP 2004. LNCS, vol. 3622, pp. 73–129. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  8. 8.
    Liu, H., Cheng, E., Hudak, P.: Causal commutative arrows. J. Funct. Program. 21, 467–496 (2011). doi: 10.1017/S0956796811000153 MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    Loth, A.: Synthese von Kontrollfluss für eine Synchrone Datenflusssprache. Master’s thesis, Technische Universität Ilmenau (2015)Google Scholar
  10. 10.
    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 CrossRefzbMATHGoogle Scholar
  11. 11.
    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
  12. 12.
    Rodrigues, N.F., Barbosa, L.S.: Slicing functional programs by calculation. In: Beyond Program Slicing. Dagstuhl Seminar 05451 (2005)Google Scholar
  13. 13.
    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).
  14. 14.
    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
  15. 15.
    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
  16. 16.
    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
  17. 17.
    Weiser, M.: Program slicing. In: ICSE 1981, pp. 439–449. IEEE (1981)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  1. 1.Technische Universität IlmenauIlmenauGermany
  2. 2.Semantics GmbHBerlinGermany

Personalised recommendations