dSL, a language and environment for the design of distributed industrial controllers

We present dSL (distributed Supervision Language), a language and environment dedicated to the specification of industrial controllers. dSL extends an existing language used in the industrial world to allow transparent code distribution. We study other existing solutions, and argue for the need of dSL. Next, we define dSL syntactically and semantically, and prove some remarkable properties on its semantics. The automatic distribution introduces problems that are hard to solve for the dSL compiler/distributer, for which we give some heuristics. Since we give a precise semantics to the dSL language, formal methods can be applied to assure that controllers are correct. We show how to use explicit state model checking to perform this verification. Throughout the presentation, we introduce a set of examples showing the useability of dSL and its concepts.

[1]  Doron A. Peled Combining Partial Order Reductions with On-the-fly Model-Checking , 1994, CAV.

[2]  E. Allen Emerson,et al.  Temporal and Modal Logic , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[3]  Dimitris Bertsimas,et al.  Nonlinear Formulations and Improved Randomized Approximation Algorithms for Multicut Problems , 1995, IPCO.

[4]  Tsan-sheng Hsu,et al.  Scheduling Problems in a Practical Allocation Model , 1997, J. Comb. Optim..

[5]  Christopher Bradley Lofgren Machine configuration of flexible printed circuit board assembly systems , 1986 .

[6]  Craig A. Tovey Non-approximability of precedence-constrained sequencing to minimize setups , 2004, Discret. Appl. Math..

[7]  Cédric Meuter,et al.  dSL: An Environment with Automatic Code Distribution for Industrial Control Systems , 2003, OPODIS.

[8]  Stefan Leue,et al.  Trail-directed model checking , 2001, Workshop on Software Model Checking @ CAV.

[9]  Leon F. McGinnis,et al.  Routing Printed Circuit Cards Through an Assembly Cell , 1991, Oper. Res..

[10]  Mihalis Yannakakis,et al.  Multiway Cuts in Directed and Node Weighted Graphs , 1994, ICALP.

[11]  Laurie J. Hendren,et al.  Context-sensitive interprocedural points-to analysis in the presence of function pointers , 1994, PLDI '94.

[12]  William H. Cunningham The Optimal Multiterminal Cut Problem , 1989, Reliability Of Computer And Communication Networks.

[13]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[14]  Jan Karel Lenstra,et al.  Complexity of machine scheduling problems , 1975 .

[15]  Steven P. Miller,et al.  Applicability of modified condition/decision coverage to software testing , 1994, Softw. Eng. J..

[16]  Yuval Rabani,et al.  An improved approximation algorithm for multiway cut , 1998, STOC '98.

[17]  Friedemann Mattern,et al.  Virtual Time and Global States of Distributed Systems , 2002 .

[18]  Patrice Godefroid Using Partial Orders to Improve Automatic Verification Methods , 1990, CAV.

[19]  Thierry Massart,et al.  A Calculus to Define Correct Tranformations of LOTOS Specifications , 1991, FORTE.

[20]  Jim Waldo,et al.  A Note on Distributed Computing , 1996, Mobile Object Systems.

[21]  D. R. Fulkerson,et al.  Flows in Networks. , 1964 .

[22]  Michael Hind,et al.  Which pointer analysis should I use? , 2000, ISSTA '00.

[23]  David L. Dill,et al.  Validation with guided search of the state space , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[24]  Frédéric Roupin,et al.  Minimal multicut and maximal integer multiflow: A survey , 2005, Eur. J. Oper. Res..

[25]  Shin Nakajima,et al.  The SPIN Model Checker : Primer and Reference Manual , 2004 .

[26]  Ming T. Liu,et al.  Protocol verification using reachability analysis: the state space explosion problem and relief strategies , 1987, Computer Communication Review.

[27]  Tsan-sheng Hsu,et al.  Task Allocation on a Network of Processors , 2000, IEEE Trans. Computers.

[28]  Mihalis Yannakakis,et al.  The Complexity of Multiterminal Cuts , 1994, SIAM J. Comput..

[29]  Sunil Chopra,et al.  Extended formulations for the A-cut problem , 1996, Math. Program..

[30]  John R. Levine Linkers and Loaders , 1999 .

[31]  Thierry Gautier,et al.  Programming real-time applications with SIGNAL , 1991, Proc. IEEE.

[32]  Robin Milner,et al.  On relating synchrony and asynchrony , 1980 .

[33]  Thierry Jéron,et al.  Testing for Unboundedness of FIFO Channels , 1993, Theor. Comput. Sci..

[34]  B. Shirazi,et al.  Design Issues of Process Migration Facilities in Distributed Systems , 1995 .

[35]  Cédric Meuter,et al.  The formal design of distributed controllers with dSL and Spin , 2005, Formal Aspects of Computing.

[36]  Nicolas Halbwachs,et al.  LUSTRE: A declarative language for programming synchronous systems* , 1987 .

[37]  Stefan Edelkamp,et al.  Directed explicit model checking with HSF-SPIN , 2001, SPIN '01.

[38]  Bill Nitzberg,et al.  Distributed shared memory: a survey of issues and algorithms , 1991, Computer.

[39]  Lori A. Clarke,et al.  Classifying properties: an alternative to the safety-liveness classification , 2000, SIGSOFT '00/FSE-8.

[40]  Alex Groce,et al.  Model checking Java programs using structural heuristics , 2002, ISSTA '02.

[41]  Alain Darte On the Complexity of Loop Fusion , 2000, Parallel Comput..

[42]  V. T. Rajan,et al.  Graph cutting algorithms for distributed applications partitioning , 2001, PERV.

[43]  Susan Darling Urban,et al.  Refined triggering graphs: a logic-based approach to termination analysis in an active object-oriented database , 1996, Proceedings of the Twelfth International Conference on Data Engineering.

[44]  Wei Wei,et al.  A Scalable Incomplete Test for the Boundedness of UML RT Models , 2004, TACAS.

[45]  S. Edwards Compiling Esterel into sequential code , 2000, Proceedings of the Seventh International Workshop on Hardware/Software Codesign (CODES'99) (IEEE Cat. No.99TH8450).

[46]  Anoop Gupta,et al.  Cache-coherent distributed shared memory: perspectives on its development and future challenges , 1999, Proc. IEEE.

[47]  Simeon C. Ntafos,et al.  A Comparison of Some Structural Testing Strategies , 1988, IEEE Trans. Software Eng..

[48]  Thierry Jéron,et al.  An Experiment in Automatic Generation of Test Suites for Protocols with Verification Technology , 1997, Sci. Comput. Program..

[49]  John W. Baugh Design and verification of real-time systems , 1998, AI in Structural Engineering.

[50]  Thierry Massart,et al.  From Static Code Distribution to More Shrinkage for the Multiterminal Cut , 2005, WEA.

[51]  Anca Muscholl,et al.  Synthesis of Distributed Algorithms Using Asynchronous Automata , 2003, CONCUR.

[52]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[53]  Siam Staff A 2-Approximation Algorithm for the Directed Multiway Cut Problem , 2002 .

[54]  Preston Briggs,et al.  Register allocation via graph coloring , 1992 .

[55]  David Mosberger,et al.  Memory consistency models , 1993, OPSR.

[56]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[57]  Stefan Leue,et al.  Protocol verification with heuristic search , 2001 .

[58]  Antti Valmari,et al.  A stubborn attack on state explosion , 1990, Formal Methods Syst. Des..

[59]  Alain Girault,et al.  Sur la répartition de programmes synchrones , 1994 .

[60]  Susan Horwitz,et al.  Fast and accurate flow-insensitive points-to analysis , 1997, POPL '97.

[61]  Christine Morin,et al.  A Survey of Recoverable Distributed Shared Memory Systems , 1995 .

[62]  Michael Marcotty,et al.  The World of Programming Languages , 1987, Springer Books on Professional Computing.

[63]  Rom Langerak Decomposition of functionality: a correctness-preserving LOTOS transformation , 1990, PSTV.

[64]  Madhavan Mukund,et al.  Synthesizing Distributed Transition Systems from Global Specification , 1999, FSTTCS.

[65]  Rémi Morin,et al.  Decompositions of Asynchronous Systems , 1998, CONCUR.

[66]  Richard W. Hamming,et al.  Error detecting and error correcting codes , 1950 .

[67]  J. R. Büchi On a Decision Method in Restricted Second Order Arithmetic , 1990 .

[68]  Gregory J. Chaitin,et al.  Register allocation & spilling via graph coloring , 1982, SIGPLAN '82.

[69]  Pierre Wolper,et al.  Memory-efficient algorithms for the verification of temporal properties , 1990, Formal Methods Syst. Des..

[70]  Thomas A. Henzinger,et al.  HYTECH: a model checker for hybrid systems , 1997, International Journal on Software Tools for Technology Transfer.

[71]  Gérard Le Lann,et al.  Distributed Systems - Towards a Formal Approach , 1977, IFIP Congress.

[72]  Jonathan P. Bowen,et al.  From MC/DC to RC/DC: formalization and analysis of control-flow testing criteria , 2006, Formal Aspects of Computing.

[73]  E. L. Lawler,et al.  Branch-and-Bound Methods: A Survey , 1966, Oper. Res..

[74]  Mikkel Thorup,et al.  Rounding Algorithms for a Geometric Embedding of Minimum Multiway Cut , 2004, Math. Oper. Res..

[75]  Hai Jiang,et al.  On Improving Thread Migration: Safety and Performance , 2002, HiPC.

[76]  Esko Ukkonen,et al.  The Shortest Common Supersequence Problem over Binary Alphabet is NP-Complete , 1981, Theor. Comput. Sci..