{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:25:05Z","timestamp":1750307105688,"version":"3.41.0"},"reference-count":70,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2012,12,1]],"date-time":"2012-12-01T00:00:00Z","timestamp":1354320000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100003246","name":"Nederlandse Organisatie voor Wetenschappelijk Onderzoek","doi-asserted-by":"publisher","award":["612.063.512638.001.610"],"award-info":[{"award-number":["612.063.512638.001.610"]}],"id":[{"id":"10.13039\/501100003246","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[2012,12]]},"abstract":"<jats:p>Integrated Development Environments (IDEs) increase programmer productivity, providing rapid, interactive feedback based on the syntax and semantics of a language. Unlike conventional parsing algorithms, scannerless generalized-LR parsing supports the full set of context-free grammars, which is closed under composition, and hence can parse languages composed from separate grammar modules. To apply this algorithm in an interactive environment, this article introduces a novel error recovery mechanism. Our approach is language independent, and relies on automatic derivation of recovery rules from grammars. By taking layout information into consideration it can efficiently suggest natural recovery suggestions.<\/jats:p>","DOI":"10.1145\/2400676.2400678","type":"journal-article","created":{"date-parts":[[2013,1,11]],"date-time":"2013-01-11T15:42:48Z","timestamp":1357918968000},"page":"1-50","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":17,"title":["Natural and Flexible Error Recovery for Generated Modular Language Environments"],"prefix":"10.1145","volume":"34","author":[{"given":"Maartje","family":"de Jonge","sequence":"first","affiliation":[{"name":"Technical University Delft"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Lennart C. L.","family":"Kats","sequence":"additional","affiliation":[{"name":"Technical University Delft"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Eelco","family":"Visser","sequence":"additional","affiliation":[{"name":"Technical University Delft"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Emma","family":"S\u00f6derberg","sequence":"additional","affiliation":[{"name":"Lund University"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2012,12]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF00999442"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1028976.1029007"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1167473.1167491"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1289971.1289975"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2007.11.003"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2009.05.004"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/22719.22720"},{"key":"e_1_2_1_8_1","volume-title":"Proceedings of the Australian Computer Science Conference (ACSC\u201902)","volume":"4","author":"Cerecke C.","year":"2002"},{"key":"e_1_2_1_9_1","unstructured":"Charles P. 1991. A practical method for constructing efficient lalr(k) parsers with automatic error recovery. Ph.D. thesis New York University. Charles P. 1991. A practical method for constructing efficient lalr(k) parsers with automatic error recovery. Ph.D. thesis New York University."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1321631.1321715"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/586088.586092"},{"key":"e_1_2_1_12_1","doi-asserted-by":"crossref","unstructured":"de Jonge M. and Visser E. 2012. Automated evaluation of syntax error recovery. Tech. rep. TUD-SERG-2012-035 Delft University of Technology Software Engineering Research Group Delft The Netherlands. de Jonge M. and Visser E. 2012. Automated evaluation of syntax error recovery. Tech. rep. TUD-SERG-2012-035 Delft University of Technology Software Engineering Research Group Delft The Netherlands.","DOI":"10.1145\/2351676.2351736"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-12107-4_16"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380250606"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1119479.1119483"},{"volume-title":"Proceedings of the Workshop on Modeling Symposium at Eclipse Summit.","author":"Efftinge S.","key":"e_1_2_1_16_1"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF00263990"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/583852.581483"},{"key":"e_1_2_1_19_1","unstructured":"Fowler M. 2005a. Language workbenches: The killer-app for domain specific languages? http:\/\/martinfowler.com\/articles\/languageWorkbench.html. Fowler M. 2005a. Language workbenches: The killer-app for domain specific languages? http:\/\/martinfowler.com\/articles\/languageWorkbench.html."},{"key":"e_1_2_1_20_1","unstructured":"Fowler M. 2005b. PostIntelliJ. http:\/\/martinfowler.com\/bliki\/PostIntelliJ.html. Fowler M. 2005b. PostIntelliJ. http:\/\/martinfowler.com\/bliki\/PostIntelliJ.html."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1133981.1133987"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1370175.1370190"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/71605.71607"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-02674-4_9"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-24723-4_7"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1173706.1173744"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1869459.1869497"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1449764.1449772"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640122"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-00722-4_11"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2010.08.038"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1869459.1869535"},{"key":"e_1_2_1_33_1","unstructured":"Kats L. C. L. de Jonge M. Nilsson-Nyman E. and Visser E. 2011. The permissive grammars project. http:\/\/strategoxt.org\/Stratego\/PermissiveGrammars. Kats L. C. L. de Jonge M. Nilsson-Nyman E. and Visser E. 2011. The permissive grammars project. http:\/\/strategoxt.org\/Stratego\/PermissiveGrammars."},{"key":"e_1_2_1_34_1","doi-asserted-by":"crossref","unstructured":"Kiczales G. Lamping J. Menhdhekar A. Maeda C. Lopes C. Loingtier J.-M. and \n      \n      \n      Irwin J\n      \n  \n  . \n  1997\n  . Aspect-oriented programming. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP\u201997). M. Ak\u015fit and S. Matsuoka Eds. Lecture Notes in Computer Science vol. \n  1241 Springer 220--242. Kiczales G. Lamping J. Menhdhekar A. Maeda C. Lopes C. Loingtier J.-M. and Irwin J. 1997. Aspect-oriented programming. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP\u201997) . M. Ak\u015fit and S. Matsuoka Eds. Lecture Notes in Computer Science vol. 1241 Springer 220--242.","DOI":"10.1007\/BFb0053381"},{"volume-title":"International Conference on Software Maintenance (ICSM\u201903)","author":"Klusener S.","key":"e_1_2_1_35_1"},{"volume-title":"Proceedings of the 7th OOPSLA Workshop on Domain-Specific Modeling. Tech. rep. TR-38","author":"Krahn H.","key":"e_1_2_1_36_1"},{"key":"e_1_2_1_37_1","doi-asserted-by":"crossref","unstructured":"Krahn H. Rumpe B. and \n      \n      \n      V\u00f6lkel S\n      \n  \n  . \n  2008\n  . MontiCore: \n  Modular\n   development of textual domain specific languages. In Proceedings of the International Conference on Objects Model Components and Patterns Europe (TOOLS EUROPE\u201908). R. Paige and B. Meyer Eds. Lecture Notes in Business Information Processing vol. \n  11 Springer-Verlag 297--315. Krahn H. Rumpe B. and V\u00f6lkel S. 2008. MontiCore: Modular development of textual domain specific languages. In Proceedings of the International Conference on Objects Model Components and Patterns Europe (TOOLS EUROPE\u201908) . R. Paige and B. Meyer Eds. Lecture Notes in Business Information Processing vol. 11 Springer-Verlag 297--315.","DOI":"10.1007\/978-3-540-69824-1_17"},{"key":"e_1_2_1_38_1","unstructured":"Kuhn T. and Thomann O. 2006. Eclipse corner: Abstract syntax tree. http:\/\/eclipse.org\/articles \/article.php?file=Article-JavaCodeManipulation_AST\/index.html. Kuhn T. and Thomann O. 2006. Eclipse corner: Abstract syntax tree. http:\/\/eclipse.org\/articles \/article.php?file=Article-JavaCodeManipulation_AST\/index.html."},{"volume-title":"Proceedings of the 3rd International Workshop on Parsing Technologies. 123--134","author":"Lavie A.","key":"e_1_2_1_39_1"},{"key":"e_1_2_1_40_1","unstructured":"L\u00e9vy J.-P. 1971. Automatic correction of syntax errors in programming languages. Ph.D. thesis Ithaca NY. L\u00e9vy J.-P. 1971. Automatic correction of syntax errors in programming languages. Ph.D. thesis Ithaca NY."},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/44501.44505"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/210184.210193"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.5555\/832308.837160"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.5555\/580131.857007"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-00434-6_7"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/357084.357086"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993548"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380250705"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/512760.512786"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/122501.122505"},{"key":"e_1_2_1_51_1","unstructured":"Salomon D. and Cormack G. 1995. The disambiguation and scannerless parsing of complete character-level grammars for programming languages. Tech. rep. TR 95\/06 Department of Computer Science University of Manitoba Winnipeg Canada. Salomon D. and Cormack G. 1995. The disambiguation and scannerless parsing of complete character-level grammars for programming languages. Tech. rep. TR 95\/06 Department of Computer Science University of Manitoba Winnipeg Canada."},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/74818.74833"},{"key":"e_1_2_1_53_1","unstructured":"Saunders S. Fields D. K. and Belayev E. 2006. IntelliJ IDEA in Action. Manning. Saunders S. Fields D. K. and Belayev E. 2006. IntelliJ IDEA in Action . Manning."},{"key":"e_1_2_1_54_1","unstructured":"Schmitz S. 2006. Modular syntax demands verification. Tech. rep. I3S\/RR-2006-32-FR Laboratoire I3S Universit\u00e9 de Nice-Sophia Antipolis France. Schmitz S. 2006. Modular syntax demands verification. Tech. rep. I3S\/RR-2006-32-FR Laboratoire I3S Universit\u00e9 de Nice-Sophia Antipolis France."},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/1543135.1542499"},{"key":"e_1_2_1_56_1","doi-asserted-by":"crossref","unstructured":"Swierstra S. D.\n     and \n      \n      \n      Duponcheel L\n      \n  \n  . \n  1996\n  . Deterministic error-correcting combinator parsers. In Proceedings of the 2nd International School of Advanced Functional Programming. J. Launchbury et al. Eds. Lecture Notes in Computer Science vol. \n  1129 Springer 184--207. Swierstra S. D. and Duponcheel L. 1996. Deterministic error-correcting combinator parsers. In Proceedings of the 2nd International School of Advanced Functional Programming . J. Launchbury et al. Eds. Lecture Notes in Computer Science vol. 1129 Springer 184--207.","DOI":"10.1007\/3-540-61628-4_7"},{"volume-title":"Proceedings of the Conference of the Centre for Advanced Studies on Collaborative Research. IBM Press, 266--278","author":"Synytskyy N.","key":"e_1_2_1_57_1"},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1978.233861"},{"key":"e_1_2_1_59_1","unstructured":"Tomita M. 1988. Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems. Vol. 14 Kluwer Academic Publishers. Tomita M. 1988. Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems . Vol. 14 Kluwer Academic Publishers."},{"key":"e_1_2_1_60_1","unstructured":"Valkering R. 2007. Syntax error handling in scannerless generalized lr parsers. M.S. thesis University of Amsterdam. Valkering R. 2007. Syntax error handling in scannerless generalized lr parsers. M.S. thesis University of Amsterdam."},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1002\/(SICI)1097-024X(200003)30:3%3C259::AID-SPE298%3E3.0.CO;2-Y"},{"key":"e_1_2_1_62_1","doi-asserted-by":"crossref","unstructured":"van den Brand M. Scheerder J. Vinju J. J. and \n      \n      \n      Visser E\n      \n  \n  . \n  2002\n  a. Disambiguation filters for scannerless generalized lr parsers. In Proceedings of the 11th International Conference on Compiler Construction (CC\u201902) held as Part of the Joint European Conferences on Theory and Practice of Software (ETAPS\u201902). R. N. Horspool Ed. Lecture Notes in Computer Science vol. \n  2304 Springer 143--158. van den Brand M. Scheerder J. Vinju J. J. and Visser E. 2002a. Disambiguation filters for scannerless generalized lr parsers. In Proceedings of the 11th International Conference on Compiler Construction (CC\u201902) held as Part of the Joint European Conferences on Theory and Practice of Software (ETAPS\u201902) . R. N. Horspool Ed. Lecture Notes in Computer Science vol. 2304 Springer 143--158.","DOI":"10.1007\/3-540-45937-5_12"},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1145\/567097.567099"},{"key":"e_1_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1109\/CSMR.2007.52"},{"volume-title":"Proceedings of the IEEE International Conference on Software Maintenance (ICSM\u201999)","author":"van Deursen A.","key":"e_1_2_1_65_1"},{"volume-title":"Proceedings of the International Workshop on Parsing Technology (IWPT\u201997)","year":"1997","author":"Visser E.","key":"e_1_2_1_66_1"},{"key":"e_1_2_1_67_1","unstructured":"Visser E. 1997b. Scannerless generalized-lr parsing. Tech. rep. P9707 Programming Research Group University of Amsterdam. Visser E. 1997b. Scannerless generalized-lr parsing. Tech. rep. P9707 Programming Research Group University of Amsterdam."},{"key":"e_1_2_1_68_1","unstructured":"Visser E. 1997c. Syntax definition for language prototyping. Ph.D. thesis University of Amsterdam. Visser E. 1997c. Syntax definition for language prototyping. Ph.D. thesis University of Amsterdam."},{"key":"e_1_2_1_69_1","doi-asserted-by":"publisher","DOI":"10.5555\/645435.652697"},{"key":"e_1_2_1_70_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2006.04.010"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2400676.2400678","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2400676.2400678","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T09:35:01Z","timestamp":1750239301000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2400676.2400678"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2012,12]]},"references-count":70,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2012,12]]}},"alternative-id":["10.1145\/2400676.2400678"],"URL":"https:\/\/doi.org\/10.1145\/2400676.2400678","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"type":"print","value":"0164-0925"},{"type":"electronic","value":"1558-4593"}],"subject":[],"published":{"date-parts":[[2012,12]]},"assertion":[{"value":"2011-10-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2012-10-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2012-12-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}