skip to main content
10.1145/1967677.1967687acmconferencesArticle/Chapter ViewAbstractPublication PagescpsweekConference Proceedingsconference-collections
research-article

Divide and recycle: types and compilation for a hybrid synchronous language

Published: 11 April 2011 Publication History

Abstract

Hybrid modelers such as Simulink have become corner stones of embedded systems development. They allow both discrete controllers and their continuous environments to be expressed in a single language. Despite the availability of such tools, there remain a number of issues related to the lack of reproducibility of simulations and to the separation of the continuous part, which has to be exercised by a numerical solver, from the discrete part, which must be guaranteed not to evolve during a step.
Starting from a minimal, yet full-featured, Lustre-like synchronous language, this paper presents a conservative extension where data-flow equations can be mixed with ordinary differential equations (ODEs) with possible reset. A type system is proposed to statically distinguish discrete computations from continuous ones and to ensure that signals are used in their proper domains. We propose a semantics based on non-standard analysis which gives a synchronous interpretation to the whole language, clarifies the discrete/continuous interaction and the treatment of zero-crossings, and also allows the correctness of the type system to be established.
The extended data-flow language is realized through a source-to-source transformation into a synchronous subset, which can then be compiled using existing tools into routines that are both efficient and bounded in their use of memory. These routines are orchestrated with a single off-the-shelf numerical solver using a simple but precise algorithm which treats causally-related cascades of zero-crossings. We have validated the viability of the approach through experiments with the Sundials library.

References

[1]
A. Benveniste. Compositional and uniform modelling of hybrid systems. IEEE Trans. on Automatic Control, 43(4):579--584, April 1998.
[2]
A. Benveniste, B. Caillaud, and M. Pouzet. The fundamentals of hybrid systems modelers. In 49th IEEE Int. Conf. on Decision and Control (CDC), Atlanta, Georgia, USA, December 2010.
[3]
A. Benveniste, P. LeGuernic, and Ch. Jacquemot. Synchronous programming with events and relations: the SIGNAL language and its semantics. Science of Computer Programming, 16:103--149, 1991.
[4]
D. Biernacki, J.-L. Cola\c co, G. Hamon, and M. Pouzet. Clock-directed modular code generation of synchronous data-flow languages. In ACM Int. Conf. on Languages, Compilers, and Tools for Embedded Systems (LCTES), Tucson, Arizona, June 2008.
[5]
S. Bliudze and D. Krob. Modelling of complex systems: Systems as dataflow machines. Fundamenta Informaticae, 91(2):251--274, 2009.
[6]
S.L. Campbell, J.-Ph. Chancelier, and R. Nikoukhah. Modeling and Simulation in Scilab/Scicos. Springer, 2006.
[7]
L.P. Carloni, R. Passerone, A. Pinto, and A.L. Sangiovanni-Vincentelli. Languages and tools for hybrid systems design. Foundations and Trends in Electronic Design Automation, 1(1/2), 2006.
[8]
B. Denckla and P.J. Mosterman. Stream- and state-based semantics of hierarchy in block diagrams. In 17th IFAC World Congress, pages 7955--7960, Seoul, Korea, 2008.
[9]
C. Elliott and P. Hudak. Functional reactive animation. In Proc. of the ACM SIGPLAN Int. Conf. on Functional Programming (ICFP'97), pages 263--273, Amsterdam, The Netherlands, August 1997.
[10]
N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The synchronous dataflow programming language lustre. Proc. of the IEEE, 79(9):1305--1320, September 1991.
[11]
A.C. Hindmarsh, P.N. Brown, K.E. Grant, S.L. Lee, R. Serban, D.E. Shumaker, and C.S. Woodward. SUNDIALS: Suite of nonlinear and differential/algebraic equation solvers. ACM Trans. on Mathematical Software, 31(3):363--396, September 2005.
[12]
E.A. Lee and A.L. Sangiovanni-Vincentelli. A framework for comparing models of computation. IEEE Trans. on CAD of Integrated Circuits and Systems, 17(12):1217--1229, 1998.
[13]
E.A. Lee and H. Zheng. Operational semantics of hybrid systems. In Hybrid Systems: Computation and Control (HSCC), volume 3414 of LNCS, pages 25--53, 2005.
[14]
E.A. Lee and H. Zheng. Leveraging synchronous language principles for heterogeneous modeling and design of embedded systems. In Proc. of the 7th ACM & IEEE Int. Conf. on Embedded software (EMSOFT), pages 114--123, 2007.
[15]
P.J. Mosterman, J. Zander, G. Hamon, and B. Denckla. Towards computational hybrid system semantics for time-based block diagrams. In 3rd IFAC Conf. on Analysis and Design of Hybrid Systems (ADHS'09), pages 376--385, Zaragoza, Spain, September 2009.
[16]
M. Najafi and R. Nikoukhah. Implementation of hybrid automata in scicos. In IEEE Multi-conference on Systems and Control, 2007.
[17]
R. Nikoukhah. Hybrid dynamics in modelica: Should all events be considered synchronous? In First Int. Workshop on Equation-Based Object Oriented Languages and Tools (EOOLT 2007), pages 37--48, Berlin, Germany, 2007.
[18]
H. Nilsson, A. Courtney, and J. Peterson. Functional reactive programming, continued. In Haskell'02: Proc. of the 2002 ACM SIGPLAN workshop on Haskell, pages 51--64, Pittsburgh, Pennsylvania, January 2002.
[19]
M. Pouzet. Lucid Synchrone, version 3. Tutorial and reference manual. Université Paris-Sud, LRI, April 2006. Distribution available at: www.lri.fr/$\sim$pouzet/lucid-synchrone.
[20]
S. Tripakis, C. Sofronis, P. Caspi, and A. Curic. Translating discrete-time simulink to lustre. ACM Trans. on Embedded Computing Systems, 4(4):779--818, 2005.

Cited By

View all
  • (2018)Building a Hybrid Systems Modeler on Synchronous Languages PrinciplesProceedings of the IEEE10.1109/JPROC.2018.2858016106:9(1568-1592)Online publication date: Sep-2018
  • (2018)Symbolic Simulation of Dataflow Synchronous Programs with TimersLanguages, Design Methods, and Tools for Electronic System Design10.1007/978-3-030-02215-0_3(45-70)Online publication date: 20-Dec-2018
  • (2017)A formally verified compiler for LustreACM SIGPLAN Notices10.1145/3140587.306235852:6(586-601)Online publication date: 14-Jun-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
LCTES '11: Proceedings of the 2011 SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systems
April 2011
182 pages
ISBN:9781450305556
DOI:10.1145/1967677
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 46, Issue 5
    LCTES '10
    May 2011
    170 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2016603
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 April 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. block diagrams
  2. compilation
  3. hybrid systems
  4. real-time systems
  5. semantics
  6. synchronous languages
  7. type systems

Qualifiers

  • Research-article

Conference

LCTES '11

Acceptance Rates

Overall Acceptance Rate 116 of 438 submissions, 26%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 19 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2018)Building a Hybrid Systems Modeler on Synchronous Languages PrinciplesProceedings of the IEEE10.1109/JPROC.2018.2858016106:9(1568-1592)Online publication date: Sep-2018
  • (2018)Symbolic Simulation of Dataflow Synchronous Programs with TimersLanguages, Design Methods, and Tools for Electronic System Design10.1007/978-3-030-02215-0_3(45-70)Online publication date: 20-Dec-2018
  • (2017)A formally verified compiler for LustreACM SIGPLAN Notices10.1145/3140587.306235852:6(586-601)Online publication date: 14-Jun-2017
  • (2017)A Synchronous Look at the Simulink Standard LibraryACM Transactions on Embedded Computing Systems10.1145/312651616:5s(1-24)Online publication date: 27-Sep-2017
  • (2017)A formally verified compiler for LustreProceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3062341.3062358(586-601)Online publication date: 14-Jun-2017
  • (2017)Symbolic simulation of dataflow synchronous programs with timers2017 Forum on Specification and Design Languages (FDL)10.1109/FDL.2017.8303894(1-8)Online publication date: Sep-2017
  • (2017)A type-based analysis of causality loops in hybrid systems modelersNonlinear Analysis: Hybrid Systems10.1016/j.nahs.2017.04.00426(168-189)Online publication date: Nov-2017
  • (2015)Building a hybrid systems modeler from synchronous language principlesProceedings of the 12th International Conference on Embedded Software10.5555/2830865.2830879(125-126)Online publication date: 4-Oct-2015
  • (2015)Building a hybrid systems modeler from synchronous language principles2015 International Conference on Embedded Software (EMSOFT)10.1109/EMSOFT.2015.7318267(125-126)Online publication date: Oct-2015
  • (2015)A Synchronous-Based Code Generator for Explicit Hybrid Systems LanguagesCompiler Construction10.1007/978-3-662-46663-6_4(69-88)Online publication date: 2015
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media