Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1069774.1069782acmconferencesArticle/Chapter ViewAbstractPublication PagesppdpConference Proceedingsconference-collections
Article

ReactiveML: a reactive extension to ML

Published: 11 July 2005 Publication History

Abstract

We present ReactiveML, a programming language dedicated to the implementation of complex reactive systems as found in graphical user interfaces, video games or simulation problems. The language is based on the reactive model introduced by Boussinot. This model combines the so-called synchronous model found in Esterel which provides instantaneous communication and parallel composition with classical features found in asynchronous models like dynamic creation of processes.The language comes as a conservative extension of an existing call-by-value ML language and it provides additional constructs for describing the temporal part of a system. The language receives a behavioral semantics á la Esterel and a transition semantics describing precisely the interaction between ML values and reactive constructs. It is statically typed through a Milner type inference system and programs are compiled into regular ML programs. The language has been used for programming several complex simulation problems (e.g., routing protocols in mobile ad-hoc networks).

References

[1]
R. Acosta-Bermejo. Reactive operating system, reactive java objects. In NOTERE'2000, Paris, November 2000. ENST.
[2]
R. Acosta-Bermejo. Rejo Langage d'Objets Réactifs et d'Agents. PhD thesis, Ecole des Mines de Paris, 2003.
[3]
F. Benbadis, M. Dias de Amorim, and S. Fdida. ELIP: Embedded location information protocol. In IFIP Networking 2005 Conference, 2005.
[4]
A. Benveniste, P. Caspi, S. Edwards, N. Halbwachs, P. Le Guernic, and R. de Simone. The Synchronous Languages Twelve Years Later. Proceedings of the IEEE, 2003.
[5]
G. Berry. The constructive semantics of esterel, 1998.
[6]
G. Boudol. ULM a core programming model for global computing. In Proceedings of the European Symposium on Programming, 2004.
[7]
F. Boussinot. Reactive C: An extension of C to program reactive systems. Software Practice and Experience, 21(4):401--428, Apr 1991.
[8]
F. Boussinot. Concurrent programming with Fair Threads: The LOFT language, 2003.
[9]
F. Boussinot. FairThreads: mixing cooperative and preemptive threads in C. Research report 5039, INRIA, 2003.
[10]
F. Boussinot. Reactive programming of cellular automata. Technical Report 5183, INRIA, 2004.
[11]
F. Boussinot and R. de Simone. The SL synchronous language. Software Engineering, 22(4):256--266, 1996.
[12]
F. Boussinot and J-F. Susini. The sugarcubes tool box - a reactive java framework. Software Practice and Experience, 28(14):1531--1550, 1998.
[13]
F. Boussinot, J-F. Susini, F. Dang Tran, and L. Hazard. A reactive behavior framework for dynamic virtual worlds. In Proceedings of the sixth international conference on 3D Web technology, pages 69--75. ACM Press, 2001.
[14]
P. Caspi and M. Pouzet. Synchronous kahn networks. In ACM SIGPLAN International Conference on Functional Programming, Philadelphia, Pensylvania, May 1996.
[15]
N. Halbwachs, P. Raymond, and C. Ratel. Generating efficient code from data-flow programs. In Third International Symposium on Programming Language Implementation and Logic Programming, Passau (Germany), August 1991.
[16]
L. Hazard, J-F. Susini, and F. Boussinot. The Junior reactive kernel. Research report 3732, INRIA, 1999.
[17]
E. Jahier, P. Raymond, and P. Baufreton. Case studies with Lurette V2. In Proceedings of the First International Symposium on Leveraging Applications of Formal Method, 2004.
[18]
G. Kahn. The semantics of a simple language for parallel programming. In IFIP 74 Congress. North Holland, Amsterdam, 1974.
[19]
X. Leroy. The Objective Caml system release 3.08. Documentation and user's manual. INRIA, 2004.
[20]
L. Mandel and F. Benbadis. Simulation of Mobile Ad hoc Network Protocols in ReactiveML. In Synchronous Languages, Applications, and Programming, Edinburgh, Scotland, April 2005. ENTCS.
[21]
L. Mandel and M. Pouzet. ReactiveML, a reactive extension to ML (extended version). http://www-spi.lip6.fr/~mandel/rml.
[22]
R. Milner. A theory of type polymorphism in programming. Journal of Computer and System Science, 17:348--375, 1978.
[23]
R. Milner. Communicating and Mobile Systems: The π-Calculus. Cambridge University Press, 1999.
[24]
Network in A Box. http://nab.epfl.ch/.
[25]
Benjamin~C. Pierce. Types and Programming Languages. MIT Press, 2002.
[26]
R. Pucella. Reactive programming in Standard ML. In Proceedings of the IEEE International Conference on Computer Languages, pages 48--57. IEEE Computer Society Press, 1998.
[27]
John H. Reppy. Concurrent Programming in ML. Cambridge University Press, 1999.
[28]
M. Serrano, F. Boussinot, and B. Serpette. Scheme fair threads. In Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming, pages 203--214, 2004.
[29]
Zhanyong Wan and Paul Hudak. Functional Reactive Programming from first principles. In Proc. ACM SIGPLAN'00 Conference on Programming Language Design and Implementation, 2000.

Cited By

View all
  • (2024)The Functional, the Imperative, and the Sudoku: Getting Good, Bad, and Ugly to Get Along (Functional Pearl)Proceedings of the ACM on Programming Languages10.1145/36746318:ICFP(177-202)Online publication date: 15-Aug-2024
  • (2024)The Sparse Synchronous Model on Real HardwareACM Transactions on Embedded Computing Systems10.1145/357292023:5(1-30)Online publication date: 14-Aug-2024
  • (2023)Computers as Interactive Machines: Can We Build an Explanatory Abstraction?Minds and Machines10.1007/s11023-023-09624-233:1(83-112)Online publication date: 11-Mar-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
PPDP '05: Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
July 2005
260 pages
ISBN:1595930906
DOI:10.1145/1069774
  • General Chair:
  • Pedro Barahona,
  • Program Chair:
  • Amy Felty
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 July 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. functional programming
  2. reactive programming
  3. semantics

Qualifiers

  • Article

Conference

PPDP05
Sponsor:

Acceptance Rates

Overall Acceptance Rate 230 of 486 submissions, 47%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)1
Reflects downloads up to 13 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)The Functional, the Imperative, and the Sudoku: Getting Good, Bad, and Ugly to Get Along (Functional Pearl)Proceedings of the ACM on Programming Languages10.1145/36746318:ICFP(177-202)Online publication date: 15-Aug-2024
  • (2024)The Sparse Synchronous Model on Real HardwareACM Transactions on Embedded Computing Systems10.1145/357292023:5(1-30)Online publication date: 14-Aug-2024
  • (2023)Computers as Interactive Machines: Can We Build an Explanatory Abstraction?Minds and Machines10.1007/s11023-023-09624-233:1(83-112)Online publication date: 11-Mar-2023
  • (2021)Causality Error Tracing in HipHop.jsProceedings of the 23rd International Symposium on Principles and Practice of Declarative Programming10.1145/3479394.3479408(1-13)Online publication date: 6-Sep-2021
  • (2021)Vers la complétude interactive: exigences pour une machine abstraite orientée interactionAdjunct Proceedings of the 32nd Conference on l'Interaction Homme-Machine10.1145/3451148.3458644(1-6)Online publication date: 13-Apr-2021
  • (2021)Session-based concurrency, declarativelyActa Informatica10.1007/s00236-021-00395-w59:1(1-87)Online publication date: 18-Mar-2021
  • (2020)Hailstorm: A Statically-Typed, Purely Functional Language for IoT ApplicationsProceedings of the 22nd International Symposium on Principles and Practice of Declarative Programming10.1145/3414080.3414092(1-16)Online publication date: 8-Sep-2020
  • (2019)Language Support for Navigating Architecture Design in Closed FormACM Journal on Emerging Technologies in Computing Systems10.1145/336004716:1(1-28)Online publication date: 25-Oct-2019
  • (2019)Spacetime ProgrammingProceedings of the 21st International Symposium on Principles and Practice of Declarative Programming10.1145/3354166.3354183(1-16)Online publication date: 7-Oct-2019
  • (2019)Development of Customized Diving Computer Based on Wearable Sensor for Marine SafetyIEEE Access10.1109/ACCESS.2019.28947407(17951-17957)Online publication date: 2019
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media