Modelling Signal in Interaction
<_author_search_(simon gay)>Simon Gay and <_author_search_(rajagopal nagarajan)>Rajagopal Nagarajan
Department of Computing, Imperial College
180 Queen's Gate, London SW7 2BZ, United Kingdom
Abramsky has recently proposed Interaction Categories as a new paradigm for the semantics of sequential and parallel computation. Working with the category SProc of synchronous processes, which is a key example of an Interaction Category, we study synchronous dataflow as part of a programme of gaining experience in the use of Interaction Categories. After making some general points about representing dataflow in SProc, we present a detailed model of the synchronous dataflow language Signal. We demonstrate that dataflow is a model of concurrency which can easily be treated in a typed framework, and that the structure of Interaction Categories is appropriate for describing real concurrent languages.
Abramsky  has recently proposed a new paradigm for the semantics of sequential and concurrent computation: Interaction Categories. This term encompasses certain known categories (the category of concrete data structures and sequential algorithms , categories of games ) as well as a new category SProc, with which we will be working in this paper. The distinguishing feature of Interaction Categories is that composition in them is a dynamic process of interaction, rather than the static one of function composition found in the familiar categories of traditional mathematics. SProc can be read either as Synchronous Processes" or Specifications and Processes"; the present work leans towards the first reading. In particular, we are using SProc to model Signal  - one of a family of synchronous programming languages. Other members of the family include Lustre , Silage  and Esterel . Synchrony is easier to handle initially; our aim is to deal with asynchrony later. Independently of this, dataflow is a model of concurrency which is well-suited to a typed framework. Thus we choose the synchronous dataflow language Signal as our starting point. Lustre has also been modelled; this work is described elsewhere . The purpose of this effort is two-fold: to see how existing programming paradigms are supported in the new framework, and to obtain feedback about how appropriate the categorical structures are.