Skip to main content

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

Research Paper

  • Conference paper
  • First Online:
Trends in Functional Programming (TFP 2015)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 9547))

Included in the following conference series:

  • 491 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 34.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 44.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Bresenham, J.E.: Algorithm for computer control of a digital plotter. IBM Syst. J. 4(1), 25–30 (1965)

    Article  Google Scholar 

  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. 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. 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. 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

  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

    Chapter  Google Scholar 

  7. Hughes, J.: Programming with arrows. In: Vene, V., Uustalu, T. (eds.) AFP 2004. LNCS, vol. 3622, pp. 73–129. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  8. Liu, H., Cheng, E., Hudak, P.: Causal commutative arrows. J. Funct. Program. 21, 467–496 (2011). doi:10.1017/S0956796811000153

    Article  MathSciNet  MATH  Google Scholar 

  9. Loth, A.: Synthese von Kontrollfluss für eine Synchrone Datenflusssprache. Master’s thesis, Technische Universität Ilmenau (2015)

    Google Scholar 

  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

    Article  MATH  Google Scholar 

  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. Rodrigues, N.F., Barbosa, L.S.: Slicing functional programs by calculation. In: Beyond Program Slicing. Dagstuhl Seminar 05451 (2005)

    Google Scholar 

  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). https://www.wi.uni-muenster.de/sites/default/files/publications/arbeitsberichte/ab132.pdf

  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

    Google Scholar 

  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. 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. Weiser, M.: Program slicing. In: ICSE 1981, pp. 439–449. IEEE (1981)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Baltasar Trancón y Widemann .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics