{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,26]],"date-time":"2025-03-26T01:21:14Z","timestamp":1742952074952,"version":"3.40.3"},"publisher-location":"Cham","reference-count":26,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783030393212"},{"type":"electronic","value":"9783030393229"}],"license":[{"start":{"date-parts":[[2020,1,1]],"date-time":"2020-01-01T00:00:00Z","timestamp":1577836800000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2020]]},"DOI":"10.1007\/978-3-030-39322-9_4","type":"book-chapter","created":{"date-parts":[[2020,1,14]],"date-time":"2020-01-14T19:03:59Z","timestamp":1579028639000},"page":"68-89","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":2,"title":["The Correctness of a Code Generator for a Functional Language"],"prefix":"10.1007","author":[{"given":"Nathana\u00ebl","family":"Courant","sequence":"first","affiliation":[]},{"given":"Antoine","family":"S\u00e9r\u00e9","sequence":"additional","affiliation":[]},{"given":"Natarajan","family":"Shankar","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2020,1,13]]},"reference":[{"key":"4_CR1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"5","DOI":"10.1007\/978-3-540-74591-4_3","volume-title":"Theorem Proving in Higher Order Logics","author":"AW Appel","year":"2007","unstructured":"Appel, A.W., Blazy, S.: Separation logic for small-step cminor. In: Schneider, K., Brandt, J. (eds.) TPHOLs 2007. LNCS, vol. 4732, pp. 5\u201321. Springer, Heidelberg (2007). https:\/\/doi.org\/10.1007\/978-3-540-74591-4_3"},{"key":"4_CR2","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"36","DOI":"10.1007\/3-540-45927-8_4","volume-title":"Programming Languages and Systems","author":"D Aspinall","year":"2002","unstructured":"Aspinall, D., Hofmann, M.: Another type system for in-place update. In: Le M\u00e9tayer, D. (ed.) ESOP 2002. LNCS, vol. 2305, pp. 36\u201352. Springer, Heidelberg (2002). https:\/\/doi.org\/10.1007\/3-540-45927-8_4"},{"issue":"4","key":"4_CR3","doi-asserted-by":"publisher","first-page":"411","DOI":"10.1007\/BF00243131","volume":"5","author":"WR Bevier","year":"1989","unstructured":"Bevier, W.R., Hunt, W.A., Moore Jr., J.S., Young, W.D.: An approach to systems verification. J. Autom. Reason. 5(4), 411\u2013428 (1989)","journal-title":"J. Autom. Reason."},{"issue":"2","key":"4_CR4","doi-asserted-by":"publisher","first-page":"195","DOI":"10.1017\/S0956796800001660","volume":"6","author":"J Chirimar","year":"1996","unstructured":"Chirimar, J., Gunter, C.A., Riecke, J.G.: Reference counting as a computational interpretation of linear logic. J. Funct. Program. 6(2), 195\u2013244 (1996)","journal-title":"J. Funct. Program."},{"issue":"12","key":"4_CR5","doi-asserted-by":"publisher","first-page":"655","DOI":"10.1145\/367487.367501","volume":"3","author":"GE Collins","year":"1960","unstructured":"Collins, G.E.: A method for overlapping and erasure of lists. Commun. ACM 3(12), 655\u2013657 (1960)","journal-title":"Commun. ACM"},{"key":"4_CR6","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"228","DOI":"10.1007\/3-540-57840-4_34","volume-title":"Programming Languages and System Architectures","author":"K Didrich","year":"1994","unstructured":"Didrich, K., Fett, A., Gerke, C., Grieskamp, W., Pepper, P.: OPAL: design and implementation of an algebraic programming language. In: Gutknecht, J. (ed.) Programming Languages and System Architectures. LNCS, vol. 782, pp. 228\u2013244. Springer, Heidelberg (1994). https:\/\/doi.org\/10.1007\/3-540-57840-4_34"},{"issue":"2","key":"4_CR7","doi-asserted-by":"publisher","first-page":"231","DOI":"10.1016\/0304-3975(93)90110-F","volume":"118","author":"M Draghicescu","year":"1993","unstructured":"Draghicescu, M., Purushothaman, S.: A uniform treatment of order of evaluation and aggregate update. Theor. Comput. Sci. 118(2), 231\u2013262 (1993)","journal-title":"Theor. Comput. Sci."},{"key":"4_CR8","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"352","DOI":"10.1007\/978-3-642-00768-2_30","volume-title":"Tools and Algorithms for the Construction and Analysis of Systems","author":"M Emmi","year":"2009","unstructured":"Emmi, M., Jhala, R., Kohler, E., Majumdar, R.: Verifying reference counting implementations. In: Kowalewski, S., Philippou, A. (eds.) TACAS 2009. LNCS, vol. 5505, pp. 352\u2013367. Springer, Heidelberg (2009). https:\/\/doi.org\/10.1007\/978-3-642-00768-2_30"},{"key":"4_CR9","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"134","DOI":"10.1007\/3-540-52592-0_60","volume-title":"ESOP \u201990","author":"M Felleisen","year":"1990","unstructured":"Felleisen, M.: On the expressive power of programming languages. In: Jones, N. (ed.) ESOP 1990. LNCS, vol. 432, pp. 134\u2013151. Springer, Heidelberg (1990). https:\/\/doi.org\/10.1007\/3-540-52592-0_60"},{"key":"4_CR10","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"150","DOI":"10.1007\/978-3-319-40648-0_12","volume-title":"NASA Formal Methods","author":"G F\u00e9rey","year":"2016","unstructured":"F\u00e9rey, G., Shankar, N.: Code Generation using a formal model of reference counting. In: Rayadurgam, S., Tkachuk, O. (eds.) NFM 2016. LNCS, vol. 9690, pp. 150\u2013165. Springer, Cham (2016). https:\/\/doi.org\/10.1007\/978-3-319-40648-0_12"},{"key":"4_CR11","doi-asserted-by":"crossref","unstructured":"Flanagan, C., Sabry, A., Duba, B.F., Felleisen, M.: The essence of compiling with continuations (with retrospective). In: McKinley, K.S. (ed.) Best of PLDI, pp. 502\u2013514. ACM (1993)","DOI":"10.1145\/989393.989443"},{"key":"4_CR12","doi-asserted-by":"crossref","unstructured":"Gopinath, K., Hennessy, J.L.: Copy elimination in functional languages. In: 16th ACM Symposium on Principles of Programming Languages. Association for Computing Machinery, January 1989","DOI":"10.1145\/75277.75304"},{"key":"4_CR13","doi-asserted-by":"crossref","unstructured":"Hudak, P.: A semantic model of reference counting and its abstraction (detailed summary). In: Proceedings 1986 ACM Conference on LISP and Functional Programming, pp. 351\u2013363. ACM, August 1986","DOI":"10.1145\/319838.319876"},{"key":"4_CR14","doi-asserted-by":"crossref","unstructured":"Hudak, P., Bloss, A.: The aggregate update problem in functional programming systems. In: Proceedings of the 12th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, POPL 1985, pp. 300\u2013314. ACM, New York (1985)","DOI":"10.1145\/318593.318660"},{"key":"4_CR15","unstructured":"Kanade, A., Sanyal, A., Khedker, U.: A PVS based framework for validating compiler optimizations. In: Fourth IEEE International Conference on Software Engineering and Formal Methods (SEFM 2006) (2006)"},{"key":"4_CR16","doi-asserted-by":"crossref","unstructured":"Kumar, R., Myreen, M.O., Norrish, M., Owens, S.: CakeML: a verified implementation of ML. In: Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2014, pp. 179\u2013191. ACM, New York (2014)","DOI":"10.1145\/2535838.2535841"},{"issue":"7","key":"4_CR17","doi-asserted-by":"publisher","first-page":"107","DOI":"10.1145\/1538788.1538814","volume":"52","author":"X Leroy","year":"2009","unstructured":"Leroy, X.: Formal verification of a realistic compiler. Commun. ACM 52(7), 107\u2013115 (2009)","journal-title":"Commun. ACM"},{"issue":"9","key":"4_CR18","doi-asserted-by":"publisher","first-page":"575","DOI":"10.1145\/367593.367649","volume":"6","author":"J Harold McBeth","year":"1963","unstructured":"Harold McBeth, J.: On the reference counter method. Commun. ACM 6(9), 575 (1963)","journal-title":"Commun. ACM"},{"issue":"8","key":"4_CR19","doi-asserted-by":"publisher","first-page":"563","DOI":"10.1007\/PL00013315","volume":"37","author":"L Moreau","year":"2001","unstructured":"Moreau, L., Duprat, J.: A construction of distributed reference counting. Acta Inf. 37(8), 563\u2013595 (2001)","journal-title":"Acta Inf."},{"key":"4_CR20","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-10886-6","volume-title":"Compiler Specification and Verification","author":"W Polak","year":"1981","unstructured":"Polak, W.: Compiler Specification and Verification. Springer, Berlin (1981)"},{"key":"4_CR21","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"102","DOI":"10.1007\/3-540-58402-1_9","volume-title":"Programming Language Implementation and Logic Programming","author":"W Schulte","year":"1994","unstructured":"Schulte, W.: Deriving residual reference count garbage collectors. In: Hermenegildo, M., Penjam, J. (eds.) PLILP 1994. LNCS, vol. 844, pp. 102\u2013116. Springer, Heidelberg (1994). https:\/\/doi.org\/10.1007\/3-540-58402-1_9"},{"key":"4_CR22","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/3-540-45607-4_1","volume-title":"Logic Based Program Synthesis and Transformation","author":"N Shankar","year":"2002","unstructured":"Shankar, N.: Static analysis for safe destructive updates in a functional language. In: Pettorossi, A. (ed.) LOPSTR 2001. LNCS, vol. 2372, pp. 1\u201324. Springer, Heidelberg (2002). https:\/\/doi.org\/10.1007\/3-540-45607-4_1"},{"key":"4_CR23","unstructured":"Shankar, N.: A brief introduction to the PVS2C code generator. In: Dutertre, B., Shankar, N. (eds.) AFM@NFM, EasyChair, vol. 5, pp. 109\u2013116. Kalpa Publications in Computing (2017)"},{"key":"4_CR24","unstructured":"David W.J.: Stringer-Calvert. Mechanical Verification of Compiler Correctness. Ph.D. thesis, University of York, Department of Computer Science, York, England, March 1998"},{"key":"4_CR25","doi-asserted-by":"crossref","unstructured":"Ullrich, S., de Moura, L.: Counting immutable beans: Reference counting optimized for purely functional programming. CoRR, abs\/1908.05647, 2019. Appears in pre-conference proceedings of IFL2019: http:\/\/2019.iflconference.org\/pre-conference-proceedings.pdf","DOI":"10.1145\/3412932.3412935"},{"key":"4_CR26","unstructured":"Wand, M., Clinger, W.D.: Set constraints for destructive array update optimization. In: Proceedings of the IEEE Conference on Computer Languages 1998, pp. 184\u2013193. IEEE, April 1998"}],"container-title":["Lecture Notes in Computer Science","Verification, Model Checking, and Abstract Interpretation"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-39322-9_4","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,3,12]],"date-time":"2024-03-12T18:42:43Z","timestamp":1710268963000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-030-39322-9_4"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020]]},"ISBN":["9783030393212","9783030393229"],"references-count":26,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-39322-9_4","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2020]]},"assertion":[{"value":"13 January 2020","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"VMCAI","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Verification, Model Checking, and Abstract Interpretation","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"New Orleans, LA","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"USA","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2020","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"16 January 2020","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"21 January 2020","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"21","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"vmcai2020a","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/popl20.sigplan.org\/home\/VMCAI-2020","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":"44","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":"21","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":"48% - 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":"4,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)"}}]}}