245 research outputs found

    Structured reactive programming with polymorphic temporal tiles

    Get PDF
    International audienceIn functional reactive programming (FRP), system inputs and outputs are generally modeled as functions over continuous time (behaviors) whose future values are governed by sudden changes (events). In this approach, discrete events are embedded into piece-wise continuous behaviors. In the field of reactive music system programming, we develop an orthogonal approach that seems to better fit our need. Much like piano keys can be played and combined both in sequence and in parallel, we model system inputs and outputs as spatio-temporal combinations of what we call temporal values: continuous functions over time whose domain lays between two events: a start and a stop event. Various high level data types and program constructs can then be derived from such a model. They are shown to satisfy robust algebraic and category theoretic properties. Altogether, this eventually provides a simple, robust and elegant programming front-end, temporal tile programming, for reading, memorizing, stretching, combining and transforming flows of inputs into flows of outputs. Although at its infancy, the resulting approach has been experimentally validated for reactive and real-time music system programming

    A Timed IO monad

    Get PDF
    Programming with explicit timing information is often tedious and error prone. This is especially visible in music programming where, when played, the specified durations of notes and rests must be shortened in order to compensate the actual duration of all surrounding processing. In this paper, we develop the notion of timed extension of a monad that aims at relieving programmers from such a burden. We show how, under simple conditions, such extensions can be built, and how useful features of monad programming such as asynchronous concurrency with promises or data-flow programming with monadic streams can be uniformly lifted to the resulting timed programming framework. Even though presented and developed in the abstract, the notion of timed extension of a monad is nevertheless illustrated by two concrete instances: a default timed IO monad where programmers specify durations in mi-croseconds, and a musically timed IO monad, where programmers specify durations in number of beats, the underlying tempo, that is, the speed of the music in beats per minute, possibly changed whenever needed

    A robust algebraic framework for high-level music writing and programming

    Get PDF
    International audienceIn this paper, we present a new algebraic model for music programming : tiled musical graphs. It is based on the idea that the definition of musical objects : what they are, and the synchronization of these objects : when they should be played, are two orthogonal aspects of music programming that should be kept separate although handled in a combined way. This leads to the definition of an algebra of music objects : tiled music graphs, which can be combined by a single operator : the tiled product, that is neither sequential nor parallel but both. From a mathematical point of view, this algebra is known to be especially robust since it is an inverse monoid. Various operators such as the reset and the coreset projections derive from these algebra and turned out to be fairly useful for music modeling. From a programming point of view, it provide a high level domain specific language (DSL) that is both hierarchical and modular. This language is currently under implementation in the functional programming language Haskell. From an applicative point of view, various music modeling examples are provided to show how notes, chords, melodies, musical meters and various kind of interpretation aspects can easily and robustly be encoded in this formalism

    From out-of-time design to in-time production of temporal media

    Get PDF
    The design a temporal media, a sequence of temporal media values such as notes, sounds, images, etc., is an out-of-time task. Fairly general out-of-time program constructs are available for such a purpose. For example , when writing a musical piece, a composer can traverse back and forth his creation. On the contrary, rendering a temporal media is an in-time task. The production of notes in a musical performance is bound to be coherent with the unceasing onward flow of time. It follows that some of the out-of-time programming constructs used for the creation of that pieces must have been reordered in order to produce the right media events in the right order and at the right time. In this paper, we propose a formal study of the interplay between these in-time and these out-of-time programing constructs. With an explicitly out-of-time design approach, we eventually show that simpler and more abstract declarative programming features become available, leaving to computers the tedious task of synchronizing and scheduling the media events to be produced in-time, upon demand

    04241 Abstracts Collection -- Graph Transformations and Process Algebras for Modeling Distributed and Mobile Systems

    Get PDF
    Recently there has been a lot of research, combining concepts of process algebra with those of the theory of graph grammars and graph transformation systems. Both can be viewed as general frameworks in which one can specify and reason about concurrent and distributed systems. There are many areas where both theories overlap and this reaches much further than just using graphs to give a graphic representation to processes. Processes in a communication network can be seen in two different ways: as terms in an algebraic theory, emphasizing their behaviour and their interaction with the environment, and as nodes (or edges) in a graph, emphasizing their topology and their connectedness. Especially topology, mobility and dynamic reconfigurations at runtime can be modelled in a very intuitive way using graph transformation. On the other hand the definition and proof of behavioural equivalences is often easier in the process algebra setting. Also standard techniques of algebraic semantics for universal constructions, refinement and compositionality can take better advantage of the process algebra representation. An important example where the combined theory is more convenient than both alternatives is for defining the concurrent (noninterleaving), abstract semantics of distributed systems. Here graph transformations lack abstraction and process algebras lack expressiveness. Another important example is the work on bigraphical reactive systems with the aim of deriving a labelled transitions system from an unlabelled reactive system such that the resulting bisimilarity is a congruence. Here, graphs seem to be a convenient framework, in which this theory can be stated and developed. So, although it is the central aim of both frameworks to model and reason about concurrent systems, the semantics of processes can have a very different flavour in these theories. Research in this area aims at combining the advantages of both frameworks and translating concepts of one theory into the other. The Dagsuthl Seminar, which took place from 06.06. to 11.06.2004, was aimed at bringing together researchers of the two communities in order to share their ideas and develop new concepts. These proceedings4 of the do not only contain abstracts of the talks given at the seminar, but also summaries of topics of central interest. We would like to thank all participants of the seminar for coming and sharing their ideas and everybody who has contributed to the proceedings

    Causalité dans les calculs d'événements

    Get PDF
    National audienceSi l'on considère un événement comme une valeur quelconque associée à une date de réception, un calcul d'événements est une fonction produisant un ensemble d'événements à partir d'un ensemble d'événements reçus. Un sous-ensemble particulièrement intéressant de ces fonctions correspond aux fonctions causales dont les événements produits avant une date donnée ne dépendent que des événements reçus avant cette même date. Dans cet article, nous proposons une définition très simple permettant de caractériser ces fonctions causales

    Polyhedral+Dataflow Graphs

    Get PDF
    This research presents an intermediate compiler representation that is designed for optimization, and emphasizes the temporary storage requirements and execution schedule of a given computation to guide optimization decisions. The representation is expressed as a dataflow graph that describes computational statements and data mappings within the polyhedral compilation model. The targeted applications include both the regular and irregular scientific domains. The intermediate representation can be integrated into existing compiler infrastructures. A specification language implemented as a domain specific language in C++ describes the graph components and the transformations that can be applied. The visual representation allows users to reason about optimizations. Graph variants can be translated into source code or other representation. The language, intermediate representation, and associated transformations have been applied to improve the performance of differential equation solvers, or sparse matrix operations, tensor decomposition, and structured multigrid methods

    Multivalent Random Walkers:A computational model of superdiffusive transport at the nanoscale

    Get PDF
    We present a stochastic model and numerical simulation framework for a synthetic nanoscale walker that can be used to transport materials and information at superdiffusive rates in artificial molecular systems. Our \emph{multivalent random walker} model describes the motion of a walker with a rigid, inert body and flexible, enzymatic legs. A leg can bind to and irreversibly modify surface-bound chemical substrate sites arranged as nanoscale tracks. As the legs attach to, modify, and detach from the sites, the walker moves along these tracks. Walkers are symmetrical and the tracks they walk on are unoriented, yet we show that under appropriate kinetic constraints the walkers can transform the chemical free energy in the surface sites into directional motion, and can do ordered work against an external load force. This shows that multivalent random walkers are a new type of molecular motor, useful for directional transport in nanoscale systems. We model the motion of multivalent random walkers as a continuous-time discrete-state Markov process. States in the process correspond to the chemical state of the legs and surface sites, and transitions represent discrete chemical changes of legs binding to, unbinding from, and modifying the surface sites. The Markov property holds because we let the mechanical motion of the body and unattached legs come to equilibrium in between successive chemical steps, thus the transitions depend only on the current chemical state of the surface sites and attached legs. This coarse-grained model of walker motion allows us to use both equilibrium and non-equilibrium Markov chain Monte Carlo simulation techniques. The Metropolis-Hastings algorithm approximates the motion of a walker\u27s body and legs at a mechanical equilibrium, while the kinetic Monte Carlo algorithm simulates the transient chemical dynamics of the walker stepping across the surface sites. Using these numerical techniques, we find that MVRWs move superdiffusively in the direction of unmodified substrate sites when there is a residence time bias between modified and unmodified sites. This superdiffusive motion persists when opposed by external load forces, showing that multivalent random walkers are \emph{molecular motors} that can transform chemical free energy into ordered mechanical work. To produce these results we devised a distributed object-oriented framework for parallel simulation and analysis of the MVRW model. We use an object-relational mapping to persistently maintain all simulation-related objects as tuples in a relational database. We present a new object-relational mapping technique called the \emph{natural entity framework} which disambiguates the semantics of object identity and uniqueness in the relational and object-oriented programming models. Using the natural entity framework we are able to guarantee the uniqueness of mappings between data stored as objects in the relational database and external data stored in non-transactionally-secured HDF5 data files

    Des promesses, des actions, par flots, en OCaml

    Get PDF
    Nous nous intéressons aux traitements de flux audio synchrones et aux contrôles de ces traitements par des flux de commandes asynchrones : un exemple archétypal de problème de programmation globalement asynchrone et localement synchrone (GALS). Pour faire cela, un modèle qui s'impose tout à la fois par son efficacité et son élégance se situe à la croisée de plusieurs concepts clés de la programmation fonctionnelle : les actions monadiques, les promesses, et les flots récursifs d'actions ou de promesses. Suite à une expérimentation de cette modélisation en Haskell, l'objet de cet article est d'en faire une expérimentation en OCaml. De façon quelque peu inattendue, les deux approches se complètent et nous conduisent finalement à une axiomatisation originale de la notion de promesse. De plus, étendu aux flots récursifs d'actions, il apparaît que les promesses de flots d'actions peuvent être vue comme des flots de promesses. Une mise en oeuvre de ces concepts est proposée en s'appuyant sur les extensions d'OCaml par threads Posix ou par threads légers (lwt)
    • …
    corecore