{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,27]],"date-time":"2025-03-27T03:25:32Z","timestamp":1743045932126,"version":"3.40.3"},"publisher-location":"Berlin, Heidelberg","reference-count":46,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783540853725"},{"type":"electronic","value":"9783540853732"}],"license":[{"start":{"date-parts":[[2008,1,1]],"date-time":"2008-01-01T00:00:00Z","timestamp":1199145600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2008,1,1]],"date-time":"2008-01-01T00:00:00Z","timestamp":1199145600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2008]]},"DOI":"10.1007\/978-3-540-85373-2_4","type":"book-chapter","created":{"date-parts":[[2008,8,20]],"date-time":"2008-08-20T11:34:54Z","timestamp":1219232094000},"page":"57-74","source":"Crossref","is-referenced-by-count":0,"title":["The Structure of the Essential Haskell Compiler, or Coping with Compiler Complexity"],"prefix":"10.1007","author":[{"given":"Atze","family":"Dijkstra","sequence":"first","affiliation":[]},{"given":"Jeroen","family":"Fokker","sequence":"additional","affiliation":[]},{"given":"S. Doaitse","family":"Swierstra","sequence":"additional","affiliation":[]}],"member":"297","reference":[{"key":"4_CR1","unstructured":"Hugs 98 (2003), http:\/\/www.haskell.org\/hugs\/"},{"key":"4_CR2","unstructured":"ASF+SDF (2005), http:\/\/www.cwi.nl\/htbin\/sen1\/twiki\/bin\/view\/SEN1\/ASF+SDF"},{"key":"4_CR3","unstructured":"Eli: An Integrated Toolset for Compiler Construction (2005), http:\/\/eli-project.sourceforge.net\/"},{"key":"4_CR4","unstructured":"The Catalog of Compiler Construction Tools (2006), http:\/\/catalog.compilertools.net\/"},{"key":"4_CR5","unstructured":"The GENTLE Compiler Construction System (2007), http:\/\/gentle.compilertools.net\/"},{"key":"4_CR6","unstructured":"The Twelf Project (2007), http:\/\/twelf.plparty.org\/wiki"},{"key":"4_CR7","unstructured":"JastAdd (2008), http:\/\/jastadd.org\/"},{"key":"4_CR8","unstructured":"Polyglot (2008), http:\/\/www.cs.cornell.edu\/projects\/polyglot\/"},{"key":"4_CR9","unstructured":"Baars, A.: Attribute Grammar System (2004), http:\/\/www.cs.uu.nl\/groups\/ST\/Center\/AttributeGrammarSystem"},{"key":"4_CR10","volume-title":"The algebra of programming","author":"R. Bird","year":"1996","unstructured":"Bird, R., de Moor, O.: The algebra of programming. Prentice Hall, Englewood Cliffs (1996)"},{"key":"4_CR11","doi-asserted-by":"publisher","first-page":"239","DOI":"10.1007\/BF00264249","volume":"21","author":"R.S. Bird","year":"1984","unstructured":"Bird, R.S.: Using Circular Programs to Eliminate Multiple Traversals of Data. Acta Informatica\u00a021, 239\u2013250 (1984)","journal-title":"Acta Informatica"},{"key":"4_CR12","unstructured":"Boquist, U.: Code Optimisation Techniques for Lazy Functional Languages, PhD Thesis. Chalmers University of Technology (1999)"},{"key":"4_CR13","doi-asserted-by":"crossref","unstructured":"Boquist, U., Johnsson, T.: The GRIN Project: A Highly Optimising Back End For Lazy Functional Languages. In: Selected papers from the 8th International Workshop on Implementation of Functional Languages (1996)","DOI":"10.1007\/3-540-63237-9_19"},{"key":"4_CR14","unstructured":"Dijkstra, A.: EHC Web (2004), http:\/\/www.cs.uu.nl\/groups\/ST\/Ehc\/WebHome"},{"key":"4_CR15","unstructured":"Dijkstra, A.: Stepping through Haskell. PhD thesis, Utrecht University, Department of Information and Computing Sciences (2005)"},{"key":"4_CR16","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/11546382_1","volume-title":"Advanced Functional Programming","author":"A. Dijkstra","year":"2005","unstructured":"Dijkstra, A., Swierstra, S.D.: Typing Haskell with an Attribute Grammar. In: Vene, V., Uustalu, T. (eds.) AFP 2004. LNCS, vol.\u00a03622, pp. 1\u201372. Springer, Heidelberg (2005)"},{"key":"4_CR17","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"30","DOI":"10.1007\/11737414_4","volume-title":"Functional and Logic Programming","author":"A. Dijkstra","year":"2006","unstructured":"Dijkstra, A., Swierstra, S.D.: Ruler: Programming Type Rules. In: Hagiya, M., Wadler, P. (eds.) FLOPS 2006. LNCS, vol.\u00a03945, pp. 30\u201346. Springer, Heidelberg (2006)"},{"key":"4_CR18","doi-asserted-by":"crossref","unstructured":"Ekman, T., Hedin, G.: The JastAdd Extensible Java Compiler. In: OOPSLA, pp. 1\u201318 (2007)","DOI":"10.1145\/1297105.1297029"},{"issue":"1-3","key":"4_CR19","doi-asserted-by":"publisher","first-page":"14","DOI":"10.1016\/j.scico.2007.02.003","volume":"69","author":"T. Ekman","year":"2007","unstructured":"Ekman, T., Hedin, G.: The JastAdd System - modular extensible compiler construction. Science of Computer Programming\u00a069(1-3), 14\u201326 (2007)","journal-title":"Science of Computer Programming"},{"issue":"2","key":"4_CR20","doi-asserted-by":"publisher","first-page":"121","DOI":"10.1145\/129630.129637","volume":"35","author":"R.W. Gray","year":"1992","unstructured":"Gray, R.W., Levi, S.P., Heuring, V.P., Sloane, A.M., Waite, W.M.: Eli: a complete, flexible compiler construction system. Communications of the ACM\u00a035(2), 121\u2013130 (1992)","journal-title":"Communications of the ACM"},{"key":"4_CR21","doi-asserted-by":"crossref","unstructured":"Grosch, J., Emmelmann, H.: A Tool Box for Compiler Construction. In: Proceedings of the third international workshop on Compiler compilers (1991)","DOI":"10.1007\/3-540-53669-8_77"},{"key":"4_CR22","unstructured":"Grosch, J., Vollmer, J.: Compiler Compiler Laboratory (2007), http:\/\/www.cocolab.com\/"},{"issue":"1","key":"4_CR23","doi-asserted-by":"publisher","first-page":"37","DOI":"10.1016\/S0167-6423(02)00109-0","volume":"47","author":"G. Hedin","year":"2003","unstructured":"Hedin, G., Magnusson, E.: JastAdd, an aspect-oriented compiler construction system. Science of Computer Programming\u00a047(1), 37\u201358 (2003)","journal-title":"Science of Computer Programming"},{"key":"4_CR24","unstructured":"Jones, M.P.: Typing Haskell in Haskell. In: Haskell Workshop (1999)"},{"key":"4_CR25","doi-asserted-by":"publisher","first-page":"229","DOI":"10.1007\/BF00288644","volume":"13","author":"U. Kastens","year":"1980","unstructured":"Kastens, U.: Ordered Attribute Grammars. Acta Informatica\u00a013, 229\u2013256 (1980)","journal-title":"Acta Informatica"},{"issue":"2","key":"4_CR26","doi-asserted-by":"publisher","first-page":"127","DOI":"10.1007\/BF01692511","volume":"2","author":"D.E. Knuth","year":"1968","unstructured":"Knuth, D.E.: Semantics of context-free languages. Mathematical Systems Theory\u00a02(2), 127\u2013145 (1968)","journal-title":"Mathematical Systems Theory"},{"key":"4_CR27","doi-asserted-by":"crossref","unstructured":"Knuth, D.E.: Literate Programming. Journal of the ACM\u00a0(42), 97\u2013111 (1984)","DOI":"10.1093\/comjnl\/27.2.97"},{"key":"4_CR28","doi-asserted-by":"crossref","unstructured":"L\u00e4mmel, R., Jones, S.P.: Scrap your boilerplate: a practical design pattern for generic programming. In: Types In Languages Design And Implementation, pp. 26\u201337 (2003)","DOI":"10.1145\/640136.604179"},{"key":"4_CR29","unstructured":"Lattner, C.: The LLVM Compiler Infrastructure Project (2007), http:\/\/llvm.org\/"},{"key":"4_CR30","unstructured":"Levin, M.Y., Pierce, B.C.: TinkerType: A Language for Playing with Formal Systems (1999), http:\/\/www.cis.upenn.edu\/~milevin\/tt.html"},{"key":"4_CR31","unstructured":"Marlow, S.: The Glasgow Haskell Compiler (2004), http:\/\/www.haskell.org\/ghc\/"},{"key":"4_CR32","unstructured":"Marlow, S., Jones, S.P.: The New GHC\/Hugs Runtime System (1998), http:\/\/citeseer.ist.psu.edu\/marlow98new.html"},{"key":"4_CR33","series-title":"Lecture Notes in Computer Science","volume-title":"Advanced Functional Programming","author":"E. Meijer","year":"1995","unstructured":"Meijer, E., Jeuring, J.: Merging monads and folds for functional programming. In: Jeuring, J., Meijer, E. (eds.) AFP 1995. LNCS, vol.\u00a0925. Springer, Heidelberg (1995)"},{"key":"4_CR34","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"138","DOI":"10.1007\/3-540-36579-6_11","volume-title":"Compiler Construction","author":"N. Nystrom","year":"2003","unstructured":"Nystrom, N., Clarkson, M.R., Myers, A.C.: Polyglot: An Extensible Compiler Framework for Java. In: Hedin, G. (ed.) CC 2003 and ETAPS 2003. LNCS, vol.\u00a02622, pp. 138\u2013152. Springer, Heidelberg (2003)"},{"key":"4_CR35","doi-asserted-by":"crossref","unstructured":"Jones, S.P.: Compiling Haskell by program transformation: a report from the trenches. In: European Symposium On Programming, pp. 18\u201344 (1996)","DOI":"10.1007\/3-540-61055-3_27"},{"key":"4_CR36","unstructured":"Jones, S.P., Hall, C., Hammond, K., Partain, W., Wadler, P.: The Glasgow Haskell compiler: a technical overview. In: Proc. UK Joint Framework for Information Technology (JFIT) Technical Conference (1992)"},{"key":"4_CR37","doi-asserted-by":"crossref","unstructured":"Jones, S.P., Marlow, S.: Secrets of the Glasgow Haskell Compiler inliner. Journal of Functional Programming, 393\u2013434 (2002)","DOI":"10.1017\/S0956796802004331"},{"key":"4_CR38","doi-asserted-by":"crossref","unstructured":"Jones, S.P., Santos, A.: Compilation by Transformation in the Glasgow Haskell Compiler (1994), http:\/\/citeseer.ist.psu.edu\/peytonjones94compilation.html","DOI":"10.1007\/978-1-4471-3573-9_13"},{"issue":"1-3","key":"4_CR39","doi-asserted-by":"publisher","first-page":"3","DOI":"10.1016\/S0167-6423(97)00029-4","volume":"32","author":"S.P. Jones","year":"1998","unstructured":"Jones, S.P., Santos, A.: A transformation-based optimiser for Haskell. Science of Computer Programming\u00a032(1-3), 3\u201347 (1998)","journal-title":"Science of Computer Programming"},{"key":"4_CR40","volume-title":"Types and Programming Languages","author":"B.C. Pierce","year":"2002","unstructured":"Pierce, B.C.: Types and Programming Languages. MIT Press, Cambridge (2002)"},{"key":"4_CR41","unstructured":"Saraiva, J.: Purely Functional Implementation of Attribute Grammars. PhD thesis, Utrecht University (1999)"},{"key":"4_CR42","unstructured":"Schrer, F.W.: The GENTLE Compiler Construction System. R. Oldenbourg Verlag (1997)"},{"key":"4_CR43","doi-asserted-by":"crossref","unstructured":"Sewell, P., Nardelli, F.Z., Owens, S., Peskine, G., et al.: Ott: effective tool support for the working semanticist. In: ICFP, pp. 1\u201312 (2007)","DOI":"10.1145\/1291220.1291155"},{"key":"4_CR44","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"150","DOI":"10.1007\/10704973_4","volume-title":"Advanced Functional Programming","author":"S. Doaitse Swierstra","year":"1999","unstructured":"Doaitse Swierstra, S., Azero Alocer, P.R., Saraiava, J.: Designing and Implementing Combinator Languages. In: Swierstra, D., Henriques, P., Oliveira, J. (eds.) AFP 1998. LNCS, vol.\u00a01608, pp. 150\u2013206. Springer, Heidelberg (1999)"},{"key":"4_CR45","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"357","DOI":"10.1007\/3-540-45127-7_27","volume-title":"Rewriting Techniques and Applications","author":"E. Visser","year":"2001","unstructured":"Visser, E.: A language for program transformation based on rewriting strategies. System description of Stratego 0.5. In: Middeldorp, A. (ed.) RTA 2001. LNCS, vol.\u00a02051, pp. 357\u2013361. Springer, Heidelberg (2001)"},{"key":"4_CR46","doi-asserted-by":"crossref","unstructured":"Visser, E.: Stratego Home Page (2005), http:\/\/www.program-transformation.org\/Stratego\/WebHome","DOI":"10.1007\/978-3-540-25935-0_13"}],"container-title":["Lecture Notes in Computer Science","Implementation and Application of Functional Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-540-85373-2_4","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,31]],"date-time":"2025-01-31T15:56:39Z","timestamp":1738338999000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-540-85373-2_4"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2008]]},"ISBN":["9783540853725","9783540853732"],"references-count":46,"URL":"https:\/\/doi.org\/10.1007\/978-3-540-85373-2_4","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2008]]}}}