Skip to main content

Are Synchronous Programs Logic Programs?

  • Chapter
  • First Online:
Principled Software Development

Abstract

Synchronous languages have been introduced as programming languages that directly reflect the nature of reactive systems: Their execution is divided into discrete reaction steps such that in each reaction step, inputs are read from the environment and outputs are instantaneously computed. Reaction steps, which are also called macro steps, consist thereby of a set of atomic micro step actions that are executed in the variable environment associated with the macro step. At the beginning of the macro step, only the values of the input variables are known in this variable environment, and the values of the remaining variables have to be computed according to the data-dependencies. Since the micro step actions depend on the variable environment that they also create, it might be the case that there are cyclic dependencies. Whether such cyclic dependencies can be constructively resolved has to be checked by a compile-time causality analysis which will ensure that there is for all inputs a suitable schedule of the micro steps. If the synchronous programs are converted to guarded actions as done in the author’s Averest system, some relationships with logic programs can be found: In particular, the concepts of reaction-to-absence of synchronous languages and negation-to-failure of logic programs seem to be the same; another analogy is found for the generation of equation-based code of synchronous programs and the completion of logic programs, and also for the fix-point analyses defined in both paradigms. This paper outlines these analogies between the two paradigms of programming languages and discusses whether further known semantics of logic programs like well-founded and stable models may find useful counterparts in the synchronous world in future.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. J. Aguado et al. “Grounding Synchronous Deterministic Concurrency in Sequential Programming”. In: Programming Languages and Systems Ed. by Z. Shao. Vol. 8410. LNCS. Grenoble, France: Springer, 2014, pp. 229–248.

    Google Scholar 

  2. A. Benveniste et al. “The Synchronous Languages Twelve Years Later”. In: Proceedings of the IEEE 91.1 (2003), pp. 64–83.

    Article  Google Scholar 

  3. G. Berry and L. Cosserat. “The Esterel Synchronous Programming Language and its Mathe- matical Semantics”. In: Seminar on Concurrency (CONCUR) Ed. by S.D. Brookes, A.W. Roscoe, and G. Winskel. Vol. 197. LNCS. Pittsburgh, Pennsylvania, USA: Springer, 1985, pp. 389–448.

    Google Scholar 

  4. M. von der Beeck. “A Comparison of Statecharts Variants”. In: Formal Techniques in Real- Time and Fault-Tolerant Systems (FTRTFT) Ed. by H. Langmaack, W.-P. de Roever, and J. Vytopil. Vol. 863. LNCS. Lübeck, Germany: Springer, 1994, pp. 128–148.

    Google Scholar 

  5. G. Berry. The Constructive Semantics of Pure Esterel. July 1999.

    Google Scholar 

  6. J. Brandt et al. “Embedding Polychrony into Synchrony”. In: IEEE Transactions on Software Engineering (TSE) 39.7 (July 2013), pp. 917–929.

    Google Scholar 

  7. J.-P. Bodeveix, M. Filali-Amine, and S. Kan. “A Refinement-based compiler development for synchronous language”. In: Formal Methods and Models for Codesign (MEMOCODE) Ed. by J.-P. Talpin, P. Derler, and K. Schneider. Vienna, Austria: IEEE Computer Society, 2017, pp. 165–174.

    Google Scholar 

  8. F. Boussinot and R. de Simone. “The Esterel language”. In: Proceedings of the IEEE 79.9 (1991), pp. 1293–1304.

    Article  Google Scholar 

  9. J.A. Brzozowski and C. Ebergen. “On the Delay-Sensitivity of Gate Networks”. In: IEEE Transactions on Computers (T-C) 41.11 (Nov 1992), pp. 1349–1359.

    Article  MathSciNet  Google Scholar 

  10. J. Brandt and K. Schneider. “Separate Compilation for Synchronous Programs”. In: Software and Compilers for Embedded Systems (SCOPES). Nice, France: ACM, 2009, pp. 1–10.

    Google Scholar 

  11. J.A. Brzozowski and C.-J.H. Seger. Advances in asynchronous circuit theory part I. Bulletin of the European association of Theoretical Computer Science. Oct. 1990.

    Google Scholar 

  12. R.E. Bryant and C.-J.H. Seger. “Formal Verification of Digital Circuits Using Symbolic Ternary System Models”. In: Computer Aided Verification (CAV). Ed. by E.M. Clarke and R.P. Kurshan. Vol. 531. LNCS. New Brunswick, New Jersey USA: Springer, 1991, pp. 33–43.

    Google Scholar 

  13. J.A. Brzozowski and C.-J.H. Seger. Asynchronous Circuits Springer, 1995.

    Google Scholar 

  14. R.E. Bryant. “Boolean Analysis of MOS Circuits”. In: IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems (T-CAD). CAD-6.4 (July 1987), pp. 634–649.

    Article  Google Scholar 

  15. P. Caspi et al. “LUSTRE: A declarative language for programming synchronous systems”. In: Principles of Programming Languages (POPL) Munich, Germany: ACM, 1987, pp. 178–188.

    Google Scholar 

  16. K.L. Clark. “Negation as Failure”. In: Logic and Data Bases Ed. by H. Gallaire and J. Minker. Toulouse, France: Plemum Press, New York, 1977, pp. 293–322.

    Chapter  Google Scholar 

  17. W.F. Dowling and J.H. Gallier. “Linear-time algorithms for testing the satisfiability of propositional Horn formulae”. In: The Journal of Logic Programming 1.3 (Oct. 1984), pp. 267–284.

    Article  MathSciNet  Google Scholar 

  18. T. Eiter, G. Ianni, and T. Krennwallner. “Answer Set Programming: A Primer”. In: Reasoning Web Semantic Technologies for Information Systems Ed. by S. Tessaris et al. Vol. 5689. LNCS. Brixen-Bressanone, Italy: Springer, 2009, pp. 40–110.

    Google Scholar 

  19. M. van Emden and R. Kowalski. “The semantics of predicate logic as a programming language”. In: Journal of the ACM (JACM) 23.4 (Oct. 1976), pp. 733–742.

    Google Scholar 

  20. F. Fages. “Consistency of Clark’s completion and existence of stable models”. In: Methods of Logic in Computer Science 1.1 (1994), pp. 51–60.

    Google Scholar 

  21. M. Fitting. “A Kripke-Kleene Semantics for Logic Programs”. In: Journal of Logic Pro- gramming 2.4 (Dec. 1985), pp. 295–312.

    Article  MathSciNet  Google Scholar 

  22. H. Fecher et al. “29 New Unclarities in the Semantics of UML 2.0 State Machines”. In: International Conference on Formal Engineering Methods (ICFEM) Ed. by K.-K. Lau and R. Banach. Vol. 3785. LNCS. Manchester England, UK: Springer, 2005, pp. 52–65.

    Google Scholar 

  23. T. Gautier, P. Le Guernic, and L. Besnard. “SIGNAL, a declarative language for synchronous programming of real-time systems”. In: Functional Programming Languages and Computer Architecture Ed. by G. Kahn. Vol. 274. LNCS. Portland, Oregon, USA: Springer, 1987, pp. 257–277.

    Chapter  Google Scholar 

  24. M. Gelfond and V. Lifschitz. “The Stable Model Semantics for Logic Programming”. In: Logic Programming. Ed. by R.A. Kowalski and K.A. Bowen. Seattle, Washington, USA: MIT Press, 1988, pp. 1070–1080.

    Google Scholar 

  25. A. van Gelder, K.A. Ross, and J.S. Schlipf. “The Well-Founded Semantics for General Logic Programs”. In: Journal of the ACM (JACM) 38.3 (July 1991), pp. 620–650.

    Google Scholar 

  26. P. Le Guernic et al. “Programming real-time applications with SIGNAL”. In: Proceedings of the IEEE 79.9 (1991), pp. 1321–1336.

    Article  Google Scholar 

  27. N. Halbwachs. Synchronous programming of reactive systems. Kluwer, 1993.

    Google Scholar 

  28. D. Harel and A. Naamad. “The STATEMATE Semantics of Statecharts”. In: ACM Transactions on Software Engineering and Methodology (TOSEM) 5.4 (1996), pp. 293–333.

    Article  Google Scholar 

  29. D. Harel and A. Pnueli “On the development of reactive systems”. In: Logic and Models of Concurrent Systems. Ed. by K.R. Apt. Springer, 1985, pp. 477–498.

    Google Scholar 

  30. D. Harel. “Statecharts: A visual formulation for complex systems”. In: Science of Computer Programming 8.3 (1987), pp. 231–274.

    Article  MathSciNet  Google Scholar 

  31. N. Halbwachs et al. “The Synchronous Dataflow Programming Language LUSTRE”. In: Proceedings of the IEEE 79.9 (Sept. 1991), pp. 1305–1320.

    Google Scholar 

  32. R. von Hanxleden et al. “SCCharts: sequentially constructive statecharts for safety-critical applications: HW/SW-synthesis for a conservative extension of synchronous statecharts”. In: Programming Language Design and Implementation (PLDI) Ed. by M.F.P. O’Boyle and K. Pingali. Edinburgh, United Kingdom: ACM, 2014, pp. 372–383.

    Google Scholar 

  33. R. von Hanxleden et al. “Sequentially constructive concurrency: a conservative extension of the synchronous model of computation”. In: Design, Automation and Test in Europe (DATE). Ed. by E. Macii. Grenoble, France: EDA Consortium/ACM, 2013, pp. 581–586.

    Google Scholar 

  34. R. von Hanxleden et al. “Sequentially Constructive Concurrency A Conservative Extension of the Synchronous Model of Computation”. In: ACM Transactions on Embedded Computing Systems (TECS) 13.4s (July 2014), 144:1–144:26.

    Google Scholar 

  35. D.A. Huffman. “Combinational circuits with feedback”. In: Recent Developments in Switch- ing Theory Ed. by A. Mukhopadhyay Academic Press, 1971, pp. 27–55.

    Google Scholar 

  36. W.H. Kautz. “The necessity of closed circuit loops in minimal combinational circuits”. In: IEEE Transactions on Computers (T-C) C-19.2 (Feb 1970), pp. 162–166.

    Google Scholar 

  37. R. Kowalski. “Predicate Logic as Programming Language”. In: IFIP Congress Stockholm, Sweden, 1974, pp. 569–574.

    Google Scholar 

  38. K. Kunen. “Signed data dependencies in logic programs”. In: Journal of Logic Programming 7.3 (Nov 1989), pp. 231–245.

    Article  MathSciNet  Google Scholar 

  39. F. Lin and Y. Zhao. “ASSAT: Computing answer sets of a logic program by SAT solvers”. In: Artificial Intelligence 157 (2004), pp. 115–137.

    Article  MathSciNet  Google Scholar 

  40. S. Malik. “Analysis of Cyclic Combinational Circuits”. In: International Conference on Computer-Aided Design (ICCAD). Santa Clara, California USA: IEEE Computer Society, 1993, pp. 618–625.

    Google Scholar 

  41. S. Malik. “Analysis of cycle combinational circuits”. In: IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems (T-CAD) 13.7 (July 1994), pp. 950–956.

    Google Scholar 

  42. G. Mints. A Short Introduction to Intuitionistic Logic The University Series in Mathematics. Kluwer, 2000.

    MATH  Google Scholar 

  43. A. Pnueli and M. Shalev. “What is in a step: On the semantics of statecharts”. In: Theoretical Aspects of Computer Software (TACS) Ed. by T. Ito and A.R. Meyer. Vol. 526. LNCS. Sendai, Japan: Springer, 1991, pp. 244–264.

    Google Scholar 

  44. R.L. Rivest. “The Necessity of Feedback in Minimal Monotone Combinational Circuits”. In: IEEE Transactions on Computers (T-C) C-26.6 (1977), pp. 606–607.

    Google Scholar 

  45. K. Rathlev et al. “SCEst: Sequentially Constructive Esterel”. In: Formal Methods and Models for Codesign (MEMOCODE) Austin, Texas, USA: IEEE Computer Society, 2015, pp. 10–19.

    Google Scholar 

  46. K. Schneider et al. “Maximal Causality Analysis”. In: Application of Concurrency to System Design (ACSD) Ed. by J. Desel and Y. Watanabe. Saint-Malo, France: IEEE Computer Society, 2005, pp. 106–115.

    Google Scholar 

  47. K. Schneider, J. Brandt, and T. Schüle. “Causality Analysis of Synchronous Programs with Delayed Actions”. In: Compilers, Architecture and Synthesis for Embedded Systems (CASES). Washington, District of Columbia, USA: ACM, 2004, pp. 179–189.

    Google Scholar 

  48. K. Schneider. “A Verified Hardware Synthesis for Esterel”. In: Distributed and Parallel Embedded Systems (DIPES) Ed. by F.J. Rammig. Kluwer, 2000, pp. 205–214.

    Google Scholar 

  49. K. Schneider The Synchronous Programming Language Quartz. Internal Report 375. Kaiser slautern, Germany: Department of Computer Science, University of Kaiserslautern, Dec. 2009.

    Google Scholar 

  50. C.-J. Seger and J.A. Brzozowski. “An optimistic ternary simulation of gate races”. In: Theoretical Computer Science (TCS) 61.1 (Oct. 1988), pp. 49–66.

    Google Scholar 

  51. E.M. Sentovich. “Quick conservative causality analysis”. In: International Symposium on System Synthesis (ISSS) Ed. by F. Vahid and F. Catthoor. Antwerp, Belgium: ACM, 1997, pp. 2–8.

    Google Scholar 

  52. T.R. Shiple, G. Berry, and H. Touati. “Constructive Analysis of Cyclic Circuits”. In: European Design Automation Conference (EDAC) Paris, France: IEEE Computer Society, 1996, pp. 328–333.

    Google Scholar 

  53. L. Stok. “False Loops Through Resource Sharing”. In: International Conference on Computer-Aided Design (ICCAD) IEEE Computer Society 1992, pp. 345–348.

    Google Scholar 

  54. J.-P. Talpin et al. “Constructive Polychronous Systems”. In: Logical Foundations of Com- puter Science (LFCS) Ed. by S.N. Artëmov and A. Nerode. Vol. 7734. LNCS. San Diego, California, USA: Springer, 2013, pp. 335–349.

    Chapter  Google Scholar 

  55. Z. Yang et al. “A verified transformation: from polychronous programs to a variant of clocked guarded actions”. In: International Workshop on Software and Compilers for Embedded Systems (SCOPES). Ed. by H. Corporaal and S. Stuijk. Sankt Goar, Germany: ACM, 2014, pp. 128–137.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Klaus Schneider .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Schneider, K., Dahlem, M. (2018). Are Synchronous Programs Logic Programs?. In: Müller, P., Schaefer, I. (eds) Principled Software Development. Springer, Cham. https://doi.org/10.1007/978-3-319-98047-8_16

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-98047-8_16

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-98046-1

  • Online ISBN: 978-3-319-98047-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics