{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,7,26]],"date-time":"2025-07-26T09:32:03Z","timestamp":1753522323528,"version":"3.40.3"},"publisher-location":"Cham","reference-count":28,"publisher":"Springer Nature Switzerland","isbn-type":[{"type":"print","value":"9783031520372"},{"type":"electronic","value":"9783031520389"}],"license":[{"start":{"date-parts":[[2023,1,1]],"date-time":"2023-01-01T00:00:00Z","timestamp":1672531200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2023,1,1]],"date-time":"2023-01-01T00:00:00Z","timestamp":1672531200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2023]]},"DOI":"10.1007\/978-3-031-52038-9_10","type":"book-chapter","created":{"date-parts":[[2024,1,9]],"date-time":"2024-01-09T06:02:40Z","timestamp":1704780160000},"page":"151-168","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Hardware Implementation of\u00a0OCaml Using a\u00a0Synchronous Functional Language"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-1495-9605","authenticated-orcid":false,"given":"Lo\u00efc","family":"Sylvestre","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0008-4763-8163","authenticated-orcid":false,"given":"Jocelyn","family":"S\u00e9rot","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2400-9523","authenticated-orcid":false,"given":"Emmanuel","family":"Chailloux","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2024,1,10]]},"reference":[{"key":"10_CR1","doi-asserted-by":"publisher","unstructured":"Baaij, C., Kooijman, M., Kuper, J., Boeijink, A., Gerards, M.: C$$\\lambda $$aSH: structural descriptions of synchronous hardware using haskell. In: 2010 13th Euromicro Conference on Digital System Design: Architectures, Methods and Tools (DSD 2010), pp. 714\u2013721. IEEE (2010). https:\/\/doi.org\/10.1109\/DSD.2010.21","DOI":"10.1109\/DSD.2010.21"},{"key":"10_CR2","doi-asserted-by":"publisher","unstructured":"Barker, M., Edwards, S.A., Kim, M.A.: Synthesized in-BramGarbage collection for accelerators with immutable memory. In: 2022 32nd International Conference on Field-Programmable Logic and Applications (FPL 2022), pp. 47\u201353. IEEE (2022). https:\/\/doi.org\/10.1109\/FPL57034.2022.00019","DOI":"10.1109\/FPL57034.2022.00019"},{"key":"10_CR3","doi-asserted-by":"publisher","first-page":"95","DOI":"10.1007\/BF02811340","volume":"17","author":"G Berry","year":"1992","unstructured":"Berry, G.: A hardware implementation of pure ESTEREL. Sadhana 17, 95\u2013130 (1992). https:\/\/doi.org\/10.1007\/BF02811340","journal-title":"Sadhana"},{"issue":"2","key":"10_CR4","doi-asserted-by":"publisher","first-page":"87","DOI":"10.1016\/0167-6423(92)90005-V","volume":"19","author":"G Berry","year":"1992","unstructured":"Berry, G., Gonthier, G.: The ESTEREL synchronous programming language: design, semantics, implementation. Sci. Comput. Program. (SCP) 19(2), 87\u2013152 (1992). https:\/\/doi.org\/10.1016\/0167-6423(92)90005-V","journal-title":"Sci. Comput. Program. (SCP)"},{"key":"10_CR5","doi-asserted-by":"publisher","unstructured":"Berry, G., Serrano, M.: HipHop.js: (a)synchronous reactive web programming. In: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2020), pp. 533\u2013545 (2020). https:\/\/doi.org\/10.1145\/3385412.3385984","DOI":"10.1145\/3385412.3385984"},{"key":"10_CR6","doi-asserted-by":"publisher","unstructured":"Bourgeat, T., Pit-Claudel, C., Chlipala, A., Arvind: The essence of Bluespec: a core language for rule-based hardware design. In: 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2020), pp. 243\u2013257 (2020). https:\/\/doi.org\/10.1145\/3385412.3385965","DOI":"10.1145\/3385412.3385965"},{"key":"10_CR7","doi-asserted-by":"publisher","unstructured":"Caspi, P., Pilaud, D., Halbwachs, N., Plaice, J.A.: LUSTRE: a declarative language for programming synchronous systems. In: 14th Annual ACM Symposium on Principles of Programming Languages (POPL 1987), vol. 178, pp. 178\u2013188. ACM (1987). https:\/\/doi.org\/10.1145\/41625.41641","DOI":"10.1145\/41625.41641"},{"issue":"11","key":"10_CR8","doi-asserted-by":"publisher","first-page":"677","DOI":"10.1145\/362790.362798","volume":"13","author":"CJ Cheney","year":"1970","unstructured":"Cheney, C.J.: A nonrecursive list compacting algorithm. Commun. ACM 13(11), 677\u2013678 (1970). https:\/\/doi.org\/10.1145\/362790.362798","journal-title":"Commun. ACM"},{"key":"10_CR9","doi-asserted-by":"publisher","unstructured":"Cola\u00e7o, J.L., Pagano, B., Pouzet, M.: SCADE 6: a formal language for embedded critical software development. In: 2017 International Symposium on Theoretical Aspects of Software Engineering (TASE), pp. 1\u201311. IEEE (2017). https:\/\/doi.org\/10.1109\/TASE.2017.8285623","DOI":"10.1109\/TASE.2017.8285623"},{"key":"10_CR10","doi-asserted-by":"publisher","unstructured":"Fidjeland, A., Luk, W.: Archlog: high-level synthesis of reconfigurable multiprocessors for logic programming. In: 2006 International Conference on Field Programmable Logic and Applications, pp. 1\u20136. IEEE (2006). https:\/\/doi.org\/10.1109\/FPL.2006.311234","DOI":"10.1109\/FPL.2006.311234"},{"key":"10_CR11","doi-asserted-by":"publisher","unstructured":"Fidjeland, A., Luk, W., Muggleton, S.: Scalable acceleration of inductive logic programs. In: 2002 IEEE International Conference on Field-Programmable Technology 2002 (FPT). Proceedings, pp. 252\u2013259. IEEE (2002). https:\/\/doi.org\/10.1109\/FPT.2002.1188689","DOI":"10.1109\/FPT.2002.1188689"},{"issue":"2","key":"10_CR12","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/2543581.2543588","volume":"46","author":"P Gammie","year":"2013","unstructured":"Gammie, P.: Synchronous digital circuits as functional programs. ACM Comput. Surv. (CSUR) 46(2), 1\u201327 (2013). https:\/\/doi.org\/10.1145\/2543581.2543588","journal-title":"ACM Comput. Surv. (CSUR)"},{"key":"10_CR13","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"257","DOI":"10.1007\/3-540-18317-5_15","volume-title":"Functional Programming Languages and Computer Architecture","author":"T Gautier","year":"1987","unstructured":"Gautier, T., Le Guernic, P., Besnard, L.: SIGNAL: a declarative language for synchronous programming of real-time systems. In: Kahn, G. (ed.) FPCA 1987. LNCS, vol. 274, pp. 257\u2013277. Springer, Heidelberg (1987). https:\/\/doi.org\/10.1007\/3-540-18317-5_15"},{"key":"10_CR14","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"190","DOI":"10.1007\/3-540-15975-4_37","volume-title":"Functional Programming Languages and Computer Architecture","author":"T Johnsson","year":"1985","unstructured":"Johnsson, T.: Lambda lifting: transforming programs to recursive equations. In: Jouannaud, J.-P. (ed.) FPCA 1985. LNCS, vol. 201, pp. 190\u2013203. Springer, Heidelberg (1985). https:\/\/doi.org\/10.1007\/3-540-15975-4_37"},{"key":"10_CR15","doi-asserted-by":"publisher","unstructured":"Kennedy, A.: Compiling with continuations, continued. In: 12th ACM SIGPLAN International Conference on Functional programming (ICFP 2007), pp. 177\u2013190 (2007). https:\/\/doi.org\/10.1145\/1291151.1291179","DOI":"10.1145\/1291151.1291179"},{"key":"10_CR16","doi-asserted-by":"publisher","first-page":"199","DOI":"10.1007\/s10990-007-9018-9","volume":"20","author":"JL Krivine","year":"2007","unstructured":"Krivine, J.L.: A call-by-name lambda-calculus machine. High.-Order Symb. Comput. 20, 199\u2013207 (2007). https:\/\/doi.org\/10.1007\/s10990-007-9018-9","journal-title":"High.-Order Symb. Comput."},{"key":"10_CR17","unstructured":"Leroy, X.: The ZINC experiment: an economical implementation of the ML language. Technical report, INRIA (1990)"},{"issue":"1","key":"10_CR18","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1109\/92.820756","volume":"8","author":"Y Li","year":"2000","unstructured":"Li, Y., Leeser, M.: HML, a novel hardware description language and its translation to VHDL. IEEE Trans. Very Large Scale Integr. (VLSI) Syst. 8(1), 1\u20138 (2000). https:\/\/doi.org\/10.1109\/92.820756","journal-title":"IEEE Trans. Very Large Scale Integr. (VLSI) Syst."},{"key":"10_CR19","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"37","DOI":"10.1007\/3-540-45022-X_5","volume-title":"Automata, Languages and Programming","author":"A Mycroft","year":"2000","unstructured":"Mycroft, A., Sharp, R.: A statically allocated parallel functional language. In: Montanari, U., Rolim, J.D.P., Welzl, E. (eds.) ICALP 2000. LNCS, vol. 1853, pp. 37\u201348. Springer, Heidelberg (2000). https:\/\/doi.org\/10.1007\/3-540-45022-X_5"},{"key":"10_CR20","doi-asserted-by":"publisher","unstructured":"Pizani Flor, J.P., Swierstra, W., Sijsling, Y.: $$\\Pi $$-Ware: hardware description and verification in Agda. In: 21st International Conference on Types for Proofs and Programs (TYPES 2015). Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik (2018). https:\/\/doi.org\/10.4230\/LIPIcs.TYPES.2015.9","DOI":"10.4230\/LIPIcs.TYPES.2015.9"},{"key":"10_CR21","doi-asserted-by":"crossref","unstructured":"Potop-Butucaru, D., De Simone, R., Talpin, J.P.: The synchronous hypothesis and synchronous languages. In: The Embedded Systems Handbook, pp. 1\u201321 (2005)","DOI":"10.1201\/9781420038163.ch8"},{"key":"10_CR22","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"195","DOI":"10.1007\/BFb0031993","volume-title":"Real-Time: Theory in Practice","author":"F Rocheteau","year":"1992","unstructured":"Rocheteau, F., Halbwachs, N.: Implementing reactive programs on circuits a hardware implementation of LUSTRE. In: de Bakker, J.W., Huizing, C., de Roever, W.P., Rozenberg, G. (eds.) REX 1991. LNCS, vol. 600, pp. 195\u2013208. Springer, Heidelberg (1992). https:\/\/doi.org\/10.1007\/BFb0031993"},{"key":"10_CR23","unstructured":"Saint-Mleux, X., Feeley, M., David, J.P.: SHard: a Scheme to hardware compiler. In: Workshop on Scheme and Functional Programming (2006)"},{"issue":"2\u20133","key":"10_CR24","doi-asserted-by":"publisher","first-page":"186","DOI":"10.1007\/s10766-022-00748-z","volume":"51","author":"L Sylvestre","year":"2023","unstructured":"Sylvestre, L., Chailloux, E., S\u00e9rot, J.: Accelerating OCaml programs on FPGA. Int. J. Parallel Program. (IJPP) 51(2\u20133), 186\u2013207 (2023). https:\/\/doi.org\/10.1007\/s10766-022-00748-z","journal-title":"Int. J. Parallel Program. (IJPP)"},{"key":"10_CR25","doi-asserted-by":"publisher","unstructured":"Sylvestre, L., Chailloux, E., S\u00e9rot, J.: Work-in-Progress: mixing computation and interaction on FPGA. In: 2023 International Conference on Embedded Software (EMSOFT 2023), pp. 5\u20136. IEEE (2023). https:\/\/doi.org\/10.1145\/3607890.3608454","DOI":"10.1145\/3607890.3608454"},{"key":"10_CR26","doi-asserted-by":"publisher","unstructured":"Townsend, R., Kim, M.A., Edwards, S.A.: From functional programs to pipelined dataflow circuits. In: 26th International Conference on Compiler Construction (CC 2017), pp. 76\u201386 (2017). https:\/\/doi.org\/10.1145\/3033019.3033027","DOI":"10.1145\/3033019.3033027"},{"key":"10_CR27","doi-asserted-by":"publisher","DOI":"10.1016\/j.cola.2023.101228","volume":"77","author":"S Varoumas","year":"2023","unstructured":"Varoumas, S., Pesin, B., Vaugon, B., Chailloux, E.: Programming microcontrollers through high-level abstractions: the OMicroB project. J. Comput. Lang. (COLA) 77, 101228 (2023). https:\/\/doi.org\/10.1016\/j.cola.2023.101228","journal-title":"J. Comput. Lang. (COLA)"},{"key":"10_CR28","doi-asserted-by":"publisher","unstructured":"Zhai, K., Townsend, R., Lairmore, L., Kim, M.A., Edwards, S.A.: Hardware synthesis from a recursive functional language. In: 2015 International Conference on Hardware\/Software Codesign and System Synthesis (CODES+ISSS 2015), pp. 83\u201393. IEEE (2015). https:\/\/doi.org\/10.1109\/CODESISSS.2015.7331371","DOI":"10.1109\/CODESISSS.2015.7331371"}],"container-title":["Lecture Notes in Computer Science","Practical Aspects of Declarative Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-52038-9_10","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,1,9]],"date-time":"2024-01-09T06:06:53Z","timestamp":1704780413000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-52038-9_10"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023]]},"ISBN":["9783031520372","9783031520389"],"references-count":28,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-52038-9_10","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2023]]},"assertion":[{"value":"10 January 2024","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"PADL","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Symposium on Practical Aspects of Declarative Languages","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"London","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"United Kingdom","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2024","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"15 January 2024","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"16 January 2024","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"26","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"padl2024","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/popl24.sigplan.org\/home\/PADL-2024","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Double-blind","order":1,"name":"type","label":"Type","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"HotCRP","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"25","order":3,"name":"number_of_submissions_sent_for_review","label":"Number of Submissions Sent for Review","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"13","order":4,"name":"number_of_full_papers_accepted","label":"Number of Full Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"0","order":5,"name":"number_of_short_papers_accepted","label":"Number of Short Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"52% - The value is computed by the equation \"Number of Full Papers Accepted \/ Number of Submissions Sent for Review * 100\" and then rounded to a whole number.","order":6,"name":"acceptance_rate_of_full_papers","label":"Acceptance Rate of Full Papers","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"4","order":7,"name":"average_number_of_reviews_per_paper","label":"Average Number of Reviews per Paper","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"4","order":8,"name":"average_number_of_papers_per_reviewer","label":"Average Number of Papers per Reviewer","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"Yes","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}}]}}