Abstract
This paper describes FrTime, an extension of Scheme designed for writing interactive applications. Inspired by functional reactive programming, the language embeds dynamic dataflow within a call-by-value functional language. The essence of the embedding is to make program expressions evaluate to nodes in a dataflow graph. This strategy eases importation of legacy code and permits incremental program construction. We have integrated FrTime with the DrScheme programming environment and have used it to develop several novel applications. We describe FrTime’s design and implementation in detail and present a formal semantics of its evaluation model.
This work is partially supported by NSF grant CCR-0305949.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
Acar, U.A., Blelloch, G.E., Harper, R.: Adaptive functional programming. In: ACM SIGPLAN Symposium on Principles of Programming Languages, pp. 247–259 (2002)
Benveniste, A., Guernic, P.L., Jacquemot, C.: Synchronous programming with events and relations: the signal language and its semantics. Science of Computer Programming 16(2), 103–149 (1991)
Berry, G.: The Foundations of Esterel. MIT Press, Cambridge (1998)
Caspi, P., Pilaud, D., Halbwachs, N., Plaice, J.A.: LUSTRE: A declarative language for programming synchronous systems. In: ACM SIGPLAN Symposium on Principles of Programming Languages, pp. 178–188 (1987)
Courtney, A.: Frappé: Functional reactive programming in Java. In: Practical Aspects of Declarative Languages, pp. 29–44 (2001)
Elliott, C.: Functional implementations of continuous modeled animation. In: Programming Languages: Implementations, Logics, and Programs, pp. 284–299 (1998)
Elliott, C., Hudak, P.: Functional reactive animation. In: ACM SIGPLAN International Conference on Functional Programming, pp. 263–277 (1997)
Felleisen, M., Hieb, R.: The revised report on the syntactic theories of sequential control and state. Theoretical Computer Science 102(2), 235–271 (1992)
Findler, R.B., Clements, J., Flanagan, C., Flatt, M., Krishnamurthi, S., Steckler, P., Felleisen, M.: DrScheme: A programming environment for Scheme. Journal of Functional Programming 12(2), 159–182 (2002)
Findler, R.B., Flatt, M.: Slideshow: Functional presentations. In: ACM SIGPLAN International Conference on Functional Programming, pp. 224–235 (2004)
Flatt, M., Findler, R.B., Krishnamurthi, S., Felleisen, M.: Programming languages as operating systems (or, Revenge of the Son of the LispMachine). In: ACMSIGPLAN International Conference on Functional Programming, pp. 138–147 (1999)
Hamon, G., Pouzet, M.: Modular Resetting of Synchronous Data-flow Programs. In: ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming, pp. 289–300 (2000)
Hughes, J.: Generalizing monads to arrows. Science of Computer Programming 37(1-3), 67–111 (2000)
Jones, S.P., Hughes, J. (eds.): Report on the Programming Language Haskell 98 (1999)
Marceau, G., Cooper, G.H., Krishnamurthi, S., Reiss, S.P.: A dataflow language for scriptable debugging. In: IEEE International Symposium on Automated Software Engineering, pp. 218–227 (2004)
Nilsson, H., Courtney, A., Peterson, J.: Functional reactive programming, continued. In: ACM SIGPLAN Workshop on Haskell, pp. 51–64 (2002)
Peterson, J., Trifonov, V., Serjantov, A.: Parallel functional reactive programming. In: Practical Aspects of Declarative Languages, pp. 16–31 (2000)
Wadge, W.W., Ashcroft, E.A.: Lucid, the Dataflow Programming Language. Academic Press, London (1985)
Wan, Z., Hudak, P.: Functional reactive programming from first principles. In: ACM Conference on Programming Language Design and Implementation, pp. 242–252 (2000)
Wan, Z., Taha, W., Hudak, P.: Real-time FRP. In: ACMSIGPLAN International Conference on Functional Programming, pp. 146–156 (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Cooper, G.H., Krishnamurthi, S. (2006). Embedding Dynamic Dataflow in a Call-by-Value Language. In: Sestoft, P. (eds) Programming Languages and Systems. ESOP 2006. Lecture Notes in Computer Science, vol 3924. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11693024_20
Download citation
DOI: https://doi.org/10.1007/11693024_20
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-33095-0
Online ISBN: 978-3-540-33096-7
eBook Packages: Computer ScienceComputer Science (R0)