Cargando…

ARx: Reactive Programming for Synchronous Connectors

Reactive programming (RP) languages and Synchronous Coordination (SC) languages share the goal of orchestrating the execution of computational tasks, by imposing dependencies on their execution order and controlling how they share data. RP is often implemented as libraries for existing programming l...

Descripción completa

Detalles Bibliográficos
Autores principales: Proença, José, Cledou, Guillermina
Formato: Online Artículo Texto
Lenguaje:English
Publicado: 2020
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7282853/
http://dx.doi.org/10.1007/978-3-030-50029-0_3
_version_ 1783544202608508928
author Proença, José
Cledou, Guillermina
author_facet Proença, José
Cledou, Guillermina
author_sort Proença, José
collection PubMed
description Reactive programming (RP) languages and Synchronous Coordination (SC) languages share the goal of orchestrating the execution of computational tasks, by imposing dependencies on their execution order and controlling how they share data. RP is often implemented as libraries for existing programming languages, lifting operations over values to operations over streams of values, and providing efficient solutions to manage how updates to such streams trigger reactions, i.e., the execution of dependent tasks. SC is often implemented as a standalone formalism to specify existing component-based architectures, used to analyse, verify, transform, or generate code. These two approaches target different audiences, and it is non-trivial to combine the programming style of RP with the expressive power of synchronous languages. This paper proposes a lightweight programming language to describe component-based Architectures for Reactive systems, dubbed ARx, which blends concepts from RP and SC, mainly inspired to the Reo coordination language and its composition operation, and with tailored constructs for reactive programs such as the ones found in ReScala. ARx is enriched with a type system and with algebraic data types, and has a reactive semantics inspired in RP. We provide typical examples from both the RP and SC literature, illustrate how these can be captured by the proposed language, and describe a web-based prototype tool to edit, parse, and type check programs, and to animate their semantics.
format Online
Article
Text
id pubmed-7282853
institution National Center for Biotechnology Information
language English
publishDate 2020
record_format MEDLINE/PubMed
spelling pubmed-72828532020-06-10 ARx: Reactive Programming for Synchronous Connectors Proença, José Cledou, Guillermina Coordination Models and Languages Article Reactive programming (RP) languages and Synchronous Coordination (SC) languages share the goal of orchestrating the execution of computational tasks, by imposing dependencies on their execution order and controlling how they share data. RP is often implemented as libraries for existing programming languages, lifting operations over values to operations over streams of values, and providing efficient solutions to manage how updates to such streams trigger reactions, i.e., the execution of dependent tasks. SC is often implemented as a standalone formalism to specify existing component-based architectures, used to analyse, verify, transform, or generate code. These two approaches target different audiences, and it is non-trivial to combine the programming style of RP with the expressive power of synchronous languages. This paper proposes a lightweight programming language to describe component-based Architectures for Reactive systems, dubbed ARx, which blends concepts from RP and SC, mainly inspired to the Reo coordination language and its composition operation, and with tailored constructs for reactive programs such as the ones found in ReScala. ARx is enriched with a type system and with algebraic data types, and has a reactive semantics inspired in RP. We provide typical examples from both the RP and SC literature, illustrate how these can be captured by the proposed language, and describe a web-based prototype tool to edit, parse, and type check programs, and to animate their semantics. 2020-05-13 /pmc/articles/PMC7282853/ http://dx.doi.org/10.1007/978-3-030-50029-0_3 Text en © IFIP International Federation for Information Processing 2020 This article is made available via the PMC Open Access Subset for unrestricted research re-use and secondary analysis in any form or by any means with acknowledgement of the original source. These permissions are granted for the duration of the World Health Organization (WHO) declaration of COVID-19 as a global pandemic.
spellingShingle Article
Proença, José
Cledou, Guillermina
ARx: Reactive Programming for Synchronous Connectors
title ARx: Reactive Programming for Synchronous Connectors
title_full ARx: Reactive Programming for Synchronous Connectors
title_fullStr ARx: Reactive Programming for Synchronous Connectors
title_full_unstemmed ARx: Reactive Programming for Synchronous Connectors
title_short ARx: Reactive Programming for Synchronous Connectors
title_sort arx: reactive programming for synchronous connectors
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7282853/
http://dx.doi.org/10.1007/978-3-030-50029-0_3
work_keys_str_mv AT proencajose arxreactiveprogrammingforsynchronousconnectors
AT cledouguillermina arxreactiveprogrammingforsynchronousconnectors