ABSTRACT
We present the graph operational semantics approach used for defining NiMo nets execution, which mix lazy, data-driven and a weak form of eager evaluation, all in parallel. NiMo is a totally graphic language from the family of higher order typed languages but with a strong data-flow inspiration. Programs are process networks that evolve showing the full state at each execution step and can be dynamically changed or completed. In NiMo parallelization is implicit. The conjunction of two kinds of tags determine which processes are able to act in the same execution step. According to their tag, processes can behave in five modes that can be globally or locally set for each one, and can be also dynamically changed. Combining modes gives a very flexible way to experiment different strategies to increase processor usage, decrease channel population, and achieve subnet synchronization. Together with symbolic execution it also provides the means for generative and multi-stage programming.
- AGG Home page. Agg home page, 2009. URL http://user.cs.tu-berlin.de/~gragra/agg/.Google Scholar
- Clem Baker-Finch, David J. King, and Phil Trinder. An operational semantics for parallel lazy evaluation. In ICFP '00: Proceedings of the fifth ACM SIGPLAN international conference on Functional programming, pages 162--173, New York, NY, USA, 2000. ACM. ISBN 1-58113-202-6. doi: http://doi.acm.org/10.1145351240.351256. Google ScholarDigital Library
- Chihhong Patrick Cheng, Teale Fristoe, and Edward A. Lee. Applied verification: The ptolemy approach. Technical Report UCB/EECS-2008-41, EECS Department, University of California, Berkeley, Apr 2008. URL http://www.eecs.berkeley.edu/Pubs/TechRpts/2008/EECS-2008-41.html.Google Scholar
- S. Clerici, A. Duch, and C. Zoltan. Implementing static synchronus sensor fields using nimo, 2009. URL http://www.lsi.upc.edu/dept/techreps/.Google Scholar
- Silvia Clerici and Cristina Zoltan. Graphical type inference. a graph grammar definition. Technical Report LSI-07-24-R, Dept. Llenguatges i Sistemes Informàtics, Universitat Politècnica de Catalunya, July 2007. URL http://www.lsi.upc.edu/dept/techreps/llistat_detallat.php?id=970.Google Scholar
- Silvia Clerici and Cristina Zoltan. A graphic functional-dataflow language. In Hans-Wolfgang Loidl, editor, Trends in Functional Programming, volume 5 of Trends in Functional Programming, pages 129--144. Intellect, 2004. ISBN 1-84150-144-1.Google Scholar
- Silvia Clerici, Cristina Zoltan, Guillermo Prestigiacomo, and Javier García Sanjulián. Diseño de un entorno integrado de desarrollo para nimo. In VI Jornadas de programación y lenguajes-Prole 2006, 2006.Google Scholar
- Laurent Dami and Didier Vallet. Higher-order functional composition in visual form, 1996. URL http://cuiwww.unige.ch/OSG/publications/OO-articles/TechnicalReports/96/ho-visual.ps.Z.Google Scholar
- John Davis II, Christopher Hylands, Bart Kienhuis, Edward A. Lee, Jie Liu, Xiaojun Liu, Lukito Muliadi, Steve Neuendorffer, Jeff Tsay, Brian Vogel, and Yuhong Xiong. Heterogeneous concurrent modeling and design in java. Technical Report Technical Memorandum UCB/ERL M01/12, Electronics Research Laboratory, Dept of EECS, University of California at Berkeley, March 2001. URL http://ptolemy.eecs.berkeley.edu/.Google Scholar
- Juan de Lara, Claudia Ermel, Gabriele Taentzer, and Karsten Ehrig. Parallel graph transformation for model simulation applied to timed transition petri nets. Electr. Notes Theor. Comput. Sci., 109:17--29, 2004. Google ScholarDigital Library
- Stephan Ellner and Walid Taha. The semantics of graphical languages. In PEPM'07: Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, pages 122--133, New York, NY, USA, 2007. ACM. ISBN 978-1-59593-620-2. doi: http://doi.acm.org/10.1145/1244381.1244402. Google ScholarDigital Library
- Maude Home Page. Maude, 2009. URL http://maude.cs.uiuc.edu/.Google Scholar
- Masaki Nakamura and Kazuhiro Ogata. The evaluation strategy for head normal form with and without on-demand flags, 2001.Google Scholar
- Grzegorz Rozenberg, editor. Handbook of Graph Grammars and Computing by Graph Transformations, Volume 1: Foundations, 1997. World Scientific. ISBN 9810228848. Google ScholarDigital Library
- Walid Taha. A gentle introduction to multi-stage programming. In Domain-Specific Program Generation, pages 30--50, 2003.Google Scholar
Index Terms
- A dynamically customizable process-centered evaluation model
Recommendations
Pycket: a tracing JIT for a functional language
ICFP '15We present Pycket, a high-performance tracing JIT compiler for Racket. Pycket supports a wide variety of the sophisticated features in Racket such as contracts, continuations, classes, structures, dynamic binding, and more. On average, over a standard ...
Pycket: a tracing JIT for a functional language
ICFP 2015: Proceedings of the 20th ACM SIGPLAN International Conference on Functional ProgrammingWe present Pycket, a high-performance tracing JIT compiler for Racket. Pycket supports a wide variety of the sophisticated features in Racket such as contracts, continuations, classes, structures, dynamic binding, and more. On average, over a standard ...
Exception Handlers in Functional Programming Languages
Constructs for expressing exception handling can greatly help to avoid clutter in code by allowing the programmer to separate the code to handle unusual situations from the code for the normal case. The author proposes a new approach to embed exception ...
Comments