A calculus for Esterel: if can, can. if no can, no can

The language Esterel has found success in many safety-critical applications, such as fly-by-wire systems and nuclear power plant control software. Its imperative style is natural to programmers building such systems and its precise semantics makes it work well for reasoning about programs. Existing...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Proceedings of ACM on programming languages 2019-01, Vol.3 (POPL), p.1-29
Hauptverfasser: Florence, Spencer P., You, Shu-Hung, Tov, Jesse A., Findler, Robert Bruce
Format: Artikel
Sprache:eng
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 29
container_issue POPL
container_start_page 1
container_title Proceedings of ACM on programming languages
container_volume 3
creator Florence, Spencer P.
You, Shu-Hung
Tov, Jesse A.
Findler, Robert Bruce
description The language Esterel has found success in many safety-critical applications, such as fly-by-wire systems and nuclear power plant control software. Its imperative style is natural to programmers building such systems and its precise semantics makes it work well for reasoning about programs. Existing semantics of Esterel generally fall into two categories: translation to Boolean circuits, or operational semantics that give a procedure for running a whole program. In contrast, equational theories enable reasoning about program behavior via equational rewrites at the source level. Such theories form the basis for proofs of transformations inside compilers or for program refactorings, and defining program evaluation syntactically. This paper presents the first such equational calculus for Esterel. It also illustrates the calculus’s usefulness with a series of example equivalences and discuss how it enabled us to find bugs in Esterel implementations.
doi_str_mv 10.1145/3290374
format Article
fullrecord <record><control><sourceid>crossref</sourceid><recordid>TN_cdi_crossref_primary_10_1145_3290374</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>10_1145_3290374</sourcerecordid><originalsourceid>FETCH-LOGICAL-c188t-d05e5659bb42356103e4ccaec10bf5fe188d5251120e79ae3f574e7171764e4a3</originalsourceid><addsrcrecordid>eNpNj0FLw0AQhRdRsNTiX8jNi6kzuzPZrLdSahUKXvQcNttZqMRGdtuD_96E9CAD772PGQaeUvcIS0TiJ6MdGEtXaqbJcomk8fpfvlWLnL8AAJ2h2riZqlZF8F04d-dcxD4Vm3ySJN1zcYjD4vg4ynKEYz_x5HfqJvouy-Lic_X5svlYv5a79-3berUrA9b1qdwDC1fs2pa04QrBCIXgJSC0kaMMR3vWjKhBrPNiIlsSi8NUJOTNXD1Mf0Pqc04Sm590-Pbpt0FoxsbNpbH5A5XjRBQ</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>A calculus for Esterel: if can, can. if no can, no can</title><source>ACM Digital Library</source><source>Elektronische Zeitschriftenbibliothek - Frei zugängliche E-Journals</source><creator>Florence, Spencer P. ; You, Shu-Hung ; Tov, Jesse A. ; Findler, Robert Bruce</creator><creatorcontrib>Florence, Spencer P. ; You, Shu-Hung ; Tov, Jesse A. ; Findler, Robert Bruce</creatorcontrib><description>The language Esterel has found success in many safety-critical applications, such as fly-by-wire systems and nuclear power plant control software. Its imperative style is natural to programmers building such systems and its precise semantics makes it work well for reasoning about programs. Existing semantics of Esterel generally fall into two categories: translation to Boolean circuits, or operational semantics that give a procedure for running a whole program. In contrast, equational theories enable reasoning about program behavior via equational rewrites at the source level. Such theories form the basis for proofs of transformations inside compilers or for program refactorings, and defining program evaluation syntactically. This paper presents the first such equational calculus for Esterel. It also illustrates the calculus’s usefulness with a series of example equivalences and discuss how it enabled us to find bugs in Esterel implementations.</description><identifier>ISSN: 2475-1421</identifier><identifier>EISSN: 2475-1421</identifier><identifier>DOI: 10.1145/3290374</identifier><language>eng</language><ispartof>Proceedings of ACM on programming languages, 2019-01, Vol.3 (POPL), p.1-29</ispartof><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c188t-d05e5659bb42356103e4ccaec10bf5fe188d5251120e79ae3f574e7171764e4a3</citedby><cites>FETCH-LOGICAL-c188t-d05e5659bb42356103e4ccaec10bf5fe188d5251120e79ae3f574e7171764e4a3</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,776,780,27901,27902</link.rule.ids></links><search><creatorcontrib>Florence, Spencer P.</creatorcontrib><creatorcontrib>You, Shu-Hung</creatorcontrib><creatorcontrib>Tov, Jesse A.</creatorcontrib><creatorcontrib>Findler, Robert Bruce</creatorcontrib><title>A calculus for Esterel: if can, can. if no can, no can</title><title>Proceedings of ACM on programming languages</title><description>The language Esterel has found success in many safety-critical applications, such as fly-by-wire systems and nuclear power plant control software. Its imperative style is natural to programmers building such systems and its precise semantics makes it work well for reasoning about programs. Existing semantics of Esterel generally fall into two categories: translation to Boolean circuits, or operational semantics that give a procedure for running a whole program. In contrast, equational theories enable reasoning about program behavior via equational rewrites at the source level. Such theories form the basis for proofs of transformations inside compilers or for program refactorings, and defining program evaluation syntactically. This paper presents the first such equational calculus for Esterel. It also illustrates the calculus’s usefulness with a series of example equivalences and discuss how it enabled us to find bugs in Esterel implementations.</description><issn>2475-1421</issn><issn>2475-1421</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2019</creationdate><recordtype>article</recordtype><recordid>eNpNj0FLw0AQhRdRsNTiX8jNi6kzuzPZrLdSahUKXvQcNttZqMRGdtuD_96E9CAD772PGQaeUvcIS0TiJ6MdGEtXaqbJcomk8fpfvlWLnL8AAJ2h2riZqlZF8F04d-dcxD4Vm3ySJN1zcYjD4vg4ynKEYz_x5HfqJvouy-Lic_X5svlYv5a79-3berUrA9b1qdwDC1fs2pa04QrBCIXgJSC0kaMMR3vWjKhBrPNiIlsSi8NUJOTNXD1Mf0Pqc04Sm590-Pbpt0FoxsbNpbH5A5XjRBQ</recordid><startdate>20190102</startdate><enddate>20190102</enddate><creator>Florence, Spencer P.</creator><creator>You, Shu-Hung</creator><creator>Tov, Jesse A.</creator><creator>Findler, Robert Bruce</creator><scope>AAYXX</scope><scope>CITATION</scope></search><sort><creationdate>20190102</creationdate><title>A calculus for Esterel: if can, can. if no can, no can</title><author>Florence, Spencer P. ; You, Shu-Hung ; Tov, Jesse A. ; Findler, Robert Bruce</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c188t-d05e5659bb42356103e4ccaec10bf5fe188d5251120e79ae3f574e7171764e4a3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2019</creationdate><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Florence, Spencer P.</creatorcontrib><creatorcontrib>You, Shu-Hung</creatorcontrib><creatorcontrib>Tov, Jesse A.</creatorcontrib><creatorcontrib>Findler, Robert Bruce</creatorcontrib><collection>CrossRef</collection><jtitle>Proceedings of ACM on programming languages</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Florence, Spencer P.</au><au>You, Shu-Hung</au><au>Tov, Jesse A.</au><au>Findler, Robert Bruce</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>A calculus for Esterel: if can, can. if no can, no can</atitle><jtitle>Proceedings of ACM on programming languages</jtitle><date>2019-01-02</date><risdate>2019</risdate><volume>3</volume><issue>POPL</issue><spage>1</spage><epage>29</epage><pages>1-29</pages><issn>2475-1421</issn><eissn>2475-1421</eissn><abstract>The language Esterel has found success in many safety-critical applications, such as fly-by-wire systems and nuclear power plant control software. Its imperative style is natural to programmers building such systems and its precise semantics makes it work well for reasoning about programs. Existing semantics of Esterel generally fall into two categories: translation to Boolean circuits, or operational semantics that give a procedure for running a whole program. In contrast, equational theories enable reasoning about program behavior via equational rewrites at the source level. Such theories form the basis for proofs of transformations inside compilers or for program refactorings, and defining program evaluation syntactically. This paper presents the first such equational calculus for Esterel. It also illustrates the calculus’s usefulness with a series of example equivalences and discuss how it enabled us to find bugs in Esterel implementations.</abstract><doi>10.1145/3290374</doi><tpages>29</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 2475-1421
ispartof Proceedings of ACM on programming languages, 2019-01, Vol.3 (POPL), p.1-29
issn 2475-1421
2475-1421
language eng
recordid cdi_crossref_primary_10_1145_3290374
source ACM Digital Library; Elektronische Zeitschriftenbibliothek - Frei zugängliche E-Journals
title A calculus for Esterel: if can, can. if no can, no can
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-02-05T06%3A24%3A17IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-crossref&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=A%20calculus%20for%20Esterel:%20if%20can,%20can.%20if%20no%20can,%20no%20can&rft.jtitle=Proceedings%20of%20ACM%20on%20programming%20languages&rft.au=Florence,%20Spencer%20P.&rft.date=2019-01-02&rft.volume=3&rft.issue=POPL&rft.spage=1&rft.epage=29&rft.pages=1-29&rft.issn=2475-1421&rft.eissn=2475-1421&rft_id=info:doi/10.1145/3290374&rft_dat=%3Ccrossref%3E10_1145_3290374%3C/crossref%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true