{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,26]],"date-time":"2025-03-26T06:13:55Z","timestamp":1742969635240,"version":"3.40.3"},"publisher-location":"Cham","reference-count":23,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783031224751"},{"type":"electronic","value":"9783031224768"}],"license":[{"start":{"date-parts":[[2022,1,1]],"date-time":"2022-01-01T00:00:00Z","timestamp":1640995200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2022,1,1]],"date-time":"2022-01-01T00:00:00Z","timestamp":1640995200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2022]]},"DOI":"10.1007\/978-3-031-22476-8_3","type":"book-chapter","created":{"date-parts":[[2022,11,30]],"date-time":"2022-11-30T12:03:51Z","timestamp":1669809831000},"page":"39-54","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["A Sound Strategy to\u00a0Compile General Recursion into\u00a0Finite Depth Pattern Matching"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-7684-8428","authenticated-orcid":false,"given":"Maycon J. J.","family":"Amaro","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9485-4845","authenticated-orcid":false,"given":"Samuel S.","family":"Feitosa","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0131-5154","authenticated-orcid":false,"given":"Rodrigo G.","family":"Ribeiro","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2022,12,1]]},"reference":[{"key":"3_CR1","unstructured":"Abel, A.: Foetus\u2014termination checker for simple functional programs. Technical report, Ludwigs-Maximilians-University, Munich (1998)"},{"key":"3_CR2","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/3-540-44557-9_1","volume-title":"Types for Proofs and Programs","author":"A Abel","year":"2000","unstructured":"Abel, A.: Specification and verification of a formal system for structurally recursive functions. In: Coquand, T., Dybjer, P., Nordstr\u00f6m, B., Smith, J. (eds.) TYPES 1999. LNCS, vol. 1956, pp. 1\u201320. Springer, Heidelberg (2000). https:\/\/doi.org\/10.1007\/3-540-44557-9_1"},{"key":"3_CR3","unstructured":"Abel, A., Altenkirch, T.: A semantical analysis of structural recursion. In: Fourth International Workshop on Termination WST, pp. 24\u201325. Darmstadt University of Technology, Dagstuhl, Germany (1999)"},{"issue":"1","key":"3_CR4","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1017\/S0956796801004191","volume":"12","author":"A Abel","year":"2002","unstructured":"Abel, A., Altenkirch, T.: A predicative analysis of structural recursion. J. Funct. Program. 12(1), 1\u201341 (2002)","journal-title":"J. Funct. Program."},{"issue":"1","key":"3_CR5","doi-asserted-by":"publisher","first-page":"97","DOI":"10.1017\/S0960129503004122","volume":"14","author":"G Barthe","year":"2004","unstructured":"Barthe, G., et al.: Type-based termination of recursive definitions. Math. Struct. Comput. Sci. 14(1), 97\u2013141 (2004)","journal-title":"Math. Struct. Comput. Sci."},{"key":"3_CR6","volume-title":"Modern Compiler Implementation in ML","author":"A Appel","year":"2004","unstructured":"Appel, A.: Modern Compiler Implementation in ML. Cambridge University Press, New York (2004)"},{"key":"3_CR7","unstructured":"Authors of eBPF: eBPF - Introduction, Tutorials and Community Resources (2022). https:\/\/ebpf.io\/"},{"key":"3_CR8","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"100","DOI":"10.1007\/978-3-642-03153-3_3","volume-title":"Language Engineering and Rigorous Software Development","author":"G Barthe","year":"2009","unstructured":"Barthe, G., Gr\u00e9goire, B., Riba, C.: A tutorial on type-based termination. In: Bove, A., Barbosa, L.S., Pardo, A., Pinto, J.S. (eds.) LerNet 2008. LNCS, vol. 5520, pp. 100\u2013152. Springer, Heidelberg (2009). https:\/\/doi.org\/10.1007\/978-3-642-03153-3_3"},{"key":"3_CR9","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"493","DOI":"10.1007\/978-3-540-87531-4_35","volume-title":"Computer Science Logic","author":"G Barthe","year":"2008","unstructured":"Barthe, G., Gr\u00e9goire, B., Riba, C.: Type-based termination with sized products. In: Kaminski, M., Martini, S. (eds.) CSL 2008. LNCS, vol. 5213, pp. 493\u2013507. Springer, Heidelberg (2008). https:\/\/doi.org\/10.1007\/978-3-540-87531-4_35"},{"key":"3_CR10","unstructured":"Ringell Developers: Ringell (2022). https:\/\/github.com\/mayconamaro\/ringell"},{"key":"3_CR11","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2020.102494","volume":"196","author":"S Feitosa","year":"2020","unstructured":"Feitosa, S., Ribeiro, R., Du Bois, A.: A type-directed algorithm to generate random well-typed Java 8 programs. Sci. Comput. Program. 196, 102494 (2020)","journal-title":"Sci. Comput. Program."},{"key":"3_CR12","unstructured":"GNU: GCC, the GNU Compiler Collection (2022). https:\/\/gcc.gnu.org\/"},{"key":"3_CR13","unstructured":"Huet, G., Kahn, G., Paulin-Mohring, C.: The CoQ proof assistant a tutorial. Rapport Technique 178 (1997)"},{"key":"3_CR14","doi-asserted-by":"publisher","unstructured":"Le, T.C., Xu, L., Chen, L., Shi, W.: Proving conditional termination for smart contracts. In: Proceedings of the 2nd ACM Workshop on Blockchains, Cryptocurrencies, and Contracts, BCC 2018, pp. 57\u201359. Association for Computing Machinery, New York (2018). https:\/\/doi.org\/10.1145\/3205230.3205239","DOI":"10.1145\/3205230.3205239"},{"key":"3_CR15","unstructured":"LLVM Project: Clang C Language Family Frontend for LLVM (2022). https:\/\/clang.llvm.org\/"},{"key":"3_CR16","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"257","DOI":"10.1007\/978-3-319-19797-5_13","volume-title":"Mathematics of Program Construction","author":"C McBride","year":"2015","unstructured":"McBride, C.: Turing-completeness totally free. In: Hinze, R., Voigtl\u00e4nder, J. (eds.) MPC 2015. LNCS, vol. 9129, pp. 257\u2013275. Springer, Cham (2015). https:\/\/doi.org\/10.1007\/978-3-319-19797-5_13"},{"key":"3_CR17","unstructured":"Microsoft: Visual Studio Compiler for Windows (2022). https:\/\/visualstudio.microsoft.com\/cplusplus\/"},{"key":"3_CR18","unstructured":"Norell, U.: Towards a practical programming language based on dependent type theory. Ph.D. thesis, Chalmers University of Technology and G\u00f6teborg University, Sweden (2007)"},{"key":"3_CR19","volume-title":"Real World Haskell","author":"B O\u2019Sullivan","year":"2008","unstructured":"O\u2019Sullivan, B., Goerzen, J., Stewart, D.: Real World Haskell. O\u2019Reilly, Sebastopol (2008)"},{"key":"3_CR20","volume-title":"Types and Programming Languages","author":"BC Pierce","year":"2002","unstructured":"Pierce, B.C.: Types and Programming Languages. MIT Press, Cambridge (2002)"},{"key":"3_CR21","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"34","DOI":"10.1007\/3-540-45574-4_3","volume-title":"Languages and Compilers for Parallel Computing","author":"R Rugina","year":"2001","unstructured":"Rugina, R., Rinard, M.: Recursion unrolling for divide and conquer programs. In: Midkiff, S.P., et al. (eds.) LCPC 2000. LNCS, vol. 2017, pp. 34\u201348. Springer, Heidelberg (2001). https:\/\/doi.org\/10.1007\/3-540-45574-4_3"},{"key":"3_CR22","volume-title":"Introduction to the Theory of Computation","author":"M Sipser","year":"2012","unstructured":"Sipser, M.: Introduction to the Theory of Computation, 3rd edn. Cengage Learning, Cambridge (2012)","edition":"3"},{"key":"3_CR23","unstructured":"Wadler, P., Kokke, W., Siek, J.G.: Programming language foundations in Agda (2020). http:\/\/plfa.inf.ed.ac.uk\/20.07\/"}],"container-title":["Lecture Notes in Computer Science","Formal Methods: Foundations and Applications"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-22476-8_3","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,11,30]],"date-time":"2022-11-30T12:04:38Z","timestamp":1669809878000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-22476-8_3"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022]]},"ISBN":["9783031224751","9783031224768"],"references-count":23,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-22476-8_3","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2022]]},"assertion":[{"value":"1 December 2022","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"SBMF","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Brazilian Symposium on Formal Methods","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2022","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"6 December 2022","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"9 December 2022","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"25","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"sbmf2022","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/sites.google.com\/dcomp.ufs.br\/sbmf2022","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":"15","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":"8","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":"53% - 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":"2","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)"}}]}}