{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,6,27]],"date-time":"2023-06-27T04:23:27Z","timestamp":1687839807305},"reference-count":136,"publisher":"Association for Computing Machinery (ACM)","issue":"2","funder":[{"name":"RIPPES INRIA International Lab"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[2023,6,30]]},"abstract":"Embedded real-time systems are tightly integrated with their physical environment. Their correctness depends both on the outputs and timeliness of their computations. The increasing use of multi-core processors in such systems is pushing embedded programmers to be parallel programming experts. However, parallel programming is challenging because of the skills, experiences, and knowledge needed to avoid common parallel programming traps and pitfalls. This article proposes the ForeC synchronous multi-threaded programming language for the deterministic, parallel, and reactive programming of embedded multi-cores. The synchronous semantics of ForeC is designed to greatly simplify the understanding and debugging of parallel programs. ForeC ensures that ForeC programs can be compiled efficiently for parallel execution and be amenable to static timing analysis. ForeC\u2019s main innovation is its shared variable semantics that provides thread isolation and deterministic thread communication. All ForeC programs are correct by construction and deadlock free because no non-deterministic constructs are needed. We have benchmarked our ForeC compiler with several medium-sized programs (e.g., a 2.274-line ForeC program with up to 26 threads and distributed on up to 10 cores, which was based on a 2.155-line non-multi-threaded C program). These benchmark programs show that ForeC can achieve better parallel performance than Esterel, a widely used imperative synchronous language for concurrent safety-critical systems, and is competitive in performance to OpenMP, a popular desktop solution for parallel programming (which implements classical multi-threading, hence is intrinsically non-deterministic). We also demonstrate that the worst-case execution time of ForeC programs can be estimated to a high degree of precision.<\/jats:p>","DOI":"10.1145\/3591594","type":"journal-article","created":{"date-parts":[[2023,4,10]],"date-time":"2023-04-10T13:16:27Z","timestamp":1681132587000},"page":"1-74","update-policy":"http:\/\/dx.doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Synchronous Deterministic Parallel Programming for Multi-Cores with ForeC"],"prefix":"10.1145","volume":"45","author":[{"given":"Eugene","family":"Yip","sequence":"first","affiliation":[{"name":"University of Bamberg"}]},{"given":"Alain","family":"Girault","sequence":"additional","affiliation":[{"name":"University of Grenoble Alpes, Inria, CNRS, Grenoble INP, LIG"}]},{"given":"Partha S.","family":"Roop","sequence":"additional","affiliation":[{"name":"The University of Auckland"}]},{"given":"Morteza","family":"Biglari-Abhari","sequence":"additional","affiliation":[{"name":"The University of Auckland"}]}],"member":"320","published-online":{"date-parts":[[2023,6,26]]},"reference":[{"key":"e_1_3_4_2_2","doi-asserted-by":"crossref","unstructured":"Joaqu\u00edn Aguado Michael Mendler Marc Pouzet Partha S. Roop and Reinhard von Hanxleden. 2018. Deterministic concurrency: A clock-synchronised shared memory approach. In Programming Languages and Systems . Lecture Notes in Computer Science Vol. 10801. Springer 86\u2013113.","DOI":"10.1007\/978-3-319-89884-1_4"},{"key":"e_1_3_4_3_2","doi-asserted-by":"publisher","DOI":"10.1109\/DATE.2011.5763043"},{"key":"e_1_3_4_4_2","doi-asserted-by":"publisher","DOI":"10.1109\/TC.2013.28"},{"key":"e_1_3_4_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/1379022.1375600"},{"key":"e_1_3_4_6_2","first-page":"1","volume-title":"Proceedings of the 3rd USENIX Workshop on Hot Topics in Parallelism (HotPar\u201911)","author":"Aviram Amittai","year":"2011","unstructured":"Amittai Aviram and Bryan Ford. 2011. Deterministic OpenMP for race-free parallelism. In Proceedings of the 3rd USENIX Workshop on Hot Topics in Parallelism (HotPar\u201911). 1\u20134."},{"key":"e_1_3_4_7_2","doi-asserted-by":"publisher","DOI":"10.1145\/2560033"},{"key":"e_1_3_4_8_2","series-title":"IFIP Advances in Information and Communication Technology","doi-asserted-by":"crossref","first-page":"169","DOI":"10.1007\/978-3-642-15234-4_17","volume-title":"Distributed, Parallel and Biologically Inspired Systems","author":"Baudisch Daniel","year":"2010","unstructured":"Daniel Baudisch, Jens Brandt, and Klaus Schneider. 2010. Dependency-driven distribution of synchronous programs. In Distributed, Parallel and Biologically Inspired Systems, Mike Hinchey, Bernd Kleinjohann, Lisa Kleinjohann, Peter Lindsay, Franz Rammig, Jon Timmis, and Marilyn Wolf (Eds.). IFIP Advances in Information and Communication Technology, Vol. 329. Springer, Boston, MA, 169\u2013180."},{"key":"e_1_3_4_9_2","doi-asserted-by":"publisher","DOI":"10.1109\/DATE.2010.5456915"},{"key":"e_1_3_4_10_2","doi-asserted-by":"publisher","DOI":"10.1006\/inco.2000.9999"},{"key":"e_1_3_4_11_2","doi-asserted-by":"publisher","DOI":"10.1109\/JPROC.2002.805826"},{"key":"e_1_3_4_12_2","doi-asserted-by":"crossref","unstructured":"Tom Bergan Owen Anderson Joseph Devietti Luis Ceze and Dan Grossman. 2010. CoreDet: A compiler and runtime system for deterministic multithreaded execution. ACM SIGPLAN Notices 45 3 (2010) 53\u201364.","DOI":"10.1145\/1735971.1736029"},{"key":"e_1_3_4_13_2","first-page":"1","volume-title":"Proceedings of the 9th USENIX Conference on Operating Systems Design and Implementation (OSDI\u201910)","author":"Bergan Tom","year":"2010","unstructured":"Tom Bergan, Nicholas Hunt, Luis Ceze, and Steven D. Gribble. 2010. Deterministic process groups in dOS. In Proceedings of the 9th USENIX Conference on Operating Systems Design and Implementation (OSDI\u201910). 1\u201316."},{"key":"e_1_3_4_14_2","doi-asserted-by":"crossref","unstructured":"G\u00e9rard Berry. 1993. Preemption in concurrent systems. In Foundations of Software Technology and Theoretical Computer Science . Lecture Notes in Computer Science Vol. 761. Springer 72\u201393.","DOI":"10.1007\/3-540-57529-4_44"},{"key":"e_1_3_4_15_2","volume-title":"The Esterel v5 Language Primer","author":"Berry G\u00e9rard","year":"2000","unstructured":"G\u00e9rard Berry. 2000. The Esterel v5 Language Primer. Technical Report. Centre de Math\u00e9matiques Appliqu\u00e9es, Ecole des Mines and INRIA."},{"key":"e_1_3_4_16_2","doi-asserted-by":"publisher","DOI":"10.1016\/0167-6423(92)90005-V"},{"key":"e_1_3_4_17_2","doi-asserted-by":"publisher","DOI":"10.1007\/s10817-009-9148-3"},{"key":"e_1_3_4_18_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2008.05.011"},{"key":"e_1_3_4_19_2","doi-asserted-by":"crossref","unstructured":"Fr\u00e9d\u00e9ric Boussinot. 1991. Reactive C: An extension of C to program reactive systems. Software\u2014Practice & Experience 21 4 (April1991) 401\u2013428.","DOI":"10.1002\/spe.4380210406"},{"key":"e_1_3_4_20_2","volume-title":"Reactive Shared Variables Based Systems","author":"Boussinot Fr\u00e9d\u00e9ric","year":"1993","unstructured":"Fr\u00e9d\u00e9ric Boussinot. 1993. Reactive Shared Variables Based Systems. Technical Report 1849. INRIA."},{"key":"e_1_3_4_21_2","doi-asserted-by":"publisher","DOI":"10.1109\/ACSD.2009.24"},{"key":"e_1_3_4_22_2","volume-title":"Proceedings of the Avionics Conference and Exhibition","author":"Bri\u00e8re Dominique","year":"1994","unstructured":"Dominique Bri\u00e8re, Denis Ribot, Daniel Pilaud, and Jean-Louis Camus. 1994. Method and specification tools for Airbus on-board systems. In Proceedings of the Avionics Conference and Exhibition."},{"key":"e_1_3_4_23_2","doi-asserted-by":"publisher","DOI":"10.1109\/MIE.2012.2207815"},{"key":"e_1_3_4_24_2","doi-asserted-by":"publisher","DOI":"10.5555\/1987211.1987218"},{"key":"e_1_3_4_25_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2009.08.002"},{"key":"e_1_3_4_26_2","doi-asserted-by":"publisher","DOI":"10.1109\/32.798329"},{"key":"e_1_3_4_27_2","doi-asserted-by":"publisher","DOI":"10.1007\/0-8176-4404-0_17"},{"key":"e_1_3_4_28_2","doi-asserted-by":"publisher","DOI":"10.1145\/1331331.1331339"},{"key":"e_1_3_4_29_2","doi-asserted-by":"publisher","DOI":"10.1145\/570886.570889"},{"key":"e_1_3_4_30_2","volume-title":"Computer Aided Verification","author":"Closse Etienne","year":"2001","unstructured":"Etienne Closse, Michel Poize, Jacques Pulou, Joseph Sifakis, Patrick Venter, Daniel Weil, and Sergio Yovine. 2001. TAXYS: A tool for the development and verification of real-time embedded systems. In Computer Aided Verification. Lecture Notes in Computer Science, Vol. 2102. 391\u2013395."},{"key":"e_1_3_4_31_2","doi-asserted-by":"publisher","DOI":"10.1145\/2380356.2380394"},{"key":"e_1_3_4_32_2","doi-asserted-by":"crossref","unstructured":"Jean-Louis Cola\u00e7o and Marc Pouzet. 2003. Clocks as first class abstract types. In Embedded Software . Lecture Notes in Computer Science Vol. 2855. Springer 134\u2013155.","DOI":"10.1007\/978-3-540-45212-6_10"},{"key":"e_1_3_4_33_2","article-title":"Predictability considerations in the design of multi-core embedded systems","author":"Cullmann Christoph","year":"2010","unstructured":"Christoph Cullmann, Christian Ferdinand, Gernot Gebhard, Daniel Grund, Claire Maiza Burguiere, Jan Reineke, Benoit Triquet, and Reinhard Wilhelm. 2010. Predictability considerations in the design of multi-core embedded systems. In Proceedings of the 2010 Conference on Embedded Real Time Systems (ERTS\u201910).","journal-title":"Proceedings of the 2010 Conference on Embedded Real Time Systems (ERTS\u201910)."},{"key":"e_1_3_4_34_2","volume-title":"Proceedings of the International Workshop on Synchronous Languages, Applications, and Programming (SLAP\u201906)","author":"Dayaratne M. W. Sajeewa","year":"2006","unstructured":"M. W. Sajeewa Dayaratne, Partha S. Roop, and Zoran Salcic. 2006. Direct execution of Esterel using reactive microprocessors. In Proceedings of the International Workshop on Synchronous Languages, Applications, and Programming (SLAP\u201906)."},{"key":"e_1_3_4_35_2","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2011.308"},{"key":"e_1_3_4_36_2","volume-title":"Proceedings of the 18th Asia and South Pacific Design Automation Conference.","author":"Ding Huping","year":"2013","unstructured":"Huping Ding, Yun Liang, and Tulika Mitra. 2013. Shared cache aware task mapping for WCRT minimization. In Proceedings of the 18th Asia and South Pacific Design Automation Conference."},{"key":"e_1_3_4_37_2","first-page":"225","article-title":"Multicore-aware code positioning to improve worst-case performance","author":"Ding Yiqiang","year":"2011","unstructured":"Yiqiang Ding and Wei Zhang. 2011. Multicore-aware code positioning to improve worst-case performance. In Proceedings of the 2011 IEEE International Symposium on Object-Oriented Real-Time Distributed Computing.225\u2013232.","journal-title":"Proceedings of the 2011 IEEE International Symposium on Object-Oriented Real-Time Distributed Computing."},{"key":"e_1_3_4_38_2","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2003.1244533"},{"key":"e_1_3_4_39_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICCD.2009.5413177"},{"key":"e_1_3_4_40_2","doi-asserted-by":"publisher","DOI":"10.1145\/1278480.1278545"},{"key":"e_1_3_4_41_2","doi-asserted-by":"publisher","DOI":"10.1155\/2007\/52651"},{"key":"e_1_3_4_42_2","doi-asserted-by":"publisher","DOI":"10.1145\/604174.604176"},{"key":"e_1_3_4_43_2","doi-asserted-by":"publisher","DOI":"10.1038\/scientificamerican1070-120"},{"key":"e_1_3_4_44_2","first-page":"1","volume-title":"Bringing Theory to Practice: Predictability and Performance in Embedded Systems,","author":"Gebhard Gernot","year":"2011","unstructured":"Gernot Gebhard, Christoph Cullmann, and Reinhold Heckmann. 2011. Software structure and WCET predictability. In Bringing Theory to Practice: Predictability and Performance in Embedded Systems,Philipp Lucas, Lothar Thiele, Benoit Triquet, Theo Ungerer, and Reinhard Wilhelm (Eds.). OpenAccess Series in Informatics (OASIcs), Vol. 18. Schloss Dagstuhl\u2013Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany, 1\u201310."},{"key":"e_1_3_4_45_2","volume-title":"Proceedings of the International Workshop on Synchronous Languages, Applications, and Programs (SLAP\u201905).","author":"Girault Alain","year":"2005","unstructured":"Alain Girault. 2005. A survey of automatic distribution method for synchronous programs. In Proceedings of the International Workshop on Synchronous Languages, Applications, and Programs (SLAP\u201905)."},{"key":"e_1_3_4_46_2","doi-asserted-by":"publisher","DOI":"10.1109\/FDL.2019.8876950"},{"key":"e_1_3_4_47_2","doi-asserted-by":"publisher","DOI":"10.1145\/1165780.1165786"},{"key":"e_1_3_4_48_2","unstructured":"GNU. 2013. GNU Radio. Retrieved April 17 2023 from http:\/\/gnuradio.org."},{"key":"e_1_3_4_49_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-24650-0_33"},{"key":"e_1_3_4_50_2","doi-asserted-by":"publisher","DOI":"10.1109\/5.97301"},{"key":"e_1_3_4_51_2","doi-asserted-by":"publisher","DOI":"10.1109\/5.97300"},{"key":"e_1_3_4_52_2","doi-asserted-by":"publisher","DOI":"10.5555\/2190025.2190075"},{"key":"e_1_3_4_53_2","doi-asserted-by":"publisher","DOI":"10.1016\/0167-6423(87)90035-9"},{"key":"e_1_3_4_54_2","doi-asserted-by":"crossref","unstructured":"D. Harel and A. Pnueli. 1985. On the development of reactive systems. In Logics and Models of Concurrent Systems . NATO ASI Series Vol. 13. Springer 477\u2013498.","DOI":"10.1007\/978-3-642-82453-1_17"},{"key":"e_1_3_4_55_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2003.09.016"},{"key":"e_1_3_4_56_2","doi-asserted-by":"publisher","DOI":"10.1109\/RTCSA.2019.8864570"},{"key":"e_1_3_4_57_2","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2006.212"},{"key":"e_1_3_4_58_2","unstructured":"Intel. 2012. Intel Cilk Plus. Retrieved April 17 2023 from http:\/\/software.intel.com\/en-us\/intel-cilk-plus."},{"key":"e_1_3_4_59_2","unstructured":"Intel. 2012. Intel Thread Building Blocks. Retrieved April 17 2023 from http:\/\/threadingbuildingblocks.org."},{"key":"e_1_3_4_60_2","unstructured":"Intel. 2022. Intel\u00ae VTune\u2122 Profiler. Retrieved April 17 2023 from https:\/\/www.intel.com\/content\/www\/us\/en\/developer\/tools\/oneapi\/vtune-profiler.html."},{"key":"e_1_3_4_61_2","volume-title":"IEC 61508: Functional Safety of Electrical\/Electronic\/Programmable Electronic Safety-Related Systems. Standard","author":"Commission International Electrotechnical","year":"2010","unstructured":"International Electrotechnical Commission. 2010. IEC 61508: Functional Safety of Electrical\/Electronic\/Programmable Electronic Safety-Related Systems. Standard. IEC."},{"key":"e_1_3_4_62_2","unstructured":"ISO\/IEC JTC1\/SC22\/WG14. 2011. ISO\/IEC 9899:2011 . ISO."},{"key":"e_1_3_4_63_2","volume-title":"ISO 26262-1:2011. Standard","year":"2011","unstructured":"ISO\/TC22\/SC3. 2011. ISO 26262-1:2011. Standard. ISO."},{"key":"e_1_3_4_64_2","unstructured":"Jet Propulsion Laboratory. 2009. JPL Institutional Coding Standard for the C Programming Language. Standard 1.0. Retrieved April 17 2023 from http:\/\/lars-lab.jpl.nasa.gov\/JPL_Coding_Standard_C.pdf."},{"key":"e_1_3_4_65_2","first-page":"275","volume-title":"Proceedings of the General Track of the USENIX Annual Technical Conference (ATEC\u201902)","author":"Jim Trevor","year":"2002","unstructured":"Trevor Jim, J. Greg Morrisett, Dan Grossman, Michael W. Hicks, James Cheney, and Yanling Wang. 2002. Cyclone: A safe dialect of C. In Proceedings of the General Track of the USENIX Annual Technical Conference (ATEC\u201902). 275\u2013288."},{"key":"e_1_3_4_66_2","doi-asserted-by":"publisher","DOI":"10.1007\/s11241-012-9155-z"},{"key":"e_1_3_4_67_2","doi-asserted-by":"publisher","DOI":"10.1145\/1837274.1837288"},{"key":"e_1_3_4_68_2","unstructured":"Andrey Karpov. 2011. Parallel Lint. Retrieved April 17 2023 from http:\/\/software.intel.com\/en-us\/articles\/parallel-lint."},{"key":"e_1_3_4_69_2","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"117","DOI":"10.1007\/978-3-642-33675-1_10","volume-title":"Computer Safety, Reliability, and Security","author":"Kastner Daniel","year":"2012","unstructured":"Daniel Kastner, Marc Schlickling, Markus Pister, Christoph Cullmann, Gernot Gebhard, Reinhold Heckmann, and Christian Ferdinand. 2012. Meeting real-time requirements with multi-core processors. In Computer Safety, Reliability, and Security. Lecture Notes in Computer Science, Vol. 7613. Springer, 117\u2013131."},{"key":"e_1_3_4_70_2","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0100613"},{"key":"e_1_3_4_71_2","volume-title":"C Traps and Pitfalls","author":"Koenig Andrew","year":"1988","unstructured":"Andrew Koenig. 1988. C Traps and Pitfalls. Addison-Wesley."},{"key":"e_1_3_4_72_2","doi-asserted-by":"publisher","DOI":"10.1145\/2024724.2024837"},{"key":"e_1_3_4_73_2","doi-asserted-by":"publisher","DOI":"10.1145\/309847.309989"},{"key":"e_1_3_4_74_2","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2006.127"},{"key":"e_1_3_4_75_2","doi-asserted-by":"publisher","DOI":"10.1145\/1506409.1506426"},{"key":"e_1_3_4_76_2","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2009.41"},{"key":"e_1_3_4_77_2","doi-asserted-by":"publisher","DOI":"10.1109\/TC.2010.246"},{"key":"e_1_3_4_78_2","doi-asserted-by":"publisher","DOI":"10.1007\/s11241-012-9160-2"},{"key":"e_1_3_4_79_2","doi-asserted-by":"publisher","DOI":"10.1145\/3448128"},{"key":"e_1_3_4_80_2","doi-asserted-by":"publisher","DOI":"10.1145\/1346281.1346323"},{"key":"e_1_3_4_81_2","doi-asserted-by":"publisher","DOI":"10.1109\/REAL.1999.818824"},{"key":"e_1_3_4_82_2","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"550","DOI":"10.1007\/BFb0084815","volume-title":"CONCUR\u201992","author":"Maraninchi Florence","year":"1992","unstructured":"Florence Maraninchi. 1992. Operational and compositional semantics of synchronous automaton compositions. In CONCUR\u201992. Lecture Notes in Computer Science, Vol. 630. Springer, 550\u2013564."},{"key":"e_1_3_4_83_2","doi-asserted-by":"publisher","DOI":"10.1145\/76894.76897"},{"key":"e_1_3_4_84_2","doi-asserted-by":"publisher","DOI":"10.1109\/DATE.2009.5090639"},{"key":"e_1_3_4_85_2","volume-title":"MPI: A Message-Passing Interface StandardVersion 3.0","author":"Forum Message Passing Interface","year":"2012","unstructured":"Message Passing Interface Forum. 2012. MPI: A Message-Passing Interface StandardVersion 3.0. Message Passing Interface Forum."},{"key":"e_1_3_4_86_2","unstructured":"Motor Industry Software Reliability Association. 2013. MISRA-C: 2012: Guidelines for the Use of the C Language in Critical Systems . Motor Industry Software Reliability Association."},{"key":"e_1_3_4_87_2","doi-asserted-by":"publisher","DOI":"10.1109\/TII.2010.2072511"},{"key":"e_1_3_4_88_2","doi-asserted-by":"publisher","DOI":"10.1109\/DATE.2012.6176464"},{"key":"e_1_3_4_89_2","volume-title":"Proceedings of the 6th International Workshop on Worst-Case Execution Time (WCET) Analysis (WCET\u201906).","author":"Nemer Fadia","year":"2006","unstructured":"Fadia Nemer, Hugues Cass\u00e9, Pascal Sainrat, Jean-Paul Bahsoun, and Marianne De Michiel. 2006. PapaBench: A free real-time benchmark. In Proceedings of the 6th International Workshop on Worst-Case Execution Time (WCET) Analysis (WCET\u201906)."},{"key":"e_1_3_4_90_2","doi-asserted-by":"publisher","DOI":"10.5555\/645393.651894"},{"key":"e_1_3_4_91_2","doi-asserted-by":"publisher","DOI":"10.1145\/1508244.1508256"},{"key":"e_1_3_4_92_2","volume-title":"OpenMP Application Program Interface. Standard 4.0","author":"Board OpenMP Architecture Review","year":"2013","unstructured":"OpenMP Architecture Review Board. 2013. OpenMP Application Program Interface. Standard 4.0. OpenMP Architecture Review Board."},{"key":"e_1_3_4_93_2","doi-asserted-by":"publisher","DOI":"10.1007\/s10626-011-0107-x"},{"key":"e_1_3_4_94_2","doi-asserted-by":"publisher","DOI":"10.1109\/IOLTS.2011.5993807"},{"key":"e_1_3_4_95_2","volume-title":"From Concurrent Multi-Clock Programs to Concurrent Multi-Threaded Implementations","author":"Papailiopoulou Virginia","year":"2011","unstructured":"Virginia Papailiopoulou, Dumitru Potop-Butucaru, Yves Sorel, Robert De Simone, Loic Besnard, and Jean-Pierre Talpin. 2011. From Concurrent Multi-Clock Programs to Concurrent Multi-Threaded Implementations. Rapport de recherche RR-7577. INRIA."},{"key":"e_1_3_4_96_2","doi-asserted-by":"publisher","DOI":"10.5555\/77493"},{"key":"e_1_3_4_97_2","volume-title":"Proceedings of the 29th IEEE Real-Time Systems Symposium (RTSS\u201908).","author":"Plazar Sascha","year":"2008","unstructured":"Sascha Plazar, Paul Lokuciejewski, and Peter Marwedel. 2008. A retargetable framework for multi-objective WCET-aware high-level compiler optimizations. In Proceedings of the 29th IEEE Real-Time Systems Symposium (RTSS\u201908).49\u201352."},{"key":"e_1_3_4_98_2","volume-title":"A Structural Approach to Operational Semantics","author":"Plotkin Gordon D.","year":"1981","unstructured":"Gordon D. Plotkin. 1981. A Structural Approach to Operational Semantics. Technical Report DAIMI FN-19. Computer Science Department, Aarhus University."},{"key":"e_1_3_4_99_2","doi-asserted-by":"publisher","DOI":"10.1145\/1944862.1944867"},{"key":"e_1_3_4_100_2","doi-asserted-by":"publisher","DOI":"10.1145\/1879021.1879048"},{"key":"e_1_3_4_101_2","doi-asserted-by":"publisher","DOI":"10.5555\/1534411"},{"key":"e_1_3_4_102_2","first-page":"21","volume-title":"13th International Workshop on Worst-Case Execution Time Analysis, Claire Maiza (Ed.).","author":"Potop-Butucaru Dumitru","year":"2013","unstructured":"Dumitru Potop-Butucaru and Isabelle Puaut. 2013. Integrated worst-case execution time estimation of multicore applications. In 13th International Workshop on Worst-Case Execution Time Analysis, Claire Maiza (Ed.). OpenAccess Series in Informatics, Vol. 30. Schloss Dagstuhl\u2013Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany, 21\u201331."},{"key":"e_1_3_4_103_2","unstructured":"Radio Technical Commission for Aeronautics. 1992. Software Considerations in Airborne Systems and Equipment Certification . Standard DO-178B. Radio Technical Commission for Aeronautics."},{"key":"e_1_3_4_104_2","doi-asserted-by":"publisher","DOI":"10.5555\/1939399.1939430"},{"key":"e_1_3_4_105_2","doi-asserted-by":"publisher","DOI":"10.1145\/2516821.2516841"},{"key":"e_1_3_4_106_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.micpro.2005.05.001"},{"key":"e_1_3_4_107_2","doi-asserted-by":"publisher","DOI":"10.1109\/RTAS.2011.28"},{"key":"e_1_3_4_108_2","doi-asserted-by":"publisher","DOI":"10.1145\/357114.357116"},{"key":"e_1_3_4_109_2","doi-asserted-by":"publisher","DOI":"10.1109\/DATE.2011.5763319"},{"key":"e_1_3_4_110_2","doi-asserted-by":"publisher","DOI":"10.1145\/3063129"},{"key":"e_1_3_4_111_2","doi-asserted-by":"publisher","DOI":"10.23919\/DATE.2019.8715081"},{"key":"e_1_3_4_112_2","first-page":"21","volume-title":"Proceedings of the International Workshop on Worst-Case Execution Time (WCET) Analysis (WCET\u201905)","author":"Souyris Jean","year":"2005","unstructured":"Jean Souyris, Erwan Le Pavec, Guillaume Himbert, Victor J\u00e9gu, Guillaume Borios, and Reinhold Heckmann. 2005. Computing the worst case execution time of an avionics program by abstract interpretation. In Proceedings of the International Workshop on Worst-Case Execution Time (WCET) Analysis (WCET\u201905). 21\u201324."},{"key":"e_1_3_4_113_2","doi-asserted-by":"publisher","DOI":"10.1145\/322344.322346"},{"key":"e_1_3_4_114_2","doi-asserted-by":"publisher","DOI":"10.1145\/1216374.1216376"},{"key":"e_1_3_4_115_2","doi-asserted-by":"publisher","DOI":"10.1145\/1176887.1176908"},{"key":"e_1_3_4_116_2","unstructured":"IEEE and The Open Group. 2008. POSIX.1-2008 . Standard Issue 7. IEEE and The Open Group."},{"key":"e_1_3_4_117_2","unstructured":"The UPC Consortium. 2013. UPC Language Specifications . Standard 1.3. UPC Consortium."},{"key":"e_1_3_4_118_2","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2010.78"},{"key":"e_1_3_4_119_2","doi-asserted-by":"publisher","DOI":"10.1145\/79173.79181"},{"key":"e_1_3_4_120_2","doi-asserted-by":"publisher","DOI":"10.1145\/1529282.1529649"},{"key":"e_1_3_4_121_2","doi-asserted-by":"publisher","DOI":"10.1145\/1629335.1629366"},{"key":"e_1_3_4_122_2","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594310"},{"key":"e_1_3_4_123_2","doi-asserted-by":"publisher","DOI":"10.7873\/DATE.2013.128"},{"key":"e_1_3_4_124_2","doi-asserted-by":"publisher","DOI":"10.1109\/CASES.2013.6662526"},{"key":"e_1_3_4_125_2","unstructured":"Jack Whitham. 2012. Scratchpad Memory Management Unit. Retrieved April 17 2023 from http:\/\/www.jwhitham.org\/c\/smmu.html."},{"key":"e_1_3_4_126_2","doi-asserted-by":"publisher","DOI":"10.1145\/1629335.1629371"},{"key":"e_1_3_4_127_2","doi-asserted-by":"publisher","DOI":"10.1145\/1347375.1347389"},{"key":"e_1_3_4_128_2","doi-asserted-by":"publisher","DOI":"10.1145\/2500886"},{"key":"e_1_3_4_129_2","unstructured":"Xilinx. 2012. MicroBlaze Processor Reference Guide. Retrieved April 17 2023 from http:\/\/www.xilinx.com\/support\/documentation\/sw_manuals\/xilinx13_4\/mb_ref_guide.pdf."},{"key":"e_1_3_4_130_2","doi-asserted-by":"publisher","DOI":"10.1109\/MCSoC.2016.13"},{"key":"e_1_3_4_131_2","doi-asserted-by":"publisher","DOI":"10.1109\/ACSD.2013.19"},{"key":"e_1_3_4_132_2","volume-title":"Proceedings of the International Workshop on Synchronous Languages, Applications, and Programming (SLAP\u201906)","author":"Yoong Li Hsien","year":"2006","unstructured":"Li Hsien Yoong, Partha S. Roop, Zoran Salcic, and Flavius Gruian. 2006. Compiling Esterel for distributed execution. In Proceedings of the International Workshop on Synchronous Languages, Applications, and Programming (SLAP\u201906)."},{"key":"e_1_3_4_133_2","volume-title":"Architectures Specific Compilation for Efficient Execution of Esterel","author":"Yuan Simon","year":"2013","unstructured":"Simon Yuan. 2013. Architectures Specific Compilation for Efficient Execution of Esterel. Ph. D. Dissertation. Department of Electrical and Electronic Engineering, The University of Auckland."},{"key":"e_1_3_4_134_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2008.01.005"},{"key":"e_1_3_4_135_2","doi-asserted-by":"publisher","DOI":"10.1109\/DSD.2011.97"},{"key":"e_1_3_4_136_2","doi-asserted-by":"publisher","DOI":"10.1145\/2103799.2103808"},{"key":"e_1_3_4_137_2","doi-asserted-by":"publisher","DOI":"10.1109\/RTAS.2014.6925994"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3591594","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,6,26]],"date-time":"2023-06-26T12:39:24Z","timestamp":1687783164000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3591594"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,6,26]]},"references-count":136,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2023,6,30]]}},"alternative-id":["10.1145\/3591594"],"URL":"https:\/\/doi.org\/10.1145\/3591594","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"value":"0164-0925","type":"print"},{"value":"1558-4593","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,6,26]]},"assertion":[{"value":"2022-03-25","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-03-08","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-06-26","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}