{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,27]],"date-time":"2025-03-27T08:00:58Z","timestamp":1743062458636,"version":"3.40.3"},"publisher-location":"Cham","reference-count":25,"publisher":"Springer Nature Switzerland","isbn-type":[{"type":"print","value":"9783031380990"},{"type":"electronic","value":"9783031381003"}],"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-38100-3_6","type":"book-chapter","created":{"date-parts":[[2023,7,11]],"date-time":"2023-07-11T22:01:31Z","timestamp":1689112891000},"page":"73-88","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Tail Recursion Transformation for\u00a0Invertible Functions"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-1619-5944","authenticated-orcid":false,"given":"Joachim Tilsted","family":"Kristensen","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7672-799X","authenticated-orcid":false,"given":"Robin","family":"Kaarsgaard","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0922-3609","authenticated-orcid":false,"given":"Michael Kirkedal","family":"Thomsen","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2023,7,12]]},"reference":[{"doi-asserted-by":"publisher","unstructured":"Abramov, S., Robert, G.: The universal resolving algorithm and its correctness: inverse computation in a functional language. Sci. Comput. Program. 43(23), 193\u2013229 (2002). https:\/\/doi.org\/10.1016\/S0167-6423(02)00023-0. Mathematics of Program Construction (MPC 2000)","key":"6_CR1","DOI":"10.1016\/S0167-6423(02)00023-0"},{"key":"6_CR2","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"144","DOI":"10.1007\/978-3-642-19861-8_9","volume-title":"Compiler Construction","author":"HB Axelsen","year":"2011","unstructured":"Axelsen, H.B.: Clean translation of an imperative reversible programming language. In: Knoop, J. (ed.) CC 2011. LNCS, vol. 6601, pp. 144\u2013163. Springer, Heidelberg (2011). https:\/\/doi.org\/10.1007\/978-3-642-19861-8_9"},{"doi-asserted-by":"publisher","unstructured":"Gl\u00fcck, R., Kaarsgaard, R.: A categorical foundation for structured reversible flowchart languages: soundness and adequacy. Logical Methods Comput. Sci. 14(3) (2018). https:\/\/doi.org\/10.1016\/j.entcs.2018.03.021","key":"6_CR3","DOI":"10.1016\/j.entcs.2018.03.021"},{"key":"6_CR4","doi-asserted-by":"publisher","first-page":"46","DOI":"10.1016\/j.tcs.2022.02.024","volume":"920","author":"R Gl\u00fcck","year":"2022","unstructured":"Gl\u00fcck, R., Kaarsgaard, R., Yokoyama, T.: From reversible programming languages to reversible metalanguages. Theoret. Comput. Sci. 920, 46\u201363 (2022). https:\/\/doi.org\/10.1016\/j.tcs.2022.02.024","journal-title":"Theoret. Comput. Sci."},{"key":"6_CR5","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"246","DOI":"10.1007\/978-3-540-40018-9_17","volume-title":"Programming Languages and Systems","author":"R Gl\u00fcck","year":"2003","unstructured":"Gl\u00fcck, R., Kawabe, M.: A program inverter for a functional language with equality and constructors. In: Ohori, A. (ed.) APLAS 2003. LNCS, vol. 2895, pp. 246\u2013264. Springer, Heidelberg (2003). https:\/\/doi.org\/10.1007\/978-3-540-40018-9_17"},{"key":"6_CR6","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"291","DOI":"10.1007\/978-3-540-24754-8_21","volume-title":"Functional and Logic Programming","author":"R Gl\u00fcck","year":"2004","unstructured":"Gl\u00fcck, R., Kawabe, M.: Derivation of deterministic inverse programs based on LR parsing. In: Kameyama, Y., Stuckey, P.J. (eds.) FLOPS 2004. LNCS, vol. 2998, pp. 291\u2013306. Springer, Heidelberg (2004). https:\/\/doi.org\/10.1007\/978-3-540-24754-8_21"},{"issue":"4","key":"6_CR7","first-page":"367","volume":"66","author":"R Gl\u00fcck","year":"2005","unstructured":"Gl\u00fcck, R., Kawabe, M.: A method for automatic program inversion based on LR(0) parsing. Fund. Inform. 66(4), 367\u2013395 (2005)","journal-title":"Fund. Inform."},{"key":"6_CR8","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"304","DOI":"10.1007\/978-3-319-99498-7_21","volume-title":"Reversible Computation","author":"PAH Jacobsen","year":"2018","unstructured":"Jacobsen, P.A.H., Kaarsgaard, R., Thomsen, M.K.: $$\\sf CoreFun$$: a typed functional reversible core language. In: Kari, J., Ulidowski, I. (eds.) RC 2018. LNCS, vol. 11106, pp. 304\u2013321. Springer, Cham (2018). https:\/\/doi.org\/10.1007\/978-3-319-99498-7_21"},{"unstructured":"James, R.P., Sabry, A.: Theseus: a high level language for reversible computing (2014). Work in progress paper at RC 2014. https:\/\/www.cs.indiana.edu\/sabry\/papers\/theseus.pdf","key":"6_CR9"},{"unstructured":"Kristensen, J.T., Kaarsgaard, R., Thomsen, M.K.: Branching execution symmetry in Jeopardy by available implicit arguments analysis. In: Rutle, A. (ed.) Proceedings of 34th Norwegian ICT Conference for Research and Education, NIKT 2022. No. 1 (2022)","key":"6_CR10"},{"doi-asserted-by":"publisher","unstructured":"Kristensen, J.T., Kaarsgaard, R., Thomsen, M.K.: Jeopardy: an invertible functional programming language (2022). https:\/\/doi.org\/10.48550\/ARXIV.2209.02422. Work-in-progress paper presented at 34th Symposium on Implementation and Application of Functional Languages","key":"6_CR11","DOI":"10.48550\/ARXIV.2209.02422"},{"unstructured":"Lutz, C., Derby, H.: Janus: a time-reversible language. A letter to R. Landauer (1986). http:\/\/tetsuo.jp\/ref\/janus.pdf","key":"6_CR12"},{"key":"6_CR13","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"448","DOI":"10.1007\/978-3-642-11957-6_24","volume-title":"Programming Languages and Systems","author":"K Matsuda","year":"2010","unstructured":"Matsuda, K., Mu, S.-C., Hu, Z., Takeichi, M.: A grammar-based approach to invertible programs. In: Gordon, A.D. (ed.) ESOP 2010. LNCS, vol. 6012, pp. 448\u2013467. Springer, Heidelberg (2010). https:\/\/doi.org\/10.1007\/978-3-642-11957-6_24"},{"key":"6_CR14","series-title":"Annals of Mathematics Studies","volume-title":"Automata Studies","author":"J McCarthy","year":"1956","unstructured":"McCarthy, J.: The inversion of functions defined by Turing machines. In: Shannon, C.E., McCarthy, J. (eds.) Automata Studies. Annals of Mathematics Studies, Princeton University Press, Princeton (1956)"},{"key":"6_CR15","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"189","DOI":"10.1007\/11561347_14","volume-title":"Generative Programming and Component Engineering","author":"T\u00c6 Mogensen","year":"2005","unstructured":"Mogensen, T.\u00c6.: Semi-inversion of guarded equations. In: Gl\u00fcck, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol. 3676, pp. 189\u2013204. Springer, Heidelberg (2005). https:\/\/doi.org\/10.1007\/11561347_14"},{"doi-asserted-by":"publisher","unstructured":"Mogensen, T.\u00c6.: Semi-inversion of functional parameters. In: Proceedings of the 2008 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM 2008, pp. 21\u201329. ACM (2008). https:\/\/doi.org\/10.1145\/1328408.1328413","key":"6_CR16","DOI":"10.1145\/1328408.1328413"},{"issue":"1","key":"6_CR17","doi-asserted-by":"publisher","first-page":"53","DOI":"10.1016\/j.jlap.2013.07.001","volume":"83","author":"N Nishida","year":"2014","unstructured":"Nishida, N., Vidal, G.: Conversion to tail recursion in term rewriting. J. Logic Algebraic Program. 83(1), 53\u201363 (2014). https:\/\/doi.org\/10.1016\/j.jlap.2013.07.001","journal-title":"J. Logic Algebraic Program."},{"unstructured":"Nishida, N., Vidal, G.: Program inversion for tail recursive functions. In: 22nd International Conference on Rewriting Techniques and Applications, RTA 2011, vol. 10, pp. 283\u2013298 (2011)","key":"6_CR18"},{"unstructured":"Romanenko, A.: The generation of inverse functions in REFAL. In: Proceedings of the International Workshop on Partial Evaluation and Mixed Computation, vol. 427. North-Holland, Amsterdam (1988). https:\/\/cir.nii.ac.jp\/crid\/1571135649260521472","key":"6_CR19"},{"doi-asserted-by":"publisher","unstructured":"Thomsen, M.K., Axelsen, H.B.: Interpretation and programming of the reversible functional language. In: Proceedings of the 27th Symposium on the Implementation and Application of Functional Programming Languages, IFL 2015, pp. 8:1\u20138:13. ACM (2016). https:\/\/doi.org\/10.1145\/2897336.2897345","key":"6_CR20","DOI":"10.1145\/2897336.2897345"},{"key":"6_CR21","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"30","DOI":"10.1007\/978-3-642-29517-1_3","volume-title":"Reversible Computation","author":"MK Thomsen","year":"2012","unstructured":"Thomsen, M.K., Axelsen, H.B., Gl\u00fcck, R.: A reversible processor architecture and its reversible logic design. In: De Vos, A., Wille, R. (eds.) RC 2011. LNCS, vol. 7165, pp. 30\u201342. Springer, Heidelberg (2012). https:\/\/doi.org\/10.1007\/978-3-642-29517-1_3"},{"unstructured":"Vieri, C.J.: Reversible computer engineering and architecture. Ph.D. thesis, MIT, EECS (1999)","key":"6_CR22"},{"key":"6_CR23","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"258","DOI":"10.1007\/978-3-540-70583-3_22","volume-title":"Automata, Languages and Programming","author":"T Yokoyama","year":"2008","unstructured":"Yokoyama, T., Axelsen, H.B., Gl\u00fcck, R.: Reversible flowchart languages and the structured reversible program theorem. In: Aceto, L., Damg\u00e5rd, I., Goldberg, L.A., Halld\u00f3rsson, M.M., Ing\u00f3lfsd\u00f3ttir, A., Walukiewicz, I. (eds.) ICALP 2008. LNCS, vol. 5126, pp. 258\u2013270. Springer, Heidelberg (2008). https:\/\/doi.org\/10.1007\/978-3-540-70583-3_22"},{"key":"6_CR24","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"14","DOI":"10.1007\/978-3-642-29517-1_2","volume-title":"Reversible Computation","author":"T Yokoyama","year":"2012","unstructured":"Yokoyama, T., Axelsen, H.B., Gl\u00fcck, R.: Towards a reversible functional language. In: De Vos, A., Wille, R. (eds.) RC 2011. LNCS, vol. 7165, pp. 14\u201329. Springer, Heidelberg (2012). https:\/\/doi.org\/10.1007\/978-3-642-29517-1_2"},{"doi-asserted-by":"publisher","unstructured":"Yokoyama, T., Gl\u00fcck, R.: A reversible programming language and its invertible self-interpreter. In: Partial Evaluation and Program Manipulation, PEPM 2007, pp. 144\u2013153. ACM (2007). https:\/\/doi.org\/10.1145\/1244381.1244404","key":"6_CR25","DOI":"10.1145\/1244381.1244404"}],"container-title":["Lecture Notes in Computer Science","Reversible Computation"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-38100-3_6","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,7,11]],"date-time":"2023-07-11T22:02:12Z","timestamp":1689112932000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-38100-3_6"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023]]},"ISBN":["9783031380990","9783031381003"],"references-count":25,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-38100-3_6","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":"12 July 2023","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"RC","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Reversible Computation","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Giessen","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Germany","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2023","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"18 July 2023","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"19 July 2023","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"15","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"rc2023","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/reversible-computation-2023.github.io\/site\/index.html","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Single-blind","order":1,"name":"type","label":"Type","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"EasyChair","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"19","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":"11","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":"3","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":"58% - 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":"3","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":"3","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)"}}]}}