3,275 research outputs found
A multi-paradigm language for reactive synthesis
This paper proposes a language for describing reactive synthesis problems
that integrates imperative and declarative elements. The semantics is defined
in terms of two-player turn-based infinite games with full information.
Currently, synthesis tools accept linear temporal logic (LTL) as input, but
this description is less structured and does not facilitate the expression of
sequential constraints. This motivates the use of a structured programming
language to specify synthesis problems. Transition systems and guarded commands
serve as imperative constructs, expressed in a syntax based on that of the
modeling language Promela. The syntax allows defining which player controls
data and control flow, and separating a program into assumptions and
guarantees. These notions are necessary for input to game solvers. The
integration of imperative and declarative paradigms allows using the paradigm
that is most appropriate for expressing each requirement. The declarative part
is expressed in the LTL fragment of generalized reactivity(1), which admits
efficient synthesis algorithms, extended with past LTL. The implementation
translates Promela to input for the Slugs synthesizer and is written in Python.
The AMBA AHB bus case study is revisited and synthesized efficiently,
identifying the need to reorder binary decision diagrams during strategy
construction, in order to prevent the exponential blowup observed in previous
work.Comment: In Proceedings SYNT 2015, arXiv:1602.0078
Reactive Visualizer: A Learning Tool for Reactive Programming Using Reactive Extensions for JavaScript
Reaktiivne programmeerimine võimaldab asünkroonsete protsesside ja nendevaheliste seoste deklaratiivset kirjeldamist, lihtsustades asünkroonsete programmide kirjutamist ja mõistmist.
Reaktiivse programmeerimise õppimist takistab aga asjaolu, et selle õppimine on raske ja nõuab algajatel tugevat pingutust.
Reaktiivse programmeerimise õppimist lihtsustaks interaktiivne õppevahend, mis visualiseerib asünkroonseid seoseid, pakub abistavaid näiteid ja garanteerib korrektse programmistruktuuri.
Antud bakalaurusetöö kirjeldab õppevahendi Reactive Visualizer, mis püüab eelnimetatud nõudeid täita, disaini ja implementatsiooni.Reactive programming enables declarative composition of asynchronous processes, making asynchronous programs simpler to write and understand.
The downside of reactive programming is that learning it requires considerable effort, which can overwhelm beginners.
An interactive learning tool can help beginners comprehend reactive programming by visualizing asynchronous interactions, providing helpful examples and guaranteeing a valid program structure.
This thesis describes the design and implementation of Reactive Visualizer, a tool which aims to fulfill those requirements
On Synchronous and Asynchronous Monitor Instrumentation for Actor-based systems
We study the impact of synchronous and asynchronous monitoring
instrumentation on runtime overheads in the context of a runtime verification
framework for actor-based systems. We show that, in such a context,
asynchronous monitoring incurs substantially lower overhead costs. We also show
how, for certain properties that require synchronous monitoring, a hybrid
approach can be used that ensures timely violation detections for the important
events while, at the same time, incurring lower overhead costs that are closer
to those of an asynchronous instrumentation.Comment: In Proceedings FOCLASA 2014, arXiv:1502.0315
Desynchronization: Synthesis of asynchronous circuits from synchronous specifications
Asynchronous implementation techniques, which measure logic delays at run time and activate registers accordingly, are inherently more robust than their synchronous counterparts, which estimate worst-case delays at design time, and constrain the clock cycle accordingly. De-synchronization is a new paradigm to automate the design of asynchronous circuits from synchronous specifications, thus permitting widespread adoption of asynchronicity, without requiring special design skills or tools. In this paper, we first of all study different protocols for de-synchronization and formally prove their correctness, using techniques originally developed for distributed deployment of synchronous language specifications. We also provide a taxonomy of existing protocols for asynchronous latch controllers, covering in particular the four-phase handshake protocols devised in the literature for micro-pipelines. We then propose a new controller which exhibits provably maximal concurrency, and analyze the performance of desynchronized circuits with respect to the original synchronous optimized implementation. We finally prove the feasibility and effectiveness of our approach, by showing its application to a set of real designs, including a complete implementation of the DLX microprocessor architectur
- …