2,775 research outputs found
Reactive concurrent programming revisited
In this note we revisit the so-called reactive programming style, which
evolves from the synchronous programming model of the Esterel language by
weakening the assumption that the absence of an event can be detected
instantaneously. We review some research directions that have been explored
since the emergence of the reactive model ten years ago. We shall also outline
some questions that remain to be investigated
Reactive Programming of Simulations in Physics
We consider the Reactive Programming (RP) approach to simulate physical
systems. The choice of RP is motivated by the fact that RP genuinely offers
logical parallelism, instantaneously broadcast events, and dynamic
creation/destruction of parallel components and events. To illustrate our
approach, we consider the implementation of a system of Molecular Dynamics, in
the context of Java with the Java3D library for 3D visualisation
Hop and HipHop : Multitier Web Orchestration
Rich applications merge classical computing, client-server concurrency,
web-based interfaces, and the complex time- and event-based reactive
programming found in embedded systems. To handle them, we extend the Hop web
programming platform by HipHop, a domain-specific language dedicated to
event-based process orchestration. Borrowing the synchronous reactive model of
Esterel, HipHop is based on synchronous concurrency and preemption primitives
that are known to be key components for the modular design of complex reactive
behaviors. HipHop departs from Esterel by its ability to handle the dynamicity
of Web applications, thanks to the reflexivity of Hop. Using a music player
example, we show how to modularly build a non-trivial Hop application using
HipHop orchestration code.Comment: International Conference on Distributed Computing and Internet
Technology (2014
Synchronous Java: Light-Weight, Deterministic Concurrency and Preemption in Java
A key issue in the development of reliable embedded software is the proper handling of reactive controlow, which typically involves concurrency. Java and its thread concept have only limited provisions for implementing deterministic concurrency. Thus, as has been observed in the past, it is challenging to develop concurrent Java programs without any deadlocks or race conditions. To alleviate this situation, the Synchronous Java (SJ) approach presented her adopts the key concepts that have been established in the world of syschronous programming for handling reactive controlow. Thus SJ not only provides deterministic concurrency, but also dierent variants of deterministic preemption. Furthermore SJ allows concurrent threads to communicate with Esterel-style signals. As a case study for an embedded system usage, we also report on how the SJ concepts have been applied in the context of Lego Mindstorms
Resource-bounded runtime verification of Java programs with real-time properties
Given the intractability of exhaustively verifying software, the use of runtime verification, to verify single execution paths
at runtime, is becoming increasingly popular. Undoubtedly, the overhead introduced by runtime verification is a concern for system developers planning to introduce this technique in their work. By using
Lustre to write security-critical properties, we exploit the language’s
guarantees on bounded resources. We translate these properties into
the existing monitoring framework Larva, making monitoring of
programs both easily applicable to Java programs and at the same
time guarantee to use bounded-resources. We use a subset of Quantified Discrete-time Duration Calculus (QDDC) as an alternative
specification notation for real-time properties because it is translatable into Lustre. Thus, QDDC also enjoys the same guarantees given
when using Lustre.peer-reviewe
Language Design for Reactive Systems: On Modal Models, Time, and Object Orientation in Lingua Franca and SCCharts
Reactive systems play a crucial role in the embedded domain. They continuously interact with their environment, handle concurrent operations, and are commonly expected to provide deterministic behavior to enable application in safety-critical systems. In this context, language design is a key aspect, since carefully tailored language constructs can aid in addressing the challenges faced in this domain, as illustrated by the various concurrency models that prevent the known pitfalls of regular threads. Today, many languages exist in this domain and often provide unique characteristics that make them specifically fit for certain use cases. This thesis evolves around two distinctive languages: the actor-oriented polyglot coordination language Lingua Franca and the synchronous statecharts dialect SCCharts. While they take different approaches in providing reactive modeling capabilities, they share clear similarities in their semantics and complement each other in design principles. This thesis analyzes and compares key design aspects in the context of these two languages. For three particularly relevant concepts, it provides and evaluates lean and seamless language extensions that are carefully aligned with the fundamental principles of the underlying language. Specifically, Lingua Franca is extended toward coordinating modal behavior, while SCCharts receives a timed automaton notation with an efficient execution model using dynamic ticks and an extension toward the object-oriented modeling paradigm
SCCharts: The Mindstorms Report
SCCharts are a visual language proposed in 2012 for specifying safety-critical reactive systems. This is the second SCCharts report towards the usability of the SCCharts visual language and its KIELER SCCharts implementation. KIELER is an open-source project which researches the pragmatics of model-based languages and related fields. Nine case-studies that were conducted between 2015 and 2019 evaluate the pros and cons in the context of small-scale Lego Mindstorms models and similar projects. Par-ticipants of the studies included undergraduate and graduate students from our local and also external facilities, as well as academics from the synchronous community. In the surveys, both the SCCharts language and the SCCharts tools are compared to other modeling and classical programming languages and tools
SCCharts: The Railway Project Report
SCCharts is a visual language proposed in 2012 for specifying safety-critical reactive systems. We present the results of the first medium sized SCCharts case-study. The case-study was conducted in the context of the railway project performed by students at the Kiel University in the summer term 2014. The railway project is a regularly occurring student training project that teaches principles of concurrent cyber-physical systems on a complex live model railway demonstrator. This report presents details of the first medium size SCCharts models created during the project. We explain what additional language extensions to SCCharts were necessary and how they were implemented. To handle performance issues that arose while developing the controller, compiler enhancements became necessary and are evaluated here. Furthermore, the participants completed a survey at the end of the project to confirm the goals that the SCCharts language and our SCCharts tool chain are suitable to build complex controllers. In the survey, the participants compared both, the SCCharts language and our SCCharts tools, with other modeling and classical programming languages and tools
- …