Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/1886619.1886638guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Lucy-n: a n-synchronous extension of Lustre

Published: 21 June 2010 Publication History

Abstract

Synchronous functional languages such as Lustre or Lucid Synchrone define a restricted class of Kahn Process Networks which can be executed with no buffer. Every expression is associated to a clock indicating the instants when a value is present. A dedicated type system, the clock calculus, checks that the actual clock of a stream equals its expected clock and thus does not need to be buffered. The n-synchrony relaxes synchrony by allowing the communication through bounded buffers whose size is computed at compile-time. It is obtained by extending the clock calculus with a subtyping rule which defines buffering points.
This paper presents the first implementation of the n-synchronous model inside a Lustre-like language called Lucy-n. The language extends Lustre with an explicit buffer construct whose size is automatically computed during the clock calculus. This clock calculus is defined as an inference type system and is parametrized by the clock language and the algorithm used to solve subtyping constraints. We detail here one algorithm based on the abstraction of clocks, an idea originally introduced in [5]. The paper presents a simpler, yet more precise, clock abstraction for which the main algebraic properties have been proved in Coq. Finally, we illustrate the language on various examples including a video application.

References

[1]
Buck, J.T.: Scheduling Dynamic Dataflow Graphs with Bounded Memory Using the Token Flow Model. Ph.D. thesis, EECS Department, University of California, Berkeley (1993).
[2]
Caspi, P., Pilaud, D., Halbwachs, N., Plaice, J.A.: Lustre: a declarative language for real-time programming. In: POPL '87: Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, pp. 178-188. ACM, New York (1987).
[3]
Caspi, P., Pouzet, M.: Synchronous kahn networks. In: ACM SIGPLAN International Conference on Functional Programming, pp. 226-238. ACM Press, New York (1996).
[4]
Cohen, A., Duranton, M., Eisenbeis, C., Pagetti, C., Plateau, F., Pouzet, M.: N- Synchronous Kahn Networks: a Relaxed Model of Synchrony for Real-Time Systems. In: ACM International Conference on Principles of Programming Languages (POPL'06), pp. 180-193. ACM Press, New York (2006).
[5]
Cohen, A., Mandel, L., Plateau, F., Pouzet, M.: Abstraction of clocks in synchronous data-flow systems. In: Ramalingam, G. (ed.) APLAS 2008. LNCS, vol. 5356, pp. 237-254. Springer, Heidelberg (2008).
[6]
Colaço, J.L., Pouzet, M.: Clocks as First Class Abstract Types. In: Alur, R., Lee, I. (eds.) EMSOFT 2003. LNCS, vol. 2855, pp. 134-155. Springer, Heidelberg (2003).
[7]
Glpk: Gnu linear programming kit.
[8]
Kahn, G.: The semantics of a simple language for parallel programming. In: Rosenfeld, J.L. (ed.) Information processing, pp. 471-475. North Holland, Amsterdam (August 1974).
[9]
Lee, E., Messerschmitt, D.: Synchronous dataflow. IEEE Trans. Comput. 75(9), 1235-1245 (1987).
[10]
Parks, T.M., Pino, J.L., Lee, E.A.: A comparison of synchronous and cycle-static dataflow. In: ASILOMAR '95: Proceedings of the 29th Asilomar Conference on Signals, Systems and Computers, vol. 2, p. 204. IEEE Computer Society, Washington (1995).
[11]
Parks, T.M.: Bounded scheduling of process networks. Ph.D. thesis, EECS Department, University of California, Berkeley, Berkeley, CA, USA (1995).
[12]
Plateau, F.: Modèle n-synchrone pour la programmation de réseaux de Kahn à mémoire bornée. Ph.D. thesis, Université Paris-Sud 11 (January 2010).
[13]
Pouzet, M.: Lucid Synchrone, version 3. Tutorial and reference manual. Université Paris-Sud, LRI (April 2006).
[14]
Thies, W., Karczmarek, M., Amarasinghe, S.P.: Streamit: A language for streaming applications. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, pp. 179-196. Springer, Heidelberg (2002).

Cited By

View all
  • (2017)Machine fusionProceedings of the 19th International Symposium on Principles and Practice of Declarative Programming10.1145/3131851.3131865(139-150)Online publication date: 9-Oct-2017
  • (2016)Computing latency of a real-time system modeled by Synchronous Dataflow GraphProceedings of the 24th International Conference on Real-Time Networks and Systems10.1145/2997465.2997479(87-96)Online publication date: 19-Oct-2016
  • (2016)Polarized data parallel data flowProceedings of the 5th International Workshop on Functional High-Performance Computing10.1145/2975991.2975999(52-57)Online publication date: 8-Sep-2016
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
MPC'10: Proceedings of the 10th international conference on Mathematics of program construction
June 2010
426 pages
ISBN:3642133207
  • Editors:
  • Claude Bolduc,
  • Jules Desharnais,
  • Béchir Ktari

Sponsors

  • l'Universite Laval: l'Universite Laval
  • Université de Montréal

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 21 June 2010

Author Tags

  1. process networks
  2. synchronous model
  3. type systems

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 03 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2017)Machine fusionProceedings of the 19th International Symposium on Principles and Practice of Declarative Programming10.1145/3131851.3131865(139-150)Online publication date: 9-Oct-2017
  • (2016)Computing latency of a real-time system modeled by Synchronous Dataflow GraphProceedings of the 24th International Conference on Real-Time Networks and Systems10.1145/2997465.2997479(87-96)Online publication date: 19-Oct-2016
  • (2016)Polarized data parallel data flowProceedings of the 5th International Workshop on Functional High-Performance Computing10.1145/2975991.2975999(52-57)Online publication date: 8-Sep-2016
  • (2016)Icicle: write once, run onceProceedings of the 5th International Workshop on Functional High-Performance Computing10.1145/2975991.2975992(2-8)Online publication date: 8-Sep-2016
  • (2013)Liveness evaluation of a cyclo-static DataFlow graphProceedings of the 50th Annual Design Automation Conference10.1145/2463209.2488736(1-7)Online publication date: 29-May-2013
  • (2012)Scheduling and buffer sizing of n-synchronous systemsProceedings of the 11th international conference on Mathematics of Program Construction10.1007/978-3-642-31113-0_6(74-101)Online publication date: 25-Jun-2012
  • (2011)Static scheduling of latency insensitive designs with Lucy-nProceedings of the International Conference on Formal Methods in Computer-Aided Design10.5555/2157654.2157681(171-175)Online publication date: 30-Oct-2011
  • (2011)Modeling adaptive streaming applications with parameterized polyhedral process networksProceedings of the 48th Design Automation Conference10.1145/2024724.2024752(116-121)Online publication date: 5-Jun-2011

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media