1,926 research outputs found
Playing Games in the Baire Space
We solve a generalized version of Church's Synthesis Problem where a play is
given by a sequence of natural numbers rather than a sequence of bits; so a
play is an element of the Baire space rather than of the Cantor space. Two
players Input and Output choose natural numbers in alternation to generate a
play. We present a natural model of automata ("N-memory automata") equipped
with the parity acceptance condition, and we introduce also the corresponding
model of "N-memory transducers". We show that solvability of games specified by
N-memory automata (i.e., existence of a winning strategy for player Output) is
decidable, and that in this case an N-memory transducer can be constructed that
implements a winning strategy for player Output.Comment: In Proceedings Cassting'16/SynCoP'16, arXiv:1608.0017
Synthesizing Functional Reactive Programs
Functional Reactive Programming (FRP) is a paradigm that has simplified the
construction of reactive programs. There are many libraries that implement
incarnations of FRP, using abstractions such as Applicative, Monads, and
Arrows. However, finding a good control flow, that correctly manages state and
switches behaviors at the right times, still poses a major challenge to
developers. An attractive alternative is specifying the behavior instead of
programming it, as made possible by the recently developed logic: Temporal
Stream Logic (TSL). However, it has not been explored so far how Control Flow
Models (CFMs), as synthesized from TSL specifications, can be turned into
executable code that is compatible with libraries building on FRP. We bridge
this gap, by showing that CFMs are indeed a suitable formalism to be turned
into Applicative, Monadic, and Arrowized FRP. We demonstrate the effectiveness
of our translations on a real-world kitchen timer application, which we
translate to a desktop application using the Arrowized FRP library Yampa, a web
application using the Monadic threepenny-gui library, and to hardware using the
Applicative hardware description language ClaSH.Comment: arXiv admin note: text overlap with arXiv:1712.0024
How functional programming mattered
In 1989 when functional programming was still considered a niche topic, Hughes wrote a visionary paper arguing convincingly ‘why functional programming matters’. More than two decades have passed. Has functional programming really mattered? Our answer is a resounding ‘Yes!’. Functional programming is now at the forefront of a new generation of programming technologies, and enjoying increasing popularity and influence. In this paper, we review the impact of functional programming, focusing on how it has changed the way we may construct programs, the way we may verify programs, and fundamentally the way we may think about programs
High-Performance Computer Algebra: A Hecke Algebra Case Study
We describe the first ever parallelisation of an algebraic computation at modern HPC scale. Our case study poses challenges typical of the domain: it is a multi-phase application with dynamic task creation and irregular parallelism over complex control and data structures.
Our starting point is a sequential algorithm for finding invariant bilinear forms in the representation theory of Hecke algebras, implemented in the GAP computational group theory system. After optimising the sequential code we develop a parallel algorithm that exploits the new skeleton-based SGP2 framework to parallelise the three most computationally-intensive phases. To this end we develop a new domain-specific skeleton, parBufferTryReduce. We report good parallel performance both on a commodity cluster and on a national HPC, delivering speedups up to 548 over the optimised sequential implementation on 1024 cores
Parameterized Linear Temporal Logics Meet Costs: Still not Costlier than LTL
We continue the investigation of parameterized extensions of Linear Temporal
Logic (LTL) that retain the attractive algorithmic properties of LTL: a
polynomial space model checking algorithm and a doubly-exponential time
algorithm for solving games. Alur et al. and Kupferman et al. showed that this
is the case for Parametric LTL (PLTL) and PROMPT-LTL respectively, which have
temporal operators equipped with variables that bound their scope in time.
Later, this was also shown to be true for Parametric LDL (PLDL), which extends
PLTL to be able to express all omega-regular properties.
Here, we generalize PLTL to systems with costs, i.e., we do not bound the
scope of operators in time, but bound the scope in terms of the cost
accumulated during time. Again, we show that model checking and solving games
for specifications in PLTL with costs is not harder than the corresponding
problems for LTL. Finally, we discuss PLDL with costs and extensions to
multiple cost functions.Comment: In Proceedings GandALF 2015, arXiv:1509.0685
A Model of Cooperative Threads
We develop a model of concurrent imperative programming with threads. We
focus on a small imperative language with cooperative threads which execute
without interruption until they terminate or explicitly yield control. We
define and study a trace-based denotational semantics for this language; this
semantics is fully abstract but mathematically elementary. We also give an
equational theory for the computational effects that underlie the language,
including thread spawning. We then analyze threads in terms of the free algebra
monad for this theory.Comment: 39 pages, 5 figure
- …