{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,26]],"date-time":"2025-03-26T08:46:42Z","timestamp":1742978802139,"version":"3.40.3"},"publisher-location":"Cham","reference-count":32,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783030148041"},{"type":"electronic","value":"9783030148058"}],"license":[{"start":{"date-parts":[[2019,1,1]],"date-time":"2019-01-01T00:00:00Z","timestamp":1546300800000},"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":[[2019]]},"DOI":"10.1007\/978-3-030-14805-8_2","type":"book-chapter","created":{"date-parts":[[2019,2,20]],"date-time":"2019-02-20T08:04:29Z","timestamp":1550649869000},"page":"24-43","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["Cactus Environment Machine"],"prefix":"10.1007","author":[{"given":"George","family":"Stelle","sequence":"first","affiliation":[]},{"given":"Darko","family":"Stefanovic","sequence":"additional","affiliation":[]},{"given":"Stephen L.","family":"Olivier","sequence":"additional","affiliation":[]},{"given":"Stephanie","family":"Forrest","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2019,2,21]]},"reference":[{"key":"2_CR1","doi-asserted-by":"crossref","unstructured":"Appel, A.W.: Compiling with Continuations. Cambridge University Press, Cambridge (1992)","DOI":"10.1017\/CBO9780511609619"},{"key":"2_CR2","unstructured":"Appel, A.W., Jim, T.: Optimizing closure environment representations. Technical report (1988)"},{"key":"2_CR3","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/3-540-54444-5_83","volume-title":"Programming Language Implementation and Logic Programming","author":"AW Appel","year":"1991","unstructured":"Appel, A.W., MacQueen, D.B.: Standard ML of New Jersey. In: Maluszy\u0144ski, J., Wirsing, M. (eds.) PLILP 1991. LNCS, vol. 528, pp. 1\u201313. Springer, Heidelberg (1991). \n                      https:\/\/doi.org\/10.1007\/3-540-54444-5_83"},{"key":"2_CR4","doi-asserted-by":"crossref","unstructured":"Ariola, Z.M., Maraist, J., Odersky, M., Felleisen, M., Wadler, P.: A call-by-need lambda calculus. In: Proceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 233\u2013246 (1995)","DOI":"10.1145\/199448.199507"},{"key":"2_CR5","volume-title":"The Lambda Calculus","author":"HP Barendregt","year":"1984","unstructured":"Barendregt, H.P.: The Lambda Calculus. North-Holland Amsterdam, Amsterdam (1984)"},{"issue":"1","key":"2_CR6","doi-asserted-by":"publisher","first-page":"6","DOI":"10.1145\/1297658.1297664","volume":"9","author":"M Biernacka","year":"2007","unstructured":"Biernacka, M., Danvy, O.: A concrete framework for environment machines. ACM Trans. Comput. Log. 9(1), 6 (2007)","journal-title":"ACM Trans. Comput. Log."},{"key":"2_CR7","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"58","DOI":"10.1007\/3-540-63237-9_19","volume-title":"Implementation of Functional Languages","author":"U Boquist","year":"1997","unstructured":"Boquist, U., Johnsson, T.: The GRIN project: a highly optimising back end for lazy functional languages. In: Kluge, W. (ed.) IFL 1996. LNCS, vol. 1268, pp. 58\u201384. Springer, Heidelberg (1997). \n                      https:\/\/doi.org\/10.1007\/3-540-63237-9_19"},{"issue":"2","key":"2_CR8","doi-asserted-by":"publisher","first-page":"389","DOI":"10.1016\/0304-3975(91)90230-Y","volume":"82","author":"PL Curien","year":"1991","unstructured":"Curien, P.L.: An abstract framework for environment machines. Theor. Comput. Sci. 82(2), 389\u2013402 (1991)","journal-title":"Theor. Comput. Sci."},{"key":"2_CR9","doi-asserted-by":"publisher","first-page":"21","DOI":"10.1016\/j.tcs.2012.02.023","volume":"435","author":"O Danvy","year":"2012","unstructured":"Danvy, O., Millikin, K., Munk, J., Zerny, I.: On inter-deriving small-step and big-step semantics: a case study for storeless call-by-need evaluation. Theor. Comput. Sci. 435, 21\u201342 (2012)","journal-title":"Theor. Comput. Sci."},{"key":"2_CR10","doi-asserted-by":"crossref","unstructured":"Danvy, O., Zerny, I.: A synthetic operational account of call-by-need evaluation. In: Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming, pp. 97\u2013108 (2013)","DOI":"10.1145\/2505879.2505898"},{"issue":"7","key":"2_CR11","doi-asserted-by":"publisher","first-page":"739","DOI":"10.1016\/S0167-739X(99)00088-6","volume":"16","author":"S Diehl","year":"2000","unstructured":"Diehl, S., Hartel, P., Sestoft, P.: Abstract machines for programming language implementation. Futur. Gener. Comput. Syst. 16(7), 739\u2013751 (2000)","journal-title":"Futur. Gener. Comput. Syst."},{"key":"2_CR12","doi-asserted-by":"crossref","unstructured":"Dijkstra, A., Fokker, J., Swierstra, S.D.: The architecture of the Utrecht Haskell compiler. In: Proceedings of the 2nd ACM SIGPLAN Symposium on Haskell, pp. 93\u2013104 (2009)","DOI":"10.1145\/1596638.1596650"},{"key":"2_CR13","doi-asserted-by":"publisher","first-page":"34","DOI":"10.1007\/3-540-18317-5_3","volume-title":"Functional Programming Languages and Computer Architecture","author":"Jon Fairbairn","year":"1987","unstructured":"Fairbairn, J., Wray, S.: TIM: a simple, lazy abstract machine to execute supercombinators. In: Functional Programming Languages and Computer Architecture, pp. 34\u201345 (1987)"},{"key":"2_CR14","doi-asserted-by":"publisher","first-page":"271","DOI":"10.1007\/s10990-007-9014-0","volume":"20","author":"D Friedman","year":"2007","unstructured":"Friedman, D., Ghuloum, A., Siek, J., Winebarger, O.: Improving the lazy Krivine machine. High.-Order Symb. Comput. 20, 271\u2013293 (2007)","journal-title":"High.-Order Symb. Comput."},{"key":"2_CR15","doi-asserted-by":"crossref","unstructured":"Hauck, E., Dent, B.A.: Burroughs\u2019 B6500\/B7500 stack mechanism. In: Proceedings of the 30 April\u20132 May 1968, Spring Joint Computer Conference, pp. 245\u2013251 (1968)","DOI":"10.1145\/1468075.1468111"},{"key":"2_CR16","volume-title":"Rationale for the Design of the ADA Programming Language","author":"J Ichbiah","year":"1991","unstructured":"Ichbiah, J.: Rationale for the Design of the ADA Programming Language. Cambridge University Press, Cambridge (1991)"},{"issue":"1","key":"2_CR17","doi-asserted-by":"publisher","first-page":"55","DOI":"10.1145\/366062.366084","volume":"4","author":"PZ Ingerman","year":"1961","unstructured":"Ingerman, P.Z.: A way of compiling procedure statements with some comments on procedure declarations. Commun. ACM 4(1), 55\u201358 (1961)","journal-title":"Commun. ACM"},{"key":"2_CR18","doi-asserted-by":"crossref","unstructured":"Johnsson, T.: Efficient compilation of lazy evaluation. In: Proceedings of the 1984 SIGPLAN Symposium on Compiler Construction, pp. 58\u201369 (1984)","DOI":"10.1145\/502949.502880"},{"issue":"3","key":"2_CR19","doi-asserted-by":"publisher","first-page":"199","DOI":"10.1007\/s10990-007-9018-9","volume":"20","author":"J Krivine","year":"2007","unstructured":"Krivine, J.: A call-by-name lambda-calculus machine. High.-Order Symb. Comput. 20(3), 199\u2013207 (2007)","journal-title":"High.-Order Symb. Comput."},{"issue":"4","key":"2_CR20","doi-asserted-by":"publisher","first-page":"308","DOI":"10.1093\/comjnl\/6.4.308","volume":"6","author":"PJ Landin","year":"1964","unstructured":"Landin, P.J.: The mechanical evaluation of expressions. Comput. J. 6(4), 308\u2013320 (1964)","journal-title":"Comput. J."},{"key":"2_CR21","unstructured":"Leroy, X.: The ZINC experiment: an economical implementation of the ML language. Technical report 117, INRIA (1990)"},{"issue":"4\u20135","key":"2_CR22","doi-asserted-by":"publisher","first-page":"415","DOI":"10.1017\/S0956796806005995","volume":"16","author":"S Marlow","year":"2006","unstructured":"Marlow, S., Jones, S.P.: Making a fast curry: push\/enter vs. eval\/apply for higher-order languages. J. Funct. Program. 16(4\u20135), 415\u2013449 (2006)","journal-title":"J. Funct. Program."},{"key":"2_CR23","unstructured":"Mycroft, A.: Abstract interpretation and optimising transformations for applicative programs. Ph.D. thesis (1982)"},{"issue":"2","key":"2_CR24","doi-asserted-by":"publisher","first-page":"127","DOI":"10.1017\/S0956796800000319","volume":"2","author":"SL Peyton Jones","year":"1992","unstructured":"Peyton Jones, S.L.: Implementing lazy functional languages on stock hardware: the spineless tagless G-machine. J. Funct. Program. 2(2), 127\u2013202 (1992)","journal-title":"J. Funct. Program."},{"key":"2_CR25","volume-title":"Implementing Functional Languages","author":"SL Peyton Jones","year":"1992","unstructured":"Peyton Jones, S.L., Lester, D.R.: Implementing Functional Languages. Prentice-Hall, Inc., Upper Saddle River (1992)"},{"issue":"1","key":"2_CR26","doi-asserted-by":"publisher","first-page":"226","DOI":"10.1145\/141478.141545","volume":"V","author":"Guillermo Juan Rozas","year":"1992","unstructured":"Rozas, G.J.: Taming the Y operator. In: ACM SIGPLAN Lisp Pointers, vol. 1, pp. 226\u2013234 (1992)","journal-title":"ACM SIGPLAN Lisp Pointers"},{"key":"2_CR27","first-page":"153","volume":"6","author":"A Sabry","year":"2010","unstructured":"Sabry, A., Lumsdaine, A., Garcia, R.: Lazy evaluation and delimited control. Log. Methods Comput. Sci. 6, 153\u2013164 (2010)","journal-title":"Log. Methods Comput. Sci."},{"issue":"3","key":"2_CR28","doi-asserted-by":"publisher","first-page":"231","DOI":"10.1017\/S0956796897002712","volume":"7","author":"P Sestoft","year":"1997","unstructured":"Sestoft, P.: Deriving a lazy abstract machine. J. Funct. Program. 7(3), 231\u2013264 (1997)","journal-title":"J. Funct. Program."},{"key":"2_CR29","doi-asserted-by":"crossref","unstructured":"Shao, Z., Appel, A.W.: Space-efficient closure representations. In: Proceedings of the 1994 ACM Conference on Lisp and Functional Programming (1994)","DOI":"10.1145\/182409.156783"},{"key":"2_CR30","doi-asserted-by":"crossref","unstructured":"Stenstrom, P.: VLSI support for a cactus stack oriented memory organization. In: Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences, Volume I. Architecture Track, vol. 1, pp. 211\u2013220 (1988)","DOI":"10.1109\/HICSS.1988.11768"},{"key":"2_CR31","doi-asserted-by":"crossref","unstructured":"Terei, D.A., Chakravarty, M.M.: An LLVM backend for GHC. In: Proceedings of the Third ACM Haskell Symposium on Haskell, Haskell 2010, pp. 109\u2013120 (2010)","DOI":"10.1145\/1863523.1863538"},{"key":"2_CR32","doi-asserted-by":"publisher","first-page":"385","DOI":"10.1007\/3-540-18317-5_21","volume-title":"Functional Programming Languages and Computer Architecture","author":"Philip Wadler","year":"1987","unstructured":"Wadler, P., Hughes, R.J.M.: Projections for strictness analysis. In: Functional Programming Languages and Computer Architecture, pp. 385\u2013407 (1987)"}],"container-title":["Lecture Notes in Computer Science","Trends in Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-14805-8_2","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,5,20]],"date-time":"2019-05-20T08:20:50Z","timestamp":1558340450000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-030-14805-8_2"}},"subtitle":["Shared Environment Call-by-Need"],"short-title":[],"issued":{"date-parts":[[2019]]},"ISBN":["9783030148041","9783030148058"],"references-count":32,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-14805-8_2","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2019]]},"assertion":[{"value":"21 February 2019","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"TFP","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Symposium on Trends in Functional Programming","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"College Park, MD","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":"2016","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"8 June 2016","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"10 June 2016","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"17","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"tfp2016","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Single-blind","order":1,"name":"type","label":"Type","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"EasyChair","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"18","order":3,"name":"number_of_submissions_sent_for_review","label":"Number of Submissions Sent for Review","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"10","order":4,"name":"number_of_full_papers_accepted","label":"Number of Full Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"0","order":5,"name":"number_of_short_papers_accepted","label":"Number of Short Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"56% - 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"}},{"value":"3,7","order":7,"name":"average_number_of_reviews_per_paper","label":"Average Number of Reviews per Paper","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"3,35","order":8,"name":"average_number_of_papers_per_reviewer","label":"Average Number of Papers per Reviewer","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"No","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}}]}}