{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,5]],"date-time":"2026-02-05T11:11:49Z","timestamp":1770289909467,"version":"3.49.0"},"publisher-location":"New York, NY, USA","reference-count":32,"publisher":"ACM","license":[{"start":{"date-parts":[[2021,8,18]],"date-time":"2021-08-18T00:00:00Z","timestamp":1629244800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100000266","name":"Engineering and Physical Sciences Research Council","doi-asserted-by":"publisher","award":["EP\/S028129\/1"],"award-info":[{"award-number":["EP\/S028129\/1"]}],"id":[{"id":"10.13039\/501100000266","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2021,8,18]]},"DOI":"10.1145\/3471874.3472984","type":"proceedings-article","created":{"date-parts":[[2021,8,19]],"date-time":"2021-08-19T02:11:59Z","timestamp":1629339119000},"page":"71-84","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Design patterns for parser combinators (functional pearl)"],"prefix":"10.1145","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-3834-4741","authenticated-orcid":false,"given":"Jamie","family":"Willis","sequence":"first","affiliation":[{"name":"Imperial College London, UK"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4161-985X","authenticated-orcid":false,"given":"Nicolas","family":"Wu","sequence":"additional","affiliation":[{"name":"Imperial College London, UK"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2021,8,18]]},"reference":[{"key":"e_1_3_2_1_1_1","volume-title":"Ullman","author":"Aho Alfred V.","year":"2006","unstructured":"Alfred V. Aho , Monica S. Lam , Ravi Sethi , and Jeffrey D . Ullman . 2006 . Compilers : Principles, Techniques, and Tools (2nd Edition). Addison-Wesley Longman Publishing Co. , Inc., Boston, MA, USA. isbn:0321486811 https:\/\/doi.org\/doi\/10.5555\/1177220 Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman. 2006. Compilers: Principles, Techniques, and Tools (2nd Edition). Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA. isbn:0321486811 https:\/\/doi.org\/doi\/10.5555\/1177220"},{"key":"e_1_3_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1932681.1863585"},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-24452-0_5"},{"key":"e_1_3_2_1_4_1","volume-title":"Structured Analysis and System Specification","author":"DeMarco Tom","year":"2012","unstructured":"Tom DeMarco . 1979. Structured Analysis and System Specification . Prentice Hall PTR , USA. isbn:0138543801 https:\/\/doi.org\/doi\/book\/10.5555\/110 2012 Tom DeMarco. 1979. Structured Analysis and System Specification. Prentice Hall PTR, USA. isbn:0138543801 https:\/\/doi.org\/doi\/book\/10.5555\/1102012"},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-18378-2_9"},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/362007.362035"},{"key":"e_1_3_2_1_7_1","volume-title":"Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text","author":"Fokker Jeroen","unstructured":"Jeroen Fokker . 1995. Functional Parsers . In Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text . Springer-Verlag , Berlin, Heidelberg . 1\u201323. isbn:3-540-59451-5 http:\/\/dl.acm.org\/citation.cfm?id=647698.734153 Jeroen Fokker. 1995. Functional Parsers. In Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text. Springer-Verlag, Berlin, Heidelberg. 1\u201323. isbn:3-540-59451-5 http:\/\/dl.acm.org\/citation.cfm?id=647698.734153"},{"key":"e_1_3_2_1_8_1","volume-title":"Proceedings of the 10th International Conference on Parsing Technologies (IWPT \u201907)","author":"Frost Richard A.","year":"1932","unstructured":"Richard A. Frost , Rahmatullah Hafiz , and Paul C. Callaghan . 2007. Modular and Efficient Top-down Parsing for Ambiguous Left-Recursive Grammars . In Proceedings of the 10th International Conference on Parsing Technologies (IWPT \u201907) . Association for Computational Linguistics, USA. 109\u2013120. isbn:978 1932 432909 https:\/\/doi.org\/doi\/10.5555\/1621410.1621425 Richard A. Frost, Rahmatullah Hafiz, and Paul C. Callaghan. 2007. Modular and Efficient Top-down Parsing for Ambiguous Left-Recursive Grammars. In Proceedings of the 10th International Conference on Parsing Technologies (IWPT \u201907). Association for Computational Linguistics, USA. 109\u2013120. isbn:9781932432909 https:\/\/doi.org\/doi\/10.5555\/1621410.1621425"},{"key":"e_1_3_2_1_9_1","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"Gamma Erich","year":"1995","unstructured":"Erich Gamma , Richard Helm , Ralph Johnson , and John Vlissides . 1995 . Design Patterns: Elements of Reusable Object-Oriented Software . Addison-Wesley Longman Publishing Co., Inc. , USA. isbn:0201633612 https:\/\/doi.org\/doi\/book\/10.5555\/186897 Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman Publishing Co., Inc., USA. isbn:0201633612 https:\/\/doi.org\/doi\/book\/10.5555\/186897"},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/165180.165214"},{"key":"e_1_3_2_1_11_1","unstructured":"Andy Gill and Simon Marlow. 1995. Happy: the parser generator for Haskell..  Andy Gill and Simon Marlow. 1995. Happy: the parser generator for Haskell.."},{"key":"e_1_3_2_1_12_1","volume-title":"Continuation Passing Combinators for Parsing Precedence Grammars","author":"Hill Steve","unstructured":"Steve Hill . 1994. Continuation Passing Combinators for Parsing Precedence Grammars . University of Kent, Computing Laboratory , University of Kent , Canterbury, UK. https:\/\/kar.kent.ac.uk\/21168\/ Steve Hill. 1994. Continuation Passing Combinators for Parsing Precedence Grammars. University of Kent, Computing Laboratory, University of Kent, Canterbury, UK. https:\/\/kar.kent.ac.uk\/21168\/"},{"key":"e_1_3_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796800001799"},{"key":"e_1_3_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796800000411"},{"key":"e_1_3_2_1_15_1","volume-title":"Monadic Parser Combinators. Department of Computer Science","author":"Hutton Graham","unstructured":"Graham Hutton and Erik Meijer . 1996. Monadic Parser Combinators. Department of Computer Science , University of Nottingham. https :\/\/doi.org\/viewdoc\/summary?doi=10.1.1.54.1678 Graham Hutton and Erik Meijer. 1996. Monadic Parser Combinators. Department of Computer Science, University of Nottingham. https:\/\/doi.org\/viewdoc\/summary?doi=10.1.1.54.1678"},{"key":"e_1_3_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2847538.2847539"},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.5555\/216261.216269"},{"key":"e_1_3_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.12700\/aph.11.05.2014.05.3"},{"key":"e_1_3_2_1_19_1","volume-title":"Parsec: Direct Style Monadic Parser Combinators For The Real World. Microsoft. https:\/\/doi.org\/viewdoc\/summary?doi=10.1.1.19.5187","author":"Leijen Daan","year":"2001","unstructured":"Daan Leijen and Erik Meijer . 2001 . Parsec: Direct Style Monadic Parser Combinators For The Real World. Microsoft. https:\/\/doi.org\/viewdoc\/summary?doi=10.1.1.19.5187 Daan Leijen and Erik Meijer. 2001. Parsec: Direct Style Monadic Parser Combinators For The Real World. Microsoft. https:\/\/doi.org\/viewdoc\/summary?doi=10.1.1.19.5187"},{"key":"e_1_3_2_1_20_1","first-page":"597","article-title":"Design principles and design patterns","volume":"1","author":"Martin Robert C","year":"2000","unstructured":"Robert C Martin . 2000 . Design principles and design patterns . Object Mentor , 1 , 34 (2000), 597 . Robert C Martin. 2000. Design principles and design patterns. Object Mentor, 1, 34 (2000), 597.","journal-title":"Object Mentor"},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.5555\/974305.974338"},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1047124.1047497"},{"key":"e_1_3_2_1_23_1","volume-title":"The Practical Guide to Structured Systems Design","author":"Page-Jones Meilir","unstructured":"Meilir Page-Jones . 1988. The Practical Guide to Structured Systems Design : 2 nd Edition. Yourdon Press , USA. isbn:0136907695 https:\/\/doi.org\/doi\/book\/10.5555\/48039 Meilir Page-Jones. 1988. The Practical Guide to Structured Systems Design: 2nd Edition. Yourdon Press, USA. isbn:0136907695 https:\/\/doi.org\/doi\/book\/10.5555\/48039","edition":"2"},{"key":"e_1_3_2_1_24_1","volume-title":"The Definitive ANTLR 4 Reference","author":"Parr Terence","year":"1934","unstructured":"Terence Parr . 2013. The Definitive ANTLR 4 Reference ( 2 nd ed.). Pragmatic Bookshelf . isbn: 1934 356999 https:\/\/doi.org\/doi\/10.5555\/2501720 Terence Parr. 2013. The Definitive ANTLR 4 Reference (2nd ed.). Pragmatic Bookshelf. isbn:1934356999 https:\/\/doi.org\/doi\/10.5555\/2501720","edition":"2"},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3241625.2976013"},{"key":"e_1_3_2_1_26_1","unstructured":"Axel-Tobias Schreiner and James Heliotis. 2008. Design Patterns in Parsing. https:\/\/doi.org\/other\/82\/ Presented at Killer Examples a workshop at OOPSLA \u201908.  Axel-Tobias Schreiner and James Heliotis. 2008. Design Patterns in Parsing. https:\/\/doi.org\/other\/82\/ Presented at Killer Examples a workshop at OOPSLA \u201908."},{"key":"e_1_3_2_1_27_1","volume-title":"Error-Correcting Combinator Parsers. In Advanced Functional Programming, Second International School-Tutorial Text","author":"Swierstra Doaitse","unstructured":"Doaitse Swierstra and Luc Duponcheel . 1996. Deterministic , Error-Correcting Combinator Parsers. In Advanced Functional Programming, Second International School-Tutorial Text . Springer-Verlag, London , UK. 184\u2013207. isbn:3-540-61628-4 http:\/\/dl.acm.org\/citation.cfm?id=647699.734159 Doaitse Swierstra and Luc Duponcheel. 1996. Deterministic, Error-Correcting Combinator Parsers. In Advanced Functional Programming, Second International School-Tutorial Text. Springer-Verlag, London, UK. 184\u2013207. isbn:3-540-61628-4 http:\/\/dl.acm.org\/citation.cfm?id=647699.734159"},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03153-3_6"},{"key":"e_1_3_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-15975-4_33"},{"key":"e_1_3_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(90)90147-A"},{"key":"e_1_3_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/3241653.3241656"},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3409002"}],"event":{"name":"ICFP '21: 26th ACM SIGPLAN International Conference on Functional Programming","location":"Virtual Republic of Korea","acronym":"ICFP '21","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages"]},"container-title":["Proceedings of the 14th ACM SIGPLAN International Symposium on Haskell"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3471874.3472984","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3471874.3472984","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T21:24:49Z","timestamp":1750195489000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3471874.3472984"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,8,18]]},"references-count":32,"alternative-id":["10.1145\/3471874.3472984","10.1145\/3471874"],"URL":"https:\/\/doi.org\/10.1145\/3471874.3472984","relation":{},"subject":[],"published":{"date-parts":[[2021,8,18]]},"assertion":[{"value":"2021-08-18","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}