{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,21]],"date-time":"2023-10-21T11:13:03Z","timestamp":1697886783271},"reference-count":16,"publisher":"Wiley","issue":"11","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":8033,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1984,11]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>An efficient and systematic LL(1) error recovery method is presented that has been implemented for an LL(1) parser generator. Error messages which provide good diagnostic information are generated automatically. Error correction is done by discarding some input symbols and popping up some symbols from the parsing\u2010stack in order to restore the parser to a valid configuration. Thus, symbol deletions and insertions are simulated. The choice between different possible corrections is made by comparing the cost of the inserted (popped) symbols with the reliability value of the recovery symbol (the first input symbol that is not discarded). Our concept of reliability is based on the observation that input symbols differ from each other in their ability to serve as recovery points. A high reliability value of a symbol asserts that it was probably not placed in the input by accident. So it is reasonable not to discard that symbol but to resume parsing. This is done even if a string with high insert\u2010cost has to be inserted before that symbol in order to fit it to the part of the program that has already been analysed. The error recovery routine is invoked only when an error is detected. Thus, there is no additional time required for parsing correct programs. Error\u2010correcting parsers for different languages, including Pascal, have been generated. Some experimental results are summarized.<\/jats:p>","DOI":"10.1002\/spe.4380141107","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T03:10:12Z","timestamp":1163819412000},"page":"1095-1107","source":"Crossref","is-referenced-by-count":5,"title":["A language independent error recovery method for LL(1) parsers"],"prefix":"10.1002","volume":"14","author":[{"given":"Michael","family":"Spenke","sequence":"first","affiliation":[]},{"given":"Heinz","family":"Muhlenbein","sequence":"additional","affiliation":[]},{"given":"Monika","family":"Mevenkamp","sequence":"additional","affiliation":[]},{"given":"Friedemann","family":"Mattern","sequence":"additional","affiliation":[]},{"given":"Christian","family":"Beilken","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","volume-title":"Compiler Techniques","author":"Pollack B. W.","year":"1972"},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1145\/362896.362902"},{"key":"e_1_2_1_4_2","volume-title":"Compilerbau","author":"Wirth N.","year":"1977"},{"key":"e_1_2_1_5_2","first-page":"82","article-title":"Suffixanalyse, ein Konzept zur Behandlung von syntaktischen Fehlern","volume":"4","author":"Moll Karl\u2010Rudolf","year":"1981","journal-title":"Informatik Spektrum"},{"key":"e_1_2_1_6_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00263990"},{"key":"e_1_2_1_7_2","doi-asserted-by":"publisher","DOI":"10.1145\/357084.357086"},{"key":"e_1_2_1_8_2","doi-asserted-by":"publisher","DOI":"10.1145\/361219.361223"},{"key":"e_1_2_1_9_2","doi-asserted-by":"publisher","DOI":"10.1145\/872732.806967"},{"key":"e_1_2_1_10_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00264317"},{"key":"e_1_2_1_11_2","first-page":"174","article-title":"Behandlung syntaktischer Fehler","volume":"5","author":"Johannes R\u00f6hrich","year":"1982","journal-title":"Informatik Spektrum"},{"key":"e_1_2_1_12_2","doi-asserted-by":"publisher","DOI":"10.1016\/0096-0551(78)90041-3"},{"key":"e_1_2_1_13_2","first-page":"382","volume-title":"Principles of Compiler Design","author":"Aho A. V.","year":"1977"},{"key":"e_1_2_1_14_2","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(79)90120-0"},{"key":"e_1_2_1_15_2","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(75)90035-6"},{"key":"e_1_2_1_16_2","first-page":"314","volume-title":"Compiler Construction for Digital Computers","author":"Gries D.","year":"1971"},{"key":"e_1_2_1_17_2","unstructured":"C.Beilken F.MatternandM.Spenke \u2018Bibliography of error handling in compilers\u2019. University of Kaiserslautern internal report. The very extensive bibliography (more than 200 titles) contains abstracts and cross references and can be obtained from F. Mattern."}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380141107","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380141107","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,20]],"date-time":"2023-10-20T11:15:01Z","timestamp":1697800501000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380141107"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1984,11]]},"references-count":16,"journal-issue":{"issue":"11","published-print":{"date-parts":[[1984,11]]}},"alternative-id":["10.1002\/spe.4380141107"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380141107","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1984,11]]}}}