2nd Call for Papers - Special Issue of the CSI Journal of Computing

by Jean-Pierre Talpin, Jan. 16, 2012

Second Call for Papers on Synchronous Programming Model and its Implications to Safety-Critical Software Design for a Special Issue of the CSI Journal of Computing published by the Computer Society of India

Special Issue of the CSI Journal of Computing
published by the Computer Society of India

Call for Papers on Synchronous Programming Model and its Implications to Safety-Critical Software Design

Guest Editors:
Klaus Schneider (Technical University of Kaiserslautern, Germany)
Sandeep K. Shukla (Virginia Tech., USA)
Jean-Pierre Talpin (IRISA/INRIA, France)

 

The abstraction of time to discrete clock ticks has proven very useful in the realm of hardware design. Today almost all synchronous hardware designs are based on this abstraction.  Synchrony assumption has also found use in software modeling.  A class of languages for reactive software specification and synthesis came up as synchronous programming paradigm.  Languages such as Esterel, Lustre, SIGNAL and others assume that computation and communication during a reaction to environmental inputs -- takes 'zero time'.  The only passage of time occurs through progression of reactions. However, unlike hardware, there is no real periodically ticking clock pacing the reactions. Instead, the notion of cycle is that of a 'reaction', a 'macro-step', or a 'logical instant'. The boundaries of such instants can be enforced by synchronization across various parts of the program. A computation carried out by sequential software is considered to happen as a totally ordered sequence of reactions, and the specification language captures all the possible reactions in a compact programmatic notation.
Recently, various extensions of the synchronous paradigm have emerged, such as periodic clock based specification where a buffered computation can be described by specifying a relation between computations that happen across multiple logical instants. Such descriptions allow partial or bounded desynchronization of components by buffered communications. While Kahn process network with unbounded buffering is a full desynchronization of monotonic components, finitely buffered communications allow partial desynchronization while guaranteeing determinism.
 In the meantime, similar programming models have been used in various other contexts, such as Statecharts, Simulink, and other visually expressive tools. While these languages are not explicitly based on the synchronous paradigm and often even lack any specific model of time at all, they all allow engineers to describe a computation as a state-based reaction to external inputs. One of the major advantages of traditional synchronous programming is compile-time computation of scheduling, and in some cases, real-time scheduling.  Another related programming paradigm is 'stream based' programming where computation over infinite streams can be expressed.
Given that there is a wide-spread use of some of these tools in the industry, in particular in avionics, automotive, plant control, hardware/software co-design -- it is conceivable to believe that further research needs to take place in making these languages and tools more accessible, more robust, and certainly able to handle more general classes of problems. Moreover, modular or compositional design including the integration of modules stemming from different languages is an important area being investigated and needs more work. Research in real-time code synthesis and scheduling is also in its infancy. Making the synthesis results more optimized is also important now that the paradigm is being used more frequently.
Given this history, richness, and important uses of the synchronous paradigm, we believe that a special issue on the most recent work on synchronous languages and their use in software design, safety-critical software engineering, and in provably correct program construction could be useful.
We invite previously unpublished articles on topics listed below (not an exhaustive list):

  • Synchronous and Polychronous Semantics
  • Compositional Design
  • Separate Compilation
  • Periodic Models of time
  • Contract based Design
  • Type theory in Synchronous Languages
  • Formal Verification and Equivalence Checking
  • Implementation Techniques
  • Compilers and Synthesis Algorithms                               
  • Models of Computation
  • Applications of Synchrony Hypothesis
  • Industrial Case Studies
  • Concurrency and Multi-core Programming
  • De-synchronization techniques
  • Static and Quasi-static Scheduling
  • Latency Insensitive Designs
  • Models of Concurrency
If you have questions on the topics please email one of the guest editors ([email protected], [email protected] , [email protected] )


Important Dates

  • Feb 28, 2012        -- Deadline for Submission
  • Mar 1 -- April 30   -- Review period
  • May 1 -- June 30    -- Revision by authors
  • July 1 - July 31    --  Second round of Reviews
  • Aug 31              -- Camera Ready due