{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,20]],"date-time":"2026-06-20T16:32:28Z","timestamp":1781973148838,"version":"3.54.5"},"reference-count":29,"publisher":"Springer Science and Business Media LLC","issue":"2-3","license":[{"start":{"date-parts":[[2023,1,24]],"date-time":"2023-01-24T00:00:00Z","timestamp":1674518400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2023,1,24]],"date-time":"2023-01-24T00:00:00Z","timestamp":1674518400000},"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":["Int J Parallel Prog"],"published-print":{"date-parts":[[2023,6]]},"DOI":"10.1007\/s10766-022-00748-z","type":"journal-article","created":{"date-parts":[[2023,1,24]],"date-time":"2023-01-24T16:59:26Z","timestamp":1674579566000},"page":"186-207","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":4,"title":["Accelerating OCaml Programs on FPGA"],"prefix":"10.1007","volume":"51","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-1495-9605","authenticated-orcid":false,"given":"Lo\u00efc","family":"Sylvestre","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2400-9523","authenticated-orcid":false,"given":"Emmanuel","family":"Chailloux","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Jocelyn","family":"S\u00e9rot","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2023,1,24]]},"reference":[{"key":"748_CR1","doi-asserted-by":"publisher","unstructured":"Alur, R., Kannan, S., Yannakakis, M.: Communicating hierarchical state machines. In: International Colloquium on Automata, Languages, and Programming, pp. 169\u2013178. Springer (1999). https:\/\/doi.org\/10.1007\/3-540-48523-6_14","DOI":"10.1007\/3-540-48523-6_14"},{"key":"748_CR2","doi-asserted-by":"publisher","unstructured":"Auerbach, J., Bacon, D.F., Cheng, P., et al.: Lime: a Java-compatible and synthesizable language for heterogeneous architectures. In: ACM International Conference on Object Oriented Programming Systems Languages and Applications, pp. 89\u2013108 (2010). https:\/\/doi.org\/10.1145\/1869459.1869469","DOI":"10.1145\/1869459.1869469"},{"key":"748_CR3","doi-asserted-by":"publisher","unstructured":"Baaij, C., Kooijman, M., Kuper, J., et al.: Clash: structural descriptions of synchronous hardware using Haskell. In: 2010 13th Euromicro Conference on Digital System Design: Architectures, Methods and Tools, pp. 714\u2013721. IEEE (2010). https:\/\/doi.org\/10.1109\/DSD.2010.21","DOI":"10.1109\/DSD.2010.21"},{"key":"748_CR4","doi-asserted-by":"publisher","unstructured":"Bachrach, J., Vo, H., Richards, B., et al.: Chisel: constructing hardware in a Scala embedded language. In: DAC Design Automation Conference, 2012, pp. 1212\u20131221. IEEE (2012). https:\/\/doi.org\/10.1145\/2228360.2228584","DOI":"10.1145\/2228360.2228584"},{"key":"748_CR5","doi-asserted-by":"publisher","unstructured":"Canis, A., Choi, J., Aldham, M., et al.: LegUp: high-level synthesis for FPGA-based processor\/accelerator systems. In: Proceedings of the 19th ACM\/SIGDA International Symposium on Field Programmable Gate Arrays (FPGA), pp. 33\u201336 (2011). https:\/\/doi.org\/10.1145\/1950413.1950423","DOI":"10.1145\/1950413.1950423"},{"issue":"4","key":"748_CR6","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/1749603.1749604","volume":"42","author":"JM Cardoso","year":"2010","unstructured":"Cardoso, J.M., Diniz, P.C., Weinhardt, M.: Compiling for reconfigurable computing: a survey. ACM Comput. Surv. (CSUR) 42(4), 1\u201365 (2010). https:\/\/doi.org\/10.1145\/1749603.1749604","journal-title":"ACM Comput. Surv. (CSUR)"},{"key":"748_CR7","doi-asserted-by":"publisher","unstructured":"Chi, Y., Guo, L., Lau, J., et\u00a0al.: Extending high-level synthesis for task-parallel programs. In: 2021 IEEE 29th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), pp. 204\u2013213. IEEE (2021). https:\/\/doi.org\/10.1145\/3431920.3439470","DOI":"10.1145\/3431920.3439470"},{"key":"748_CR8","doi-asserted-by":"publisher","unstructured":"Cola\u00e7o, J.-L., Hamon, G., Pouzet, M.: Mixing signals and modes in synchronous data-flow systems. In: Proceedings of the 6th ACM & IEEE International Conference on Embedded Software, pp. 73\u201382 (2006). https:\/\/doi.org\/10.1145\/1176887.1176899","DOI":"10.1145\/1176887.1176899"},{"key":"748_CR9","doi-asserted-by":"publisher","first-page":"177","DOI":"10.1007\/s10766-020-00684-w","volume":"49","author":"M Danelutto","year":"2021","unstructured":"Danelutto, M., Mencagli, G., Torquati, M., et al.: Algorithmic skeletons and parallel design patterns in mainstream parallel programming. Int. J. Parallel Program. 49, 177\u2013198 (2021). https:\/\/doi.org\/10.1007\/s10766-020-00684-w","journal-title":"Int. J. Parallel Program."},{"key":"748_CR10","first-page":"84","volume":"2004","author":"J Decaluwe","year":"2004","unstructured":"Decaluwe, J.: MyHDL: a Python-based hardware description language. Linux J. 2004, 84\u201387 (2004)","journal-title":"Linux J."},{"issue":"7","key":"748_CR11","doi-asserted-by":"publisher","first-page":"798","DOI":"10.1109\/43.31537","volume":"8","author":"D Drusinsky","year":"1989","unstructured":"Drusinsky, D., Harel, D.: Using statecharts for hardware description and synthesis. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 8(7), 798\u2013807 (1989). https:\/\/doi.org\/10.1109\/43.31537","journal-title":"IEEE Trans. Comput. Aided Des. Integr. Circuits Syst."},{"key":"748_CR12","doi-asserted-by":"publisher","unstructured":"Fumero, J., Stratikopoulos, A., Kotselidis, C.: Running parallel bytecode interpreters on heterogeneous hardware. In: 4th International Conference on Art, Science, and Engineering of Programming, pp. 31\u201335 (2020). https:\/\/doi.org\/10.1145\/3397537.3397563","DOI":"10.1145\/3397537.3397563"},{"issue":"2","key":"748_CR13","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":"748_CR14","doi-asserted-by":"publisher","unstructured":"Ghica, D.R., Smith, A., Singh, S.: Geometry of synthesis IV: compiling affine recursion into static hardware. In: Proceedings of the 16th ACM SIGPLAN International Conference on Functional Programming, pp. 221\u2013233 (2011). https:\/\/doi.org\/10.1145\/2034574.2034805","DOI":"10.1145\/2034574.2034805"},{"issue":"12","key":"748_CR15","doi-asserted-by":"publisher","first-page":"2015","DOI":"10.1109\/TC.2021.3123465","volume":"70","author":"S Huang","year":"2021","unstructured":"Huang, S., Wu, K., Jeong, H., et al.: Pylog: an algorithm-centric python-based FPGA programming and synthesis flow. IEEE Trans. Comput. 70(12), 2015\u20132028 (2021). https:\/\/doi.org\/10.1109\/TC.2021.3123465","journal-title":"IEEE Trans. Comput."},{"key":"748_CR16","doi-asserted-by":"publisher","unstructured":"Ito, Y., Nakano, K.: A hardware-software cooperative approach for the exhaustive verification of the Collatz conjecture. In: 2009 IEEE International Symposium on Parallel and Distributed Processing with Applications, pp. 63\u201370. IEEE (2009). https:\/\/doi.org\/10.1109\/ISPA.2009.35","DOI":"10.1109\/ISPA.2009.35"},{"key":"748_CR17","doi-asserted-by":"publisher","unstructured":"Kennedy, A.: Compiling with continuations, continued. In: 12th ACM SIGPLAN International Conference on Functional Programming, pp. 177\u2013190 (2007). https:\/\/doi.org\/10.1145\/1291151.1291179","DOI":"10.1145\/1291151.1291179"},{"issue":"4","key":"748_CR18","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/3469660","volume":"14","author":"Y-H Lai","year":"2021","unstructured":"Lai, Y.-H., Ustun, E., Xiang, S., et al.: Programming and synthesis for software-defined FPGA acceleration: status and future prospects. ACM Trans. Reconfig. Technol. Syst. (TRETS) 14(4), 1\u201339 (2021). https:\/\/doi.org\/10.1145\/3469660","journal-title":"ACM Trans. Reconfig. Technol. Syst. (TRETS)"},{"key":"748_CR19","doi-asserted-by":"publisher","unstructured":"Maas, M., Asanovi\u0107, K., Kubiatowicz, J.: A hardware accelerator for tracing garbage collection. In: 2018 ACM\/IEEE 45th Annual International Symposium on Computer Architecture (ISCA), pp. 138\u2013151. IEEE (2018). https:\/\/doi.org\/10.1109\/ISCA.2018.00022","DOI":"10.1109\/ISCA.2018.00022"},{"key":"748_CR20","doi-asserted-by":"publisher","unstructured":"Mycroft, A., Sharp, R.: A statically allocated parallel functional language. In: International Colloquium on Automata, Languages, and Programming, pp. 37\u201348. Springer (2000). https:\/\/doi.org\/10.1007\/3-540-45022-X_5","DOI":"10.1007\/3-540-45022-X_5"},{"issue":"10","key":"748_CR21","doi-asserted-by":"publisher","first-page":"1591","DOI":"10.1109\/TCAD.2015.2513673","volume":"35","author":"R Nane","year":"2015","unstructured":"Nane, R., Sima, V.-M., Pilato, C., et al.: A survey and evaluation of fpga high-level synthesis tools. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 35(10), 1591\u20131604 (2015). https:\/\/doi.org\/10.1109\/TCAD.2015.2513673","journal-title":"IEEE Trans. Comput. Aided Des. Integr. Circuits Syst."},{"key":"748_CR22","doi-asserted-by":"publisher","DOI":"10.22152\/programming-journal.org\/2021\/5\/8","author":"M Papadimitriou","year":"2020","unstructured":"Papadimitriou, M., Fumero, J., Stratikopoulos, A., et al.: Transparent compiler and runtime specializations for accelerating managed languages on FPGAs. Art Sci. Eng. Program. (2020). https:\/\/doi.org\/10.22152\/programming-journal.org\/2021\/5\/8","journal-title":"Art Sci. Eng. Program."},{"key":"748_CR23","unstructured":"Saint-Mleux, X., Feeley, M., David, J.-P.: SHard: a Scheme to hardware compiler. In: Workshop on Scheme and Functional Programming (2006)"},{"key":"748_CR24","doi-asserted-by":"publisher","unstructured":"Segal, O., Margala, M., Chalamalasetti, S.R., et al.: High level programming framework for FPGAs in the data center. In: 2014 24th International Conference on Field Programmable Logic and Applications (FPL), pp. 1\u20134. IEEE (2014). https:\/\/doi.org\/10.1109\/FPL.2014.6927442","DOI":"10.1109\/FPL.2014.6927442"},{"key":"748_CR25","doi-asserted-by":"publisher","unstructured":"Singh, S., Greaves, D. J.: Kiwi: synthesis of fpga circuits from parallel programs. In: 16th International Symposium on Field-Programmable Custom Computing Machines, pp. 3\u201312. IEEE (2008). https:\/\/doi.org\/10.1109\/FCCM.2008.46","DOI":"10.1109\/FCCM.2008.46"},{"issue":"1","key":"748_CR26","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/3180481","volume":"11","author":"R Stewart","year":"2018","unstructured":"Stewart, R., Duncan, K., Michaelson, G., et al.: RIPL: a parallel image processing language for FPGAs. ACM Trans. Reconfig. Technol. Syst. (TRETS) 11(1), 1\u201324 (2018). https:\/\/doi.org\/10.1145\/3180481","journal-title":"ACM Trans. Reconfig. Technol. Syst. (TRETS)"},{"key":"748_CR27","doi-asserted-by":"publisher","unstructured":"Townsend, R., Kim, M.A., Edwards, S.A.: From functional programs to pipelined dataflow circuits. In: Proceedings of the 26th International Conference on Compiler Construction, pp. 76\u201386 (2017). https:\/\/doi.org\/10.1145\/3033019.3033027","DOI":"10.1145\/3033019.3033027"},{"issue":"2","key":"748_CR28","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/2629649","volume":"14","author":"C-J Tsai","year":"2015","unstructured":"Tsai, C.-J., Kuo, H.-W., Lin, Z., et al.: A Java processor IP design for embedded SoC. ACM Trans. Embed. Comput. Syst. 14(2), 1\u201325 (2015). https:\/\/doi.org\/10.1145\/2629649","journal-title":"ACM Trans. Embed. Comput. Syst."},{"key":"748_CR29","unstructured":"Varoumas, S., Vaugon, B., Chailloux, E.: A generic virtual machine approach for programming microcontrollers: the OMicroB project. In: 9th European Congress on Embedded Real Time Software and Systems (ERTS 2018) (2018)"}],"container-title":["International Journal of Parallel Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10766-022-00748-z.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10766-022-00748-z\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10766-022-00748-z.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,3,30]],"date-time":"2023-03-30T11:13:50Z","timestamp":1680174830000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10766-022-00748-z"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,1,24]]},"references-count":29,"journal-issue":{"issue":"2-3","published-print":{"date-parts":[[2023,6]]}},"alternative-id":["748"],"URL":"https:\/\/doi.org\/10.1007\/s10766-022-00748-z","relation":{},"ISSN":["0885-7458","1573-7640"],"issn-type":[{"value":"0885-7458","type":"print"},{"value":"1573-7640","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,1,24]]},"assertion":[{"value":"9 September 2022","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"21 November 2022","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"24 January 2023","order":3,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Declaration"}},{"value":"The authors have no relevant financial or non-financial interests to disclose. No special funding was received for conducting this work. All of the material is owned by the authors and no permissions are required.","order":2,"name":"Ethics","group":{"name":"EthicsHeading","label":"Conflict of interest"}}]}}