publications: - title: "An Extended LR Parsing Algorithm For Grammars Using Feature-Based Syntactic Categories" author: - name: "Tsuneko Nakazawa" link: "https://researchr.org/alias/tsuneko-nakazawa" year: "1991" doi: "http://acl.ldc.upenn.edu/E/E91/E91-1013.pdf" links: doi: "http://acl.ldc.upenn.edu/E/E91/E91-1013.pdf" tags: - "parsing algorithm" - "rule-based" - "parsing" - "grammar" researchr: "https://researchr.org/publication/Nakazawa91" cites: 0 citedby: 0 pages: "69-74" booktitle: "eacl" kind: "inproceedings" key: "Nakazawa91" - title: "A Systolic Parsing Algorithm for a Visual Programming Language" author: - name: "Adam W. Bojanczyk" link: "https://researchr.org/alias/adam-w.-bojanczyk" - name: "Takayuki Dan Kimura" link: "https://researchr.org/alias/takayuki-dan-kimura" year: "1986" tags: - "parsing algorithm" - "programming languages" - "programming" - "parsing" researchr: "https://researchr.org/publication/BojanczykK86" cites: 0 citedby: 0 pages: "48-55" booktitle: "fjcc" kind: "inproceedings" key: "BojanczykK86" - title: "Parsing expression grammars made practical" author: - name: "Nicolas Laurent" link: "https://researchr.org/alias/nicolas-laurent" - name: "Kim Mens" link: "https://researchr.org/alias/kim-mens" year: "2015" doi: "http://doi.acm.org/10.1145/2814251.2814265" links: doi: "http://doi.acm.org/10.1145/2814251.2814265" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/LaurentM15" researchr: "https://researchr.org/publication/LaurentM15-SLE" cites: 0 citedby: 0 pages: "167-172" booktitle: "SLE" kind: "inproceedings" key: "LaurentM15-SLE" - title: "Disambiguation Filters for Scannerless Generalized LR Parsers" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Jeroen Scheerder" link: "http://www.linkedin.com/in/jeroenscheerder" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2002" doi: "https://doi.org/10.1007/3-540-45937-5_12" abstract: "In this paper we present the fusion of generalized LR parsing and scannerless parsing. This combination supports syntax definitions in which all aspects (lexical and context-free) of the syntax of a language are defined explicitly in one formalism. Furthermore, there are no restrictions on the class of grammars, thus allowing a natural syntax tree structure. Ambiguities that arise through the use of unrestricted grammars are handled by explicit disambiguation constructs, instead of implicit defaults that are taken by traditional scanner and parser generators. Hence, a syntax definition becomes a full declarative description of a language. Scannerless generalized LR parsing is a viable technique that has been applied in various industrial and academic projects. " links: doi: "https://doi.org/10.1007/3-540-45937-5_12" tags: - "GLR parsing" - "syntax definition" - "SDF" - "lexical syntax" - "scannerless" - "disambiguation" - "GLR" - "context-aware" - "parsing" - "scannerless parsing" - "ASF+SDF" - "SGLR" - "grammar" researchr: "https://researchr.org/publication/BrandSVV02" cites: 0 citedby: 4 pages: "143-158" booktitle: "CC" kind: "inproceedings" key: "BrandSVV02" - title: "Object-Oriented Visual Language Grammar and its Parsing Algorithm" author: - name: "Kyung-An Kim" link: "https://researchr.org/alias/kyung-an-kim" - name: "Kiho Lee" link: "https://researchr.org/alias/kiho-lee" year: "1998" tags: - "parsing algorithm" - "parsing" - "grammar" researchr: "https://researchr.org/publication/KimL98%3A1" cites: 0 citedby: 0 pages: "86-87" booktitle: "vl" kind: "inproceedings" key: "KimL98:1" - title: "Modernizing parsing tools: parsing and analysis with object-oriented programming" author: - name: "Steven O'Hara" link: "https://researchr.org/alias/steven-o%27hara" - name: "Rocky Slavin" link: "https://researchr.org/alias/rocky-slavin" year: "2019" doi: "https://doi.org/10.1145/3315568.3329967" links: doi: "https://doi.org/10.1145/3315568.3329967" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/pldi/OHaraS19" researchr: "https://researchr.org/publication/OHaraS19" cites: 0 citedby: 0 pages: "20-25" booktitle: "PLDI" kind: "inproceedings" key: "OHaraS19" - title: "A Parallel Parsing Algorithm for Natural Language using Tree Adjoining Grammar" author: - name: "Tom Nurkkala" link: "https://researchr.org/alias/tom-nurkkala" - name: "Vipin Kumar" link: "https://researchr.org/alias/vipin-kumar" year: "1994" tags: - "parsing algorithm" - "parsing" - "grammar" researchr: "https://researchr.org/publication/NurkkalaK94" cites: 0 citedby: 0 pages: "820-828" booktitle: "ipps" kind: "inproceedings" key: "NurkkalaK94" - title: "Weighted Deductive Parsing and Knuth s Algorithm" author: - name: "Mark-Jan Nederhof" link: "https://researchr.org/alias/mark-jan-nederhof" year: "2003" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/Nederhof03" cites: 0 citedby: 0 journal: "coling" volume: "29" number: "1" pages: "135-143" kind: "article" key: "Nederhof03" - title: "Eco: A Language Composition Editor" author: - name: "Lukas Diekmann" link: "https://researchr.org/alias/lukas-diekmann" - name: "Laurence Tratt" link: "https://researchr.org/alias/laurence-tratt" year: "2014" doi: "http://dx.doi.org/10.1007/978-3-319-11245-9_5" links: doi: "http://dx.doi.org/10.1007/978-3-319-11245-9_5" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/DiekmannT14" researchr: "https://researchr.org/publication/DiekmannT14" cites: 0 citedby: 0 pages: "82-101" booktitle: "SLE" kind: "inproceedings" key: "DiekmannT14" - title: "An attribute language definition for adaptable parsing expression grammars" author: - name: "Elton M. Cardoso" link: "https://researchr.org/alias/elton-m.-cardoso" - name: "Rodrigo G. Ribeiro" link: "https://researchr.org/alias/rodrigo-g.-ribeiro" - name: "Leonardo Vieira dos Santos Reis" link: "https://researchr.org/alias/leonardo-vieira-dos-santos-reis" - name: "Mariza A. S. Bigonha" link: "https://researchr.org/alias/mariza-a.-s.-bigonha" - name: "Roberto S. Bigonha" link: "https://researchr.org/alias/roberto-s.-bigonha" - name: "Vladimir Oliveira Di Iorio" link: "https://researchr.org/alias/vladimir-oliveira-di-iorio" year: "2019" doi: "https://doi.org/10.1145/3297280.3299738" links: doi: "https://doi.org/10.1145/3297280.3299738" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sac/CardosoRRBBI19" researchr: "https://researchr.org/publication/CardosoRRBBI19" cites: 0 citedby: 0 pages: "1518-1525" booktitle: "SAC" kind: "inproceedings" key: "CardosoRRBBI19" - title: "Repairing syntax errors in LR parsers" author: - name: "Rafael Corchuelo" link: "https://researchr.org/alias/rafael-corchuelo" - name: "José Antonio Pérez" link: "https://researchr.org/alias/jos%C3%A9-antonio-p%C3%A9rez" - name: "Antonio Ruiz Cortés" link: "https://researchr.org/alias/antonio-ruiz-cort%C3%A9s" - name: "Miguel Toro" link: "https://researchr.org/alias/miguel-toro" year: "2002" doi: "http://doi.acm.org/10.1145/586088.586092" links: doi: "http://doi.acm.org/10.1145/586088.586092" tags: - "parsing" researchr: "https://researchr.org/publication/CorchueloPRT02" cites: 0 citedby: 0 journal: "TOPLAS" volume: "24" number: "6" pages: "698-710" kind: "article" key: "CorchueloPRT02" - title: "A Bottom-Up Adaption of Earley s Parsing Algorithm" author: - name: "Frédéric Voisin" link: "https://researchr.org/alias/fr%C3%A9d%C3%A9ric-voisin" year: "1988" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/Voisin88" cites: 0 citedby: 0 pages: "146-160" booktitle: "plilp" kind: "inproceedings" key: "Voisin88" - title: "A Yo-Yo Parsing Algorithm for a Large Class of van Wijngaarden Grammars" author: - name: "Anthony J. Fisher" link: "https://researchr.org/alias/anthony-j.-fisher" year: "1992" tags: - "parsing algorithm" - "parsing" - "grammar" researchr: "https://researchr.org/publication/Fisher92" cites: 0 citedby: 0 journal: "ACTA" volume: "29" number: "5" pages: "461-481" kind: "article" key: "Fisher92" - title: "Interactive parser synthesis by example" author: - name: "Alan Leung" link: "https://researchr.org/alias/alan-leung" - name: "John Sarracino" link: "https://researchr.org/alias/john-sarracino" - name: "Sorin Lerner" link: "https://researchr.org/alias/sorin-lerner" year: "2015" doi: "http://doi.acm.org/10.1145/2737924.2738002" links: doi: "http://doi.acm.org/10.1145/2737924.2738002" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/pldi/LeungSL15" researchr: "https://researchr.org/publication/LeungSL15" cites: 0 citedby: 0 pages: "565-574" booktitle: "PLDI" kind: "inproceedings" key: "LeungSL15" - title: "An Incremental LL(1) Parsing Algorithm" author: - name: "Wuu Yang" link: "https://researchr.org/alias/wuu-yang" year: "1993" tags: - "parsing algorithm" - "parsing" - "incremental" researchr: "https://researchr.org/publication/Yang93a" cites: 0 citedby: 0 journal: "ipl" volume: "48" number: "2" pages: "67-72" kind: "article" key: "Yang93a" - title: "The Grammar Tool Box: A Case Study Comparing GLR Parsing Algorithms" author: - name: "Adrian Johnstone" link: "http://www.cs.rhul.ac.uk/~adrian/" - name: "Elizabeth Scott" link: "http://www.cs.rhul.ac.uk/People/staff/scott.html" - name: "Giorgios R. Economopoulos" link: "http://users.ecs.soton.ac.uk/gre/" year: "2004" doi: "http://dx.doi.org/10.1016/j.entcs.2004.06.008" abstract: "The Grammar Tool Box is a toolset for manipulating Context Free Grammars and objects associated with them such as parsers, languages and derivations. GTB has three main rôles: as a pedagogic tool; as an experimental platform for novel algorithms and representations; and as a production tool for translator front end generation. In this paper we give an overview of GTB and its companion Java-based animator tool PAT. We illustrate the use of the toolset in the construction of a comparative study of three variants of the Tomita-style GLR parsing algorithm running on LR(0), SLR(1) and LR(1) tables for ANSI-C, ISO-Pascal and IBM VS-COBOL, and give results showing the size of the structures constructed by these parsers and the amount of searching required during the parse, which abstracts their runtime." links: doi: "http://dx.doi.org/10.1016/j.entcs.2004.06.008" tags: - "parsing algorithm" - "GLR parsing" - "rule-based" - "Java" - "case study" - "context free languages" - "GLR" - "C++" - "context-aware" - "Meta-Environment" - "Cobol" - "parsing" - "Pascal" - "grammar types" - "meta-objects" - "grammar" researchr: "https://researchr.org/publication/JohnstoneSE04%3A0" cites: 0 citedby: 0 journal: "ENTCS" volume: "110" pages: "97-113" kind: "article" key: "JohnstoneSE04:0" - title: "An Efficient Chinese Parsing Algorithm for Computer-Assisted Language Learning" author: - name: "Chi-Hong Leung" link: "https://researchr.org/alias/chi-hong-leung" - name: "Yuen-Yan Chan" link: "https://researchr.org/alias/yuen-yan-chan" - name: "Albert K. W. Wu" link: "https://researchr.org/alias/albert-k.-w.-wu" year: "2002" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/LeungCW02" cites: 0 citedby: 0 pages: "195-196" booktitle: "ICCE" kind: "inproceedings" key: "LeungCW02" - title: "Generalised Regular Parsers" author: - name: "Adrian Johnstone" link: "http://www.cs.rhul.ac.uk/~adrian/" - name: "Elizabeth Scott" link: "https://researchr.org/alias/elizabeth-scott" year: "2003" doi: "http://link.springer.de/link/service/series/0558/bibs/2622/26220232.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2622/26220232.htm" tags: - "parsing" researchr: "https://researchr.org/publication/JohnstoneS03" cites: 0 citedby: 0 pages: "232-246" booktitle: "cc" kind: "inproceedings" key: "JohnstoneS03" - title: "Extensible language - where are we going" author: - name: "Cheatham,Jr., T. E." link: "https://researchr.org/alias/cheatham%2Cjr.%2C-t.-e." year: "1971" doi: "http://doi.acm.org/10.1145/800006.807999" links: doi: "http://doi.acm.org/10.1145/800006.807999" tags: - "e-science" - "extensible language" researchr: "https://researchr.org/publication/807999" cites: 0 citedby: 0 booktitle: "Proceedings of the international symposium on Extensible languages" kind: "inproceedings" key: "807999" - title: "On the translation of languages from left to right" author: - name: "Donald E. Knuth" link: "https://researchr.org/alias/donald-e.-knuth" year: "1965" abstract: "There has been much recent interest in languages whose grammar is sufficiently simple that an efficient left-to-right parsing algorithm can be mechanically produced from the grammar. In this paper, we define LR(k) grammars, which are perhaps the most general ones of this type, and they provide the basis for understanding all of the special tricks which have been used in the construction of parsing algorithms for languages with simple structure, e.g. algebraic languages. We give algorithms for deciding if a given grammar satisfies the LR(k) condition, for given k, and also give methods for generating recognizes for LR(k) grammars. It is shown that the problem of whether or not a grammar is LR(k) for some k is undecidable, and the paper concludes by establishing various connections between LR(k) grammars and deterministic languages. In particular, the LR(k) condition is a natural analogue, for grammars, of the deterministic condition, for languages." links: "pdf": "http://www.dc.uba.ar/materias/tl/2010/c2/files/Knuth-1965-TranslationofLanguages.pdf/at_download/file" tags: - "parsing algorithm" - "translation" - "e-science" - " algebra" - "parsing" - "grammar" researchr: "https://researchr.org/publication/knuth1965translation" cites: 0 citedby: 0 journal: "Information and control" volume: "8" number: "6" kind: "article" key: "knuth1965translation" - title: "A new top-down parsing algorithm to accommodate ambiguity and left recursion in polynomial time" author: - name: "Richard A. Frost" link: "https://researchr.org/alias/richard-a.-frost" - name: "Rahmatullah Hafiz" link: "https://researchr.org/alias/rahmatullah-hafiz" year: "2006" doi: "http://doi.acm.org/10.1145/1149982.1149988" links: doi: "http://doi.acm.org/10.1145/1149982.1149988" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/FrostH06" cites: 0 citedby: 0 journal: "SIGPLAN" volume: "41" number: "5" pages: "46-54" kind: "article" key: "FrostH06" - title: "Online Sequential Prediction via Incremental Parsing: The Active LeZi Algorithm" author: - name: "Karthik Gopalratnam" link: "https://researchr.org/alias/karthik-gopalratnam" - name: "Diane J. Cook" link: "https://researchr.org/alias/diane-j.-cook" year: "2007" doi: "http://doi.ieeecomputersociety.org/10.1109/MIS.2007.15" links: doi: "http://doi.ieeecomputersociety.org/10.1109/MIS.2007.15" tags: - "parsing algorithm" - "parsing" - "incremental" researchr: "https://researchr.org/publication/GopalratnamC07" cites: 0 citedby: 0 journal: "expert" volume: "22" number: "1" pages: "52-58" kind: "article" key: "GopalratnamC07" - title: "A backtracking LR algorithm for parsing ambiguous context-dependent languages" author: - name: "Adrian D. Thurston" link: "https://researchr.org/alias/adrian-d.-thurston" - name: "James R. Cordy" link: "http://research.cs.queensu.ca/~cordy/" year: "2006" doi: "http://doi.acm.org/10.1145/1188966.1188972" links: doi: "http://doi.acm.org/10.1145/1188966.1188972" tags: - "parsing algorithm" - "context-aware" - "parsing" researchr: "https://researchr.org/publication/ThurstonC06" cites: 0 citedby: 0 pages: "39-53" booktitle: "cascon" kind: "inproceedings" key: "ThurstonC06" - title: "PPL - an extensible language that failed" author: - name: "Standish, Thomas A." link: "https://researchr.org/alias/standish%2C-thomas-a." year: "1971" doi: "http://doi.acm.org/10.1145/800006.807998" links: doi: "http://doi.acm.org/10.1145/800006.807998" tags: - "extensible language" researchr: "https://researchr.org/publication/807998" cites: 0 citedby: 0 booktitle: "Proceedings of the international symposium on Extensible languages" kind: "inproceedings" key: "807998" - title: "A fast algorithm for video parsing using MPEG compressed sequences" author: - name: "Ke Shen" link: "https://researchr.org/alias/ke-shen" - name: "Edward J. Delp" link: "https://researchr.org/alias/edward-j.-delp" year: "1995" doi: "https://doi.org/10.1109/ICIP.1995.537462" links: doi: "https://doi.org/10.1109/ICIP.1995.537462" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/ShenD95" cites: 0 citedby: 0 pages: "2252-2255" booktitle: "icip" kind: "inproceedings" key: "ShenD95" - title: "Generalized Lr Parsing Algorithm for Boolean Grammars" author: - name: "Alexander Okhotin" link: "https://researchr.org/alias/alexander-okhotin" year: "2006" doi: "http://dx.doi.org/10.1142/S0129054106004029" links: doi: "http://dx.doi.org/10.1142/S0129054106004029" tags: - "parsing algorithm" - "parsing" - "grammar" researchr: "https://researchr.org/publication/Okhotin06" cites: 0 citedby: 0 journal: "ijfcs" volume: "17" number: "3" pages: "629-664" kind: "article" key: "Okhotin06" - title: "Extensible control structures" author: - name: "Prenner, Charles J." link: "https://researchr.org/alias/prenner%2C-charles-j." year: "1973" doi: "http://doi.acm.org/10.1145/800021.808301" links: doi: "http://doi.acm.org/10.1145/800021.808301" researchr: "https://researchr.org/publication/808301" cites: 0 citedby: 0 booktitle: "Proceeding of ACM SIGPLAN - SIGOPS interface meeting on Programming languages - operating systems" kind: "inproceedings" key: "808301" - title: "A Parallel Evolutionary Algorithm for Stochastic Natural Language Parsing" author: - name: "Lourdes Araujo" link: "https://researchr.org/alias/lourdes-araujo" year: "2002" doi: "http://link.springer.de/link/service/series/0558/bibs/2439/24390700.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2439/24390700.htm" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/Araujo02" cites: 0 citedby: 0 pages: "700-709" booktitle: "ppsn" kind: "inproceedings" key: "Araujo02" - title: "Easy language extension with Meta-AspectJ" author: - name: "Shan Shan Huang" link: "http://www.freeflygeek.com/" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2006" doi: "http://doi.acm.org/10.1145/1134436" links: doi: "http://doi.acm.org/10.1145/1134436" tags: - "AspectJ" - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/HuangS06" cites: 0 citedby: 1 pages: "865-868" booktitle: "ICSE" kind: "inproceedings" key: "HuangS06" - title: "BRNGLR: a cubic Tomita-style GLR parsing algorithm" author: - name: "Elizabeth Scott" link: "http://www.cs.rhul.ac.uk/People/staff/scott.html" - name: "Adrian Johnstone" link: "http://www.cs.rhul.ac.uk/~adrian/" - name: "Giorgios R. Economopoulos" link: "http://users.ecs.soton.ac.uk/gre/" year: "2007" doi: "http://dx.doi.org/10.1007/s00236-007-0054-z" abstract: "Tomita-style generalised LR (GLR) algorithms extend the standard LR algorithm to non-deterministic grammars by performing all possible choices of action. Cubic complexity is achieved if all rules are of length at most two. In this paper we shall show how to achieve cubic time bounds for all grammars by binarising the search performed whilst executing reduce actions in a GLR-style parser. We call the resulting algorithm Binary Right Nulled GLR (BRNGLR) parsing. The binarisation process generates run-time behaviour that is related to that shown by a parser which pre-processes its grammar or parse table into a binary form, but without the increase in table size and with a reduced run-time space overhead. BRNGLR parsers have worst-case cubic run time on all grammars, linear behaviour on LR(1) grammars and produce, in worst-case cubic time, a cubic size binary SPPF representation of all the derivations of a given sentence. " links: doi: "http://dx.doi.org/10.1007/s00236-007-0054-z" tags: - "parsing algorithm" - "GLR parsing" - "rule-based" - "GLR" - "rules" - "search" - "parsing" - "grammar" researchr: "https://researchr.org/publication/ScottJE07" cites: 0 citedby: 0 journal: "ACTA" volume: "44" number: "6" pages: "427-461" kind: "article" key: "ScottJE07" - title: "TXL: A Rapid Prototyping System for Programming Language Dialects" author: - name: "James R. Cordy" link: "http://research.cs.queensu.ca/~cordy/" - name: "Charles D. Halpern-Hamu" link: "https://researchr.org/alias/charles-d.-halpern-hamu" - name: "Eric Promislow" link: "https://researchr.org/alias/eric-promislow" year: "1991" doi: "https://doi.org/10.1109/ICCL.1988.13075" links: doi: "https://doi.org/10.1109/ICCL.1988.13075" tags: - "programming languages" - "TXL" - "programming" researchr: "https://researchr.org/publication/CordyHP91" cites: 0 citedby: 1 journal: "Comp. Lang., Syst. \\& Struct." volume: "16" number: "1" pages: "97-107" kind: "article" key: "CordyHP91" - title: "A Modular SGLR Parsing Architecture for Systematic Performance Optimization" author: - name: "Jasper Denkers" link: "https://jasperdenkers.com" year: "2018" doi: "http://resolver.tudelft.nl/uuid:7d9f9bcc-117c-4617-860a-4e3e0bbc8988" abstract: "SGLR parsing is an approach that enables parsing of context-free languages by means of declarative, concise and maintainable syntax definition. Existing implementations suffer from performance issues and their architectures are often highly coupled without clear separation between their components. This work introduces a modular SGLR architecture with several variants implemented for its components to systematically benchmark and improve performance. This work evaluates these variants both independently and combined using artificial and real world programming languages grammars. The architecture is implemented in Java as JSGLR2, the successor of the original parser in Spoofax, interpreting parse tables generated by SDF3. The improvements combined result into a parsing and imploding time speedup from 3x on Java to 10x on GreenMarl with respect to the previous JSGLR implementation." links: doi: "http://resolver.tudelft.nl/uuid:7d9f9bcc-117c-4617-860a-4e3e0bbc8988" "tu delft library": "http://resolver.tudelft.nl/uuid:7d9f9bcc-117c-4617-860a-4e3e0bbc8988" researchr: "https://researchr.org/publication/Denkers2018" cites: 0 citedby: 1 school: "Delft University of Technology" kind: "mastersthesis" key: "Denkers2018" - title: "An Efficient Context-Free Parsing Algorithm for Natural Languages" author: - name: "Masaru Tomita" link: "https://researchr.org/alias/masaru-tomita" year: "1985" tags: - "parsing algorithm" - "context-aware" - "parsing" researchr: "https://researchr.org/publication/Tomita85" cites: 0 citedby: 1 pages: "756-764" booktitle: "IJCAI" kind: "inproceedings" key: "Tomita85" - title: "A Language Designer's Workbench: A One-Stop-Shop for Implementation and Verification of Language Designs" author: - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Andrew P. Tolmach" link: "http://www.cs.pdx.edu/~apt" - name: "Pierre Néron" link: "https://researchr.org/profile/pierrejeanmichelneron/publications" - name: "Vlad A. Vergu" link: "http://www.linkedin.com/in/vladv" - name: "Augusto Passalaqua" link: "http://www.linkedin.com/pub/augusto-passalaqua/9/829/b29" - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" year: "2014" doi: "http://doi.acm.org/10.1145/2661136.2661149" abstract: "The realization of a language design requires multiple artifacts that redundantly encode the same information. This entails significant effort for language implementors, and often results in late detection of errors in language definitions. In this paper we present a proof-of-concept language designer's workbench that supports generation of IDEs, interpreters, and verification infrastructure from a single source. This constitutes a first milestone on the way to a system that fully automates language implementation and verification. " links: doi: "http://doi.acm.org/10.1145/2661136.2661149" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/VisserWTNVPK14" "pdf": "http://dl.acm.org/ft_gateway.cfm?id=2661149&ftid=1505232&dwn=1&CFID=550125770&CFTOKEN=54358949" researchr: "https://researchr.org/publication/VisserOnward14" cites: 0 citedby: 0 pages: "95-111" booktitle: "OOPSLA" kind: "inproceedings" key: "VisserOnward14" - title: "GLL parsing with flexible combinators" author: - name: "L. Thomas van Binsbergen" link: "https://researchr.org/alias/l.-thomas-van-binsbergen" - name: "Elizabeth Scott" link: "https://researchr.org/alias/elizabeth-scott" - name: "Adrian Johnstone" link: "https://researchr.org/alias/adrian-johnstone" year: "2018" doi: "https://doi.org/10.1145/3276604.3276618" links: doi: "https://doi.org/10.1145/3276604.3276618" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/BinsbergenSJ18" researchr: "https://researchr.org/publication/BinsbergenSJ18" cites: 0 citedby: 0 pages: "16-28" booktitle: "SLE" kind: "inproceedings" key: "BinsbergenSJ18" - title: "Concrete Syntax with Black Box Parsers" author: - name: "Rodin Aarssen" link: "https://researchr.org/alias/rodin-aarssen" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" year: "2019" doi: "https://doi.org/10.22152/programming-journal.org/2019/3/15" links: doi: "https://doi.org/10.22152/programming-journal.org/2019/3/15" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/programming/AarssenVS19" researchr: "https://researchr.org/publication/AarssenVS19" cites: 0 citedby: 0 journal: "Programming" volume: "3" number: "3" pages: "15" kind: "article" key: "AarssenVS19" - title: "Generalised LR parsing algorithms" author: - name: "Giorgios R. Economopoulos" link: "http://users.ecs.soton.ac.uk/gre/" year: "2006" month: "August" abstract: "This thesis concerns the parsing of context-free grammars. A parser is a tool, defined for a specific grammar, that constructs a syntactic representation of an input string and determines if the string is grammatically correct or not. An algorithm that is capable of parsing any context-free grammar is called a generalised (context-free) parser. This thesis is devoted to the theoretical analysis of generalised parsing algorithms. We describe, analyse and compare several algorithms that are based on Knuth's LR parser. This work underpins the design and implementation of the Parser Animation Tool (PAT). We use PAT to evaluate the asymptotic complexity of generalised parsing algorithms and to develop the Binary Right Nulled Generalised LR algorithm - a new cubic worst case parser. We also compare the Right Nullable Generalised LR, Reduction Incorporated Generalised LR, Farshi, Tomita and Earley algorithms using the statistical data collected by PAT. Our study indicates that the overheads associated with some of the parsing algorithms may have significant consequences on their behaviour. " tags: - "parsing algorithm" - "GLR parsing" - "rule-based" - "case study" - "design complexity" - "GLR" - "analysis" - "data-flow" - "context-aware" - "data-flow analysis" - "parsing" - "design" - "grammar" researchr: "https://researchr.org/publication/economopoulos06" cites: 0 citedby: 0 school: "Royal Holloway, University of London" advisor: - name: "Elizabeth Scott" link: "http://www.cs.rhul.ac.uk/People/staff/scott.html" - name: "Adrian Johnstone" link: "http://www.cs.rhul.ac.uk/~adrian/" kind: "phdthesis" key: "economopoulos06" - title: "Language extension and composition with language workbenches" author: - name: "Markus Völter" link: "http://www.voelter.de/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2010" doi: "http://doi.acm.org/10.1145/1869542.1869623" abstract: " Domain-specific languages (DSLs) provide high expressive power focused on a particular problem domain. They provide linguistic abstractions and specialized syntax specifically designed for a domain, allowing developers to avoid boilerplate code and low-level implementation details. Language workbenches are tools that integrate all aspects of the definition of domain-specific or general-purpose software languages and the creation of a programming environment from such a definition. To count as a language workbench, a tool needs to satisfy basic requirements for the integrated definition of syntax, semantics, and editor services, and preferably also support language extension and composition. Within these requirements there is ample room for variation in the design of a language workbench. In this tutorial, we give an introduction to the state of the art in textual DSLs and language workbenches. We discuss the main requirements and variation points in the design of language workbenches, and describe two points in the design space using two state-of-the-art language workbenches. Spoofax is an example of a parser-based language workbench, while MPS represents language workbenches based on projectional editors. " links: doi: "http://doi.acm.org/10.1145/1869542.1869623" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/VolterV10" tags: - "workbench" - "composition" - "language workbench" researchr: "https://researchr.org/publication/VolterV10" cites: 0 citedby: 0 pages: "301-304" booktitle: "OOPSLA" kind: "inproceedings" key: "VolterV10" - title: "Code generation by model transformation: a case study in transformation modularity" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2010" doi: "10.1007/s10270-009-0136-1" abstract: "The realization of model-driven software development requires effective techniques for implementing code generators for domain-specific languages. This paper identifies techniques for improving separation of concerns in the implementation of generators. The core technique is code generation by model transformation, that is, the generation of a structured representation (model) of the target program instead of plain text. This approach enables the transformation of code after generation, which in turn enables the extension of the target language with features that allow better modularity in code generation rules. The technique can also be applied to ‘internal code generation’ for the translation of high-level extensions of a DSL to lower-level constructs within the same DSL using model-to-model transformations. This paper refines our earlier description of code generation by model transformation with an improved architecture for the composition of model-to-model normalization rules, solving the problem of combining type analysis and transformation. Instead of coarse-grained stages that alternate between normalization and type analysis, we have developed a new style of type analysis that can be integrated with normalizing transformations in a fine-grained manner. The normalization strategy has a simple extension interface and integrates non-local, context-sensitive transformation rules. We have applied the techniques in a realistic case study of domain-specific language engineering, i.e. the code generator for WebDSL, using Stratego, a high-level transformation language that integrates model-to-model, model-to-code, and code-to-code transformations." links: dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/sosym/HemelKGV10" tags: - "model-to-model transformation" - "case study" - "meta-model" - "source-to-source" - "C++" - "code generation" - "model transformation" - "Meta-Environment" - "transformation" researchr: "https://researchr.org/publication/HemelKGV10" cites: 0 citedby: 0 journal: "SoSyM" volume: "9" number: "3" pages: "375-402" kind: "article" key: "HemelKGV10" - title: "Declarative Specification of Template-Based Textual Editors" author: - name: "Tobi Vollebregt" link: "http://www.tobivollebregt.nl/" year: "2012" month: "April" doi: "http://resolver.tudelft.nl/uuid:8907468c-b102-4a35-aa84-d49bb2110541" abstract: "Syntax discoverability has been a crucial advantage of structure editors for new users of a language. Despite this advantage, structure editors have not been widely adopted. Nevertheless, the Cheetah system, developed at Capgemini, leverages a structure editor to aid domain experts modeling tax-benefit rules in a domain specific language. The structure editor suffers from a lack of free form editing and conversions from/to plain text. The Spoofax language workbench, developed at Delft University of Technology, uses a textual editor, which is syntax-aware due to immediate parsing and analyses. In this thesis we describe a migration from Cheetah to Spoofax, which aims to bring the advantages of text editing to the tax-benefit rule modeling language. During the migration, we experienced that current text-based language workbenches, such as Spoofax, require redundant specification of the ingredients for a template-based editor, which is detrimental to the quality of syntactic completion, as consistency and completeness of the definition cannot be guaranteed. We describe the design and implementation of a specification language for syntax definition based on templates. It unifies the specification of parser, pretty printer and template-based editor. We evaluate the template language by application to the tax-benefit rule modeling language and a language for mobile web applications." links: doi: "http://resolver.tudelft.nl/uuid:8907468c-b102-4a35-aa84-d49bb2110541" "pdf": "http://repository.tudelft.nl/assets/uuid:8907468c-b102-4a35-aa84-d49bb2110541/thesis-final.pdf" "tud repository": "http://resolver.tudelft.nl/uuid:8907468c-b102-4a35-aa84-d49bb2110541" tags: - "workbench" - "rule-based" - "syntax definition" - "completeness" - "model editor" - "meta-model" - "modeling language" - "modeling" - "language modeling" - "language design" - "rules" - "migration" - "web applications" - "consistency" - "language workbench" - "Spoofax" - "Meta-Environment" - "parsing" - "domain-specific language" researchr: "https://researchr.org/publication/Vollebregt2012" cites: 0 citedby: 0 school: "Delft University of Technology" address: "Delft, The Netherlands" advisor: - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" kind: "mastersthesis" key: "Vollebregt2012" - title: "Practical Error Recovery in LR Parsing" author: - name: "Seppo Sippu" link: "https://researchr.org/alias/seppo-sippu" - name: "Eljas Soisalon-Soininen" link: "https://researchr.org/alias/eljas-soisalon-soininen" year: "1982" tags: - "parsing" researchr: "https://researchr.org/publication/SippiS82" cites: 0 citedby: 0 pages: "177-184" booktitle: "POPL" kind: "inproceedings" key: "SippiS82" - title: "Providing rapid feedback in generated modular language environments: adding error recovery to scannerless generalized-LR parsing" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Maartje de Jonge" link: "https://researchr.org/profile/maartjedejonge/publications" - name: "Emma Nilsson-Nyman" link: "http://www.cs.lth.se/home/Emma.Nilsson_Nyman/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2009" doi: "http://doi.acm.org/10.1145/1640089.1640122" abstract: "Integrated development environments (IDEs) increase programmer productivity, providing rapid, interactive feedback based on the syntax and semantics of a language. A heavy burden lies on developers of new languages to provide adequate IDE support. Code generation techniques provide a viable, efficient approach to semi-automatically produce IDE plugins. Key components for the realization of plugins are the language's grammar and parser. For embedded languages and language extensions, constituent IDE plugin modules and their grammars can be combined. 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 language embeddings and extensions composed from separate grammar modules. To apply this algorithm in an interactive environment, this paper introduces a novel error recovery mechanism, which allows it to be used with files with syntax errors -- common in interactive editing. Error recovery is vital for providing rapid feedback in case of syntax errors, as most IDE services depend on the parser -- from syntax highlighting to semantic analysis and cross-referencing. We base our approach on the principles of island grammars, and derive permissive grammars with error recovery productions from normal SDF grammars. To cope with the added complexity of these grammars, we adapt the parser to support backtracking. We evaluate the recovery quality and performance of our approach using a set of composed languages, based on Java and Stratego. " links: doi: "http://doi.acm.org/10.1145/1640089.1640122" successor: "https://researchr.org/publication/JongeKVS12" "technical report (pdf)": "http://www.lclnet.nl/publications/error-recovery.pdf" tags: - "parsing algorithm" - "semantics" - "rule-based" - "Java" - "SDF" - "composition" - "analysis" - "principles" - "C++" - "code generation" - "context-aware" - "Meta-Environment" - "parsing" - "scannerless parsing" - "systematic-approach" - "island grammars" - "ASF+SDF" - "grammar" - "Stratego" researchr: "https://researchr.org/publication/KatsJNV09" cites: 0 citedby: 1 pages: "445-464" booktitle: "OOPSLA" kind: "inproceedings" key: "KatsJNV09" - title: "Language-parametric Techniques for Language-Specific Editors" author: - name: "Maartje de Jonge" link: "https://researchr.org/profile/maartjedejonge/publications" year: "2014" month: "January" doi: "http://dx.doi.org/10.4233/uuid:5b485a4a-e502-42d9-8bd2-21c02226ed91" abstract: "The goal of this dissertation is to develop techniques that simplify the implementation of tool support for new languages. More specifically, we focus on language-parametric solutions for the implementation of language-specific editor support. In the first part of this dissertation we investigate generic techniques to recover from syntax errors that occur during interactive editing. In the second part we look into language-parametric techniques for the implementation of refactoring tools." links: doi: "http://dx.doi.org/10.4233/uuid:5b485a4a-e502-42d9-8bd2-21c02226ed91" "blog": "http://eelcovisser.org/post/271/language-parametric-techniques-for-language-specific-editors" "pdf": "http://repository.tudelft.nl/assets/uuid:5b485a4a-e502-42d9-8bd2-21c02226ed91/doc.pdf" researchr: "https://researchr.org/publication/DeJonge2014" cites: 0 citedby: 0 school: "Delft University of Technology" address: "Delft, TheNetherlands" advisor: - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" kind: "phdthesis" key: "DeJonge2014" - title: "The Computational Complexity of GLR Parsing" author: - name: "Johnson, Mark" link: "https://researchr.org/alias/johnson%2C-mark" year: "1991" doi: "10.1007/978-1-4615-4034-2_3" abstract: "The Tomita parsing algorithm adapts Knuth's (1967) well-known parsing algorithm for LR(K) grammars to non-LR grammars, including ambiguous grammars. Knuth's algorithm is provably efficient: it requires at most O(n|G|) units of time, where {\\backslash}G{\\backslash} is the size of (i.e. the number of symbols in) G and n is the length of the string to be parsed. This is often significantly better than the O(n3|G|2) worst case time required by standard parsing algorithms such as the Earley algorithm. Since the Tomita algorithm is closely related to Knuth's algorithm, one might expect that it too is provably more efficient than the Earley algorithm, especially as actual computational implementations of Tomita's algorithm outperform implementations of the Earley algorithm (Tomita 1986, 1987)." links: "url": "https://doi.org/10.1007/978-1-4615-4034-2_3" researchr: "https://researchr.org/publication/Johnson1991" cites: 0 citedby: 0 pages: "35-42" booktitle: "Generalized LR Parsing" address: "Boston, MA" publisher: "Springer US" isbn: "978-1-4615-4034-2" kind: "inbook" key: "Johnson1991" - title: "Towards Typed Semantics for Parsing Expression Grammars" author: - name: "Rodrigo Geraldo Ribeiro" link: "https://researchr.org/alias/rodrigo-geraldo-ribeiro" - name: "Leonardo Vieira dos Santos Reis" link: "https://researchr.org/alias/leonardo-vieira-dos-santos-reis" - name: "Samuel da Silva Feitosa" link: "https://researchr.org/alias/samuel-da-silva-feitosa" - name: "Elton M. Cardoso" link: "https://researchr.org/alias/elton-m.-cardoso" year: "2019" doi: "https://doi.org/10.1145/3355378.3355388" links: doi: "https://doi.org/10.1145/3355378.3355388" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sblp/RibeiroRFC19" researchr: "https://researchr.org/publication/RibeiroRFC19" cites: 0 citedby: 0 pages: "70-77" booktitle: "SBLP" kind: "inproceedings" key: "RibeiroRFC19" - title: "Modelling GLL Parser Implementations" author: - name: "Adrian Johnstone" link: "http://www.cs.rhul.ac.uk/~adrian/" - name: "Elizabeth Scott" link: "https://researchr.org/alias/elizabeth-scott" year: "2010" doi: "http://dx.doi.org/10.1007/978-3-642-19440-5_4" links: doi: "http://dx.doi.org/10.1007/978-3-642-19440-5_4" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/JohnstoneS10" tags: - "meta-model" - "Meta-Environment" - "parsing" researchr: "https://researchr.org/publication/JohnstoneS10-0" cites: 0 citedby: 0 pages: "42-61" booktitle: "SLE" kind: "inproceedings" key: "JohnstoneS10-0" - title: "Polymorphic Syntax Definition" author: - name: "Eelco Visser" link: "http://eelcovisser.org" year: "1998" doi: "http://dx.doi.org/10.1016/S0304-3975(97)00268-5" abstract: "Context-free grammars are used in several algebraic specification formalisms instead of first-order signatures for the definition of the structure of algebras, because grammars provide better notation than signatures. The rigidity of these first-order structures enforces a choice between strongly typed structures with little genericity or generic operations over untyped structures. In two-level signatures level 1 defines the algebra of types used at level 0 providing the possibility to define polymorphic abstract data types. Two-level grammars are the grammatical counterpart of two-level signatures. This paper discusses the correspondence between context-free grammars and first-order signatures, the extension of this correspondence to two-level grammars and signatures, examples of the usage of two-level grammars for polymorphic syntax definition, a restriction of the class of two-level grammars for which the parsing problem is decidable, a parsing algorithm that yields a minimal and finite set of most general parse trees for this class of grammars, and a proof of its correctness." links: doi: "http://dx.doi.org/10.1016/S0304-3975(97)00268-5" tags: - "parsing algorithm" - "syntax definition" - "abstract syntax" - "data-flow" - "algebraic specification" - " algebra" - "context-aware" - "parsing" - "signature" - "grammar" researchr: "https://researchr.org/publication/Visser98" cites: 0 citedby: 0 journal: "TCS" volume: "199" number: "1-2" pages: "57-86" kind: "article" key: "Visser98" - title: "LR Parsers For Natural Languages" author: - name: "Masaru Tomita" link: "https://researchr.org/alias/masaru-tomita" year: "1984" doi: "http://acl.ldc.upenn.edu/P/P84/P84-1073.pdf" abstract: "MLR, an extended LR parser, is introduced, and its application to natural language parsing is discussed. An LR parser is a ~;hift-reduce parser which is doterministically guided by a parsing table. A parsing table can be obtained automatically from a contextfree phrase structure grammar. LR parsers cannot manage antl)iguous grammars such as natural language grammars, because their I)arsing tables would have multiply-defined entries, which precludes deterministic parsing. MLR, however, can handle mulliply-defined entries, using a dynamic programnting method. When an input sentence is ambiguous, the MI.R parser produces all possible parse trees witftoul parsing any part of the input sentenc:e more than once in the same way, despite the fact that the parser does not maintain a chart as in chart par~ing. Our method also prnvkles an elegant solution to the problem of multi-part-of-speech words such as \"that\". The MLR parser and its parsing table generator have been implemented at Carnegie-Mellon University." links: doi: "http://acl.ldc.upenn.edu/P/P84/P84-1073.pdf" tags: - "GLR parsing" - "LR parsing" - "GLR" - "e-science" - "parsing" - "grammar" researchr: "https://researchr.org/publication/Tomita84%3A0" cites: 0 citedby: 0 pages: "354-357" booktitle: "COLING" kind: "inproceedings" key: "Tomita84:0" - title: "Operator precedence for data-dependent grammars" author: - name: "Ali Afroozeh" link: "https://www.cwi.nl/people/2605" - name: "Anastasia Izmaylova" link: "https://researchr.org/alias/anastasia-izmaylova" year: "2016" doi: "http://doi.acm.org/10.1145/2847538.2847540" links: doi: "http://doi.acm.org/10.1145/2847538.2847540" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/pepm/AfroozehI16" researchr: "https://researchr.org/publication/AfroozehI16" cites: 0 citedby: 0 pages: "13-24" booktitle: "PEPM" kind: "inproceedings" key: "AfroozehI16" - title: "A New Approach to Earley s Parsing Algorithm" author: - name: "F. E. J. Kruseman Aretz" link: "https://researchr.org/alias/f.-e.-j.-kruseman-aretz" year: "1989" tags: - "parsing algorithm" - "e-science" - "parsing" - "systematic-approach" researchr: "https://researchr.org/publication/Aretz89" cites: 0 citedby: 0 journal: "SCP" volume: "12" number: "2" pages: "105-121" kind: "article" key: "Aretz89" - title: "An Efficient Context-Free Parsing Algorithm with Semantic Actions" author: - name: "Marco Piastra" link: "https://researchr.org/alias/marco-piastra" - name: "Roberto Bolognesi" link: "https://researchr.org/alias/roberto-bolognesi" year: "1991" tags: - "parsing algorithm" - "context-aware" - "parsing" researchr: "https://researchr.org/publication/PiastraB91" cites: 0 citedby: 0 pages: "271-280" booktitle: "aiia" kind: "inproceedings" key: "PiastraB91" - title: "Domain specific language implementation via compile-time meta-programming" author: - name: "Laurence Tratt" link: "http://tratt.net/laurie/" year: "2008" doi: "http://doi.acm.org/10.1145/1391956.1391958" abstract: "Domain specific languages (DSLs) are mini-languages that are increasingly seen as being a valuable tool for software developers and non-developers alike. DSLs must currently be created in an ad-hoc fashion, often leading to high development costs and implementations of variable quality. In this article, I show how expressive DSLs can be hygienically embedded in the Converge programming language using its compile-time meta-programming facility, the concept of DSL blocks, and specialised error reporting techniques. By making use of pre-existing facilities, and following a simple methodology, DSL implementation costs can be significantly reduced whilst leading to higher quality DSL implementations." links: doi: "http://doi.acm.org/10.1145/1391956.1391958" tags: - "programming languages" - "meta programming" - "meta-model" - "embedded software" - "model-driven development" - "compiler" - "DSL" - "programming" - "Meta-Environment" - "extensible language" - "meta-objects" - "domain-specific language" researchr: "https://researchr.org/publication/Tratt08-TOPLAS" cites: 0 citedby: 1 journal: "TOPLAS" volume: "30" number: "6" kind: "article" key: "Tratt08-TOPLAS" - title: "GLR Parsing in Time O(n3)" author: - name: "Kipps, James R." link: "https://researchr.org/alias/kipps%2C-james-r." year: "1991" doi: "10.1007/978-1-4615-4034-2_4" abstract: "Algorithms for general CF parsing, e.g., Earley's algorithm (Earley, 1968) and the Cocke-Younger-Kasami algorithm (Younger, 1967), are necessarily less efficient than algorithms for restricted CF parsing, e.g., the LL, operator precedence, and LR algorithms (Aho and Ullman, 1972), because they must simulate a multi-path, nondeterministic pass over their inputs using some form of search, typically, goal-driven. While many of the general algorithms can be shown to theoretically perform as well as the restricted algorithms on a large subclass of CF grammars, due to the inefficiency of goal expansion the general algorithms have not been widely used as practical parsers for programming languages." links: "url": "https://doi.org/10.1007/978-1-4615-4034-2_4" researchr: "https://researchr.org/publication/Kipps1991" cites: 0 citedby: 0 pages: "43-59" booktitle: "Generalized LR Parsing" address: "Boston, MA" publisher: "Springer US" isbn: "978-1-4615-4034-2" kind: "inbook" key: "Kipps1991" - title: "What's Wrong With My Benchmark Results? Studying Bad Practices in JMH Benchmarks" author: - name: "Costa, Diego" link: "https://researchr.org/alias/costa%2C-diego" - name: "Cor-Paul Bezemer" link: "http://asgaard.ece.ualberta.ca/" - name: "Leitner, Philipp" link: "https://researchr.org/alias/leitner%2C-philipp" - name: "Andrzejak, Artur" link: "https://researchr.org/alias/andrzejak%2C-artur" year: "2019" month: "06" doi: "https://doi.org/10.1109/TSE.2019.2925345" links: doi: "https://doi.org/10.1109/TSE.2019.2925345" researchr: "https://researchr.org/publication/costa2019jmh-bad-practices" cites: 0 citedby: 0 journal: "TSE" pages: "1" kind: "article" key: "costa2019jmh-bad-practices" - title: "A Practical Method for LR and LL Syntactic Error Diagnosis" author: - name: "Michael G. Burke" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/burkem.index.html" - name: "Gerald A. Fisher" link: "https://researchr.org/alias/gerald-a.-fisher" year: "1987" doi: "http://doi.acm.org/10.1145/22719.22720" abstract: " This paper presents a powerful, practical, and essentially language-independent syntactic error diagnosis and recovery method that is applicable within the frameworks of LR and LL parsing. The method generally issues accurate diagnoses even where multiple errors occur within close proximity, yet seldom issues spurious error messages. It employs a new technique, parse action deferral, that allows the most appropriate recovery in cases where this would ordinarily be precluded by late detection of the error. The method is practical in that it does not impose substantial space or time overhead on the parsing of correct programs, and in that its time efficiency in processing an error allows for its incorporation in a production compiler. The method is language independent, but it does allow for tuning with respect to particular languages and implementations through the setting of language-specific parameters. " links: doi: "http://doi.acm.org/10.1145/22719.22720" tags: - "programming languages" - "compiler" - "parsing" - "error recovery" - "domain-specific language" researchr: "https://researchr.org/publication/BurkeF87" cites: 0 citedby: 0 journal: "TOPLAS" volume: "9" number: "2" pages: "164-197" kind: "article" key: "BurkeF87" - title: "Packrats parse in packs" author: - name: "Mario Blazevic" link: "https://researchr.org/alias/mario-blazevic" - name: "Jacques Légaré" link: "https://researchr.org/alias/jacques-l%C3%A9gar%C3%A9" year: "2017" doi: "http://doi.acm.org/10.1145/3122955.3122958" links: doi: "http://doi.acm.org/10.1145/3122955.3122958" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/haskell/BlazevicL17" researchr: "https://researchr.org/publication/BlazevicL17" cites: 0 citedby: 0 pages: "14-25" booktitle: "haskell" kind: "inproceedings" key: "BlazevicL17" - title: "Rewriting with Layout" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2000" doi: "http://homepages.cwi.nl/~jurgenv/publications/papers/rewriting_with_layout.ps.gz" abstract: "Rewriting technology has proved to be an adequate and powerful mechanism to perform source code transformations. These transformations can not only be efficiently implemented using rewriting technology, but it also provides a firmer grip on the source code syntax. However, an important shortcoming of rewriting technology is that source code comments and layout are lost during rewriting. We propose \"rewriting with layout\" to solve this problem. We present a rewriting algorithm that keeps the layout of sub-terms that are not rewritten, and reuses the layout occurring in the right-hand side of the rewrite rules. " links: doi: "http://homepages.cwi.nl/~jurgenv/publications/papers/rewriting_with_layout.ps.gz" tags: - "model-to-model transformation" - "rule-based" - "source comments" - "layout" - "SDF" - "graph transformation" - "term rewriting" - "reuse" - "source-to-source" - "graph-rewriting" - "rules" - "model transformation" - "metaprogramming" - "rewriting" - "ASF+SDF" - "concrete syntax" - "open-source" - "transformation" - "whitespace" researchr: "https://researchr.org/publication/BV00" cites: 0 citedby: 0 booktitle: "RULE" kind: "inproceedings" key: "BV00" - title: "A Parsing Algorithm for Unification Grammar" author: - name: "Andrew R. Haas" link: "https://researchr.org/alias/andrew-r.-haas" year: "1989" tags: - "parsing algorithm" - "parsing" - "grammar" researchr: "https://researchr.org/publication/Haas89%3A0" cites: 0 citedby: 0 journal: "coling" volume: "15" number: "4" pages: "219-232" kind: "article" key: "Haas89:0" - title: "Practical LR error recovery" author: - name: "Susan L. Graham" link: "https://researchr.org/alias/susan-l.-graham" - name: "Charles B. Haley" link: "https://researchr.org/alias/charles-b.-haley" - name: "William N. Joy" link: "https://researchr.org/alias/william-n.-joy" year: "1979" doi: "http://doi.acm.org/10.1145/800229.806967" links: doi: "http://doi.acm.org/10.1145/800229.806967" researchr: "https://researchr.org/publication/GrahamHJ79" cites: 0 citedby: 0 pages: "168-175" booktitle: "sigplan" kind: "inproceedings" key: "GrahamHJ79" - title: "Extending Earley s context-free parsing algorithm for string pattern matching" author: - name: "Ken-Chih Liu" link: "https://researchr.org/alias/ken-chih-liu" year: "1988" doi: "http://doi.acm.org/10.1145/322609.322861" links: doi: "http://doi.acm.org/10.1145/322609.322861" tags: - "parsing algorithm" - "pattern matching" - "context-aware" - "parsing" researchr: "https://researchr.org/publication/Liu88%3A1" cites: 0 citedby: 0 pages: "500-509" booktitle: "acm" kind: "inproceedings" key: "Liu88:1" - title: "Adaptive LL(*) parsing: the power of dynamic analysis" author: - name: "Terence John Parr" link: "http://www.cs.usfca.edu/~parrt/" - name: "Sam Harwell" link: "https://researchr.org/alias/sam-harwell" - name: "Kathleen Fisher" link: "https://researchr.org/alias/kathleen-fisher" year: "2014" doi: "http://doi.acm.org/10.1145/2660193.2660202" links: doi: "http://doi.acm.org/10.1145/2660193.2660202" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/ParrHF14" researchr: "https://researchr.org/publication/ParrHF14" cites: 0 citedby: 0 pages: "579-598" booktitle: "OOPSLA" kind: "inproceedings" key: "ParrHF14" - title: "An Incremental On-line Parsing Algorithm for Recognizing Sketching Diagrams" author: - name: "Joan Mas" link: "https://researchr.org/alias/joan-mas" - name: "Gemma Sánchez" link: "https://researchr.org/alias/gemma-s%C3%A1nchez" - name: "Josep Lladós" link: "https://researchr.org/alias/josep-llad%C3%B3s" - name: "Bart Lamiroy" link: "https://researchr.org/alias/bart-lamiroy" year: "2007" doi: "http://doi.ieeecomputersociety.org/10.1109/ICDAR.2007.54" links: doi: "http://doi.ieeecomputersociety.org/10.1109/ICDAR.2007.54" tags: - "parsing algorithm" - "parsing" - "incremental" researchr: "https://researchr.org/publication/MasSLL07" cites: 0 citedby: 0 pages: "452-456" booktitle: "icdar" kind: "inproceedings" key: "MasSLL07" - title: "A New Parsing Algorithm for EOL-Systems" author: - name: "Kulathur S. Rajasethupathy" link: "https://researchr.org/alias/kulathur-s.-rajasethupathy" - name: "R. K. Shyamasundar" link: "https://researchr.org/alias/r.-k.-shyamasundar" year: "1982" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/RajasethupathyyS82" cites: 0 citedby: 0 journal: "eik" volume: "18" number: "10/11" pages: "543-564" kind: "article" key: "RajasethupathyyS82" - title: "Language Workbenches: The Killer-App for Domain Specific Languages?" author: - name: "Martin Fowler" link: "http://martinfowler.com/" year: "2005" doi: "http://www.martinfowler.com/articles/languageWorkbench.html" abstract: "Most new ideas in software developments are really new variations on old ideas. This article describes one of these, the growing idea of a class of tools that I call Language Workbenches - examples of which include Intentional Software, JetBrains's Meta Programming System, and Microsoft's Software Factories. These tools take an old style of development - which I call language oriented programming and use IDE tooling in a bid to make language oriented programming a viable approach. Although I'm not enough of a prognosticator to say whether they will succeed in their ambition, I do think that these tools are some of the most interesting things on the horizon of software development. Interesting enough to write this essay to try to explain, at least in outline, how they work and the main issues around their future usefulness." links: doi: "http://www.martinfowler.com/articles/languageWorkbench.html" tags: - "programming languages" - "workbench" - "object-oriented programming" - "meta programming" - "language-oriented programming" - "meta-model" - "LOP" - "model-driven development" - "programming" - "subject-oriented programming" - "language workbench" - "Meta-Environment" - "systematic-approach" - "feature-oriented programming" - "meta-objects" - "domain-specific language" researchr: "https://researchr.org/publication/Fowler2004" cites: 0 citedby: 3 kind: "misc" key: "Fowler2004" - title: "Software microbenchmarking in the cloud. How bad is it really?" author: - name: "Christoph Laaber" link: "https://researchr.org/alias/christoph-laaber" - name: "Joel Scheuner" link: "https://researchr.org/alias/joel-scheuner" - name: "Philipp Leitner" link: "https://researchr.org/alias/philipp-leitner" year: "2019" doi: "https://doi.org/10.1007/s10664-019-09681-1" links: doi: "https://doi.org/10.1007/s10664-019-09681-1" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/ese/LaaberSL19" researchr: "https://researchr.org/publication/LaaberSL19" cites: 0 citedby: 0 journal: "ese" volume: "24" number: "4" pages: "2469-2508" kind: "article" key: "LaaberSL19" - title: "An Optimized Parsing Algorithm Well Suited to RNA Folding" author: - name: "Fabrice Lefebvre" link: "https://researchr.org/alias/fabrice-lefebvre" year: "1995" tags: - "parsing algorithm" - "optimization" - "parsing" researchr: "https://researchr.org/publication/Lefebvre95" cites: 0 citedby: 0 pages: "222-230" booktitle: "ismb" kind: "inproceedings" key: "Lefebvre95" - title: "Derivation of a Parsing Algorithm in Martin-Löf s Theory of Types" author: - name: "Paul Chisholm" link: "https://researchr.org/alias/paul-chisholm" year: "1987" tags: - "parsing algorithm" - "type theory" - "parsing" researchr: "https://researchr.org/publication/Chisholm87" cites: 0 citedby: 0 journal: "SCP" volume: "8" number: "1" pages: "1-42" kind: "article" key: "Chisholm87" - title: "Efficient development of consistent projectional editors using grammar cells" author: - name: "Markus Völter" link: "http://www.voelter.de/" - name: "Tamás Szabó" link: "https://researchr.org/alias/tam%C3%A1s-szab%C3%B3" - name: "Sascha Lisson" link: "https://researchr.org/alias/sascha-lisson" - name: " Bernd Kolb" link: "https://researchr.org/alias/bernd-kolb" - name: "Sebastian Erdweg" link: "http://www.informatik.uni-marburg.de/~seba/" - name: "Thorsten Berger" link: "https://researchr.org/alias/thorsten-berger" year: "2016" doi: "http://dl.acm.org/citation.cfm?id=2997365" links: doi: "http://dl.acm.org/citation.cfm?id=2997365" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/VoelterSLKEB16" researchr: "https://researchr.org/publication/VoelterSLKEB16" cites: 0 citedby: 0 pages: "28-40" booktitle: "SLE" kind: "inproceedings" key: "VoelterSLKEB16" - title: "General Incremental Lexical Analysis" author: - name: "Tim A. Wagner" link: "https://researchr.org/alias/tim-a.-wagner" - name: "Susan L. Graham" link: "https://researchr.org/alias/susan-l.-graham" year: "1997" researchr: "https://researchr.org/publication/WagnerG97-lex" cites: 0 citedby: 1 kind: "unpublished" key: "WagnerG97-lex" - title: "A Novel Video Parsing Algorithm Utilizing the Pleasure-Arousal-Dominance Emotional Information" author: - name: "Sutjipto Arifin" link: "https://researchr.org/alias/sutjipto-arifin" - name: "Peter Y. K. Cheung" link: "https://researchr.org/alias/peter-y.-k.-cheung" year: "2007" doi: "http://dx.doi.org/10.1109/ICIP.2007.4379589" links: doi: "http://dx.doi.org/10.1109/ICIP.2007.4379589" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/ArifinC07%3A1" cites: 0 citedby: 0 pages: "333-336" booktitle: "icip" kind: "inproceedings" key: "ArifinC07:1" - title: "Island Grammar-Based Parsing Using GLL and Tom" author: - name: "Ali Afroozeh" link: "https://www.cwi.nl/people/2605" - name: "Jean-Christophe Bach" link: "https://researchr.org/alias/jean-christophe-bach" - name: "Mark van den Brand" link: "https://researchr.org/alias/mark-van-den-brand" - name: "Adrian Johnstone" link: "http://www.cs.rhul.ac.uk/~adrian/" - name: " Maarten Manders" link: "https://researchr.org/alias/maarten-manders" - name: "Pierre-Etienne Moreau" link: "https://researchr.org/alias/pierre-etienne-moreau" - name: "Elizabeth Scott" link: "https://researchr.org/alias/elizabeth-scott" year: "2012" doi: "http://dx.doi.org/10.1007/978-3-642-36089-3_13" links: doi: "http://dx.doi.org/10.1007/978-3-642-36089-3_13" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/AfroozehBBJMMS12" researchr: "https://researchr.org/publication/AfroozehBBJMMS12" cites: 0 citedby: 0 pages: "224-243" booktitle: "SLE" kind: "inproceedings" key: "AfroozehBBJMMS12" - title: "Natural and Flexible Error Recovery for Generated Parsers" author: - name: "Maartje de Jonge" link: "https://researchr.org/profile/maartjedejonge/publications" - name: "Emma Nilsson-Nyman" link: "http://www.cs.lth.se/home/Emma.Nilsson_Nyman/" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-12107-4_16" abstract: "Parser generators are an indispensable tool for rapid language development. However, they often fall short of the finesse of a hand-crafted parser, built with the language semantics in mind. One area where generated parsers have provided unsatisfactory results is that of error recovery. Good error recovery is both natural, giving recovery suggestions in line with the intention of the programmer; and flexible, allowing it to be adapted according to language insights and language changes. This paper describes a novel approach to error recovery, taking into account not only the context-free grammar, but also indentation usage. We base our approach on an extension of the SGLR parser that supports fine-grained error recovery rules and can be used to parse complex, composed languages. We take a divide-and-conquer approach to error recovery: using indentation, erroneous regions of code are identified. These regions constrain the search space for applying recovery rules, improving performance and ensuring recovery suggestions local to the error. As a last resort, erroneous regions can be discarded. Our approach also integrates bridge parsing to provide more accurate suggestions for indentation-sensitive language constructs such as scopes. We evaluate our approach by comparison with the JDT Java parser used in Eclipse. " links: doi: "http://dx.doi.org/10.1007/978-3-642-12107-4_16" successor: "https://researchr.org/publication/JongeKVS12" tags: - "semantics" - "rule-based" - "Java" - "Eclipse" - "rules" - "C++" - "search suggestions" - "context-aware" - "search" - "parsing" - "error recovery" - "systematic-approach" - "SGLR" - "grammar" researchr: "https://researchr.org/publication/JongeNKV09" cites: 0 citedby: 0 pages: "204-223" booktitle: "SLE" kind: "inproceedings" key: "JongeNKV09" - title: "A symbol-based extension of parsing expression grammars and context-sensitive packrat parsing" author: - name: "Kimio Kuramitsu" link: "https://researchr.org/alias/kimio-kuramitsu" year: "2017" doi: "http://doi.acm.org/10.1145/3136014.3136025" links: doi: "http://doi.acm.org/10.1145/3136014.3136025" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/Kuramitsu17" researchr: "https://researchr.org/publication/Kuramitsu17" cites: 0 citedby: 0 pages: "26-37" booktitle: "SLE" kind: "inproceedings" key: "Kuramitsu17" - title: "Generalised Parsing: Some Costs" author: - name: "Adrian Johnstone" link: "http://www.cs.rhul.ac.uk/~adrian/" - name: "Elizabeth Scott" link: "http://www.cs.rhul.ac.uk/People/staff/scott.html" - name: "Giorgios R. Economopoulos" link: "http://users.ecs.soton.ac.uk/gre/" year: "2004" doi: "http://dx.doi.org/10.1007/b95956" abstract: "We discuss generalisations of bottom up parsing, emphasising the relative costs for real programming languages. Our goal is to provide a roadmap of the available approaches in terms of their space and time performance for programming language applications, focusing mainly on GLR style algorithms. It is well known that the original Tomita GLR algorithm fails to terminate on hidden left recursion: here we analyse two approaches to correct GLR parsing (i) the modification due to Farshi that is incorporated into Visserrsquos work and (ii) our own right-nullable GLR (RNGLR) algorithm, showing that Farshirsquos approach can be expensive. We also present results from our new Binary RNGLR algorithm which is asymptotically the fastest parser in this family and show that the recently reported reduction incorporated parsers can require automata that are too large to be practical on current machines." links: doi: "http://dx.doi.org/10.1007/b95956" tags: - "parsing algorithm" - "programming languages" - "GLR parsing" - "GLR" - "programming" - "parsing" - "systematic-approach" researchr: "https://researchr.org/publication/JohnstoneSE04" cites: 0 citedby: 0 pages: "89-103" booktitle: "CC" kind: "inproceedings" key: "JohnstoneSE04" - title: "An alternative approach to macro processing" author: - name: "Hammer, Michael" link: "https://researchr.org/alias/hammer%2C-michael" year: "1971" doi: "http://doi.acm.org/10.1145/800006.807983" links: doi: "http://doi.acm.org/10.1145/800006.807983" tags: - "macros" - "systematic-approach" researchr: "https://researchr.org/publication/807983" cites: 0 citedby: 0 booktitle: "Proceedings of the international symposium on Extensible languages" kind: "inproceedings" key: "807983" - title: "A locally least-cost LR-error corrector" author: - name: "Charles Fischer" link: "https://researchr.org/alias/charles-fischer" - name: "Bernard Dion" link: "https://researchr.org/alias/bernard-dion" - name: "Jon Mauney" link: "https://researchr.org/alias/jon-mauney" year: "1979" researchr: "https://researchr.org/publication/FischerBM79" cites: 0 citedby: 0 institution: "University of Wisconsin-Madison Department of Computer Sciences" kind: "techreport" key: "FischerBM79" - title: "Syntax and sensibility: Using language models to detect and correct syntax errors" author: - name: "Eddie Antonio Santos" link: "https://researchr.org/alias/eddie-antonio-santos" - name: "Joshua Charles Campbell" link: "https://researchr.org/alias/joshua-charles-campbell" - name: "Dhvani Patel" link: "https://researchr.org/alias/dhvani-patel" - name: "Abram Hindle" link: "https://researchr.org/alias/abram-hindle" - name: "José Nelson Amaral" link: "https://researchr.org/alias/jos%C3%A9-nelson-amaral" year: "2018" doi: "http://doi.ieeecomputersociety.org/10.1109/SANER.2018.8330219" links: doi: "http://doi.ieeecomputersociety.org/10.1109/SANER.2018.8330219" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/wcre/SantosCPHA18" researchr: "https://researchr.org/publication/SantosCPHA18" cites: 0 citedby: 0 pages: "311-322" booktitle: "WCRE" kind: "inproceedings" key: "SantosCPHA18" - title: "An Efficient Context-Free Parsing Algorithm (Reprint)" author: - name: "Jay Earley" link: "https://researchr.org/alias/jay-earley" year: "1983" tags: - "parsing algorithm" - "context-aware" - "parsing" researchr: "https://researchr.org/publication/Earley83" cites: 0 citedby: 0 journal: "CACM" volume: "26" number: "1" pages: "57-61" kind: "article" key: "Earley83" - title: "A typed, algebraic approach to parsing" author: - name: "Neelakantan R. Krishnaswami" link: "https://researchr.org/alias/neelakantan-r.-krishnaswami" - name: "Jeremy Yallop" link: "https://researchr.org/alias/jeremy-yallop" year: "2019" doi: "https://doi.org/10.1145/3314221.3314625" links: doi: "https://doi.org/10.1145/3314221.3314625" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/pldi/KrishnaswamiY19" researchr: "https://researchr.org/publication/KrishnaswamiY19" cites: 0 citedby: 0 pages: "379-393" booktitle: "PLDI" kind: "inproceedings" key: "KrishnaswamiY19" - title: "Hazelnut: a bidirectionally typed structure editor calculus" author: - name: "Cyrus Omar" link: "https://researchr.org/alias/cyrus-omar" - name: "Ian Voysey" link: "https://researchr.org/alias/ian-voysey" - name: "Michael Hilton" link: "https://researchr.org/alias/michael-hilton" - name: "Jonathan Aldrich" link: "https://researchr.org/alias/jonathan-aldrich" - name: "Matthew A. Hammer" link: "https://researchr.org/alias/matthew-a.-hammer" year: "2017" doi: "http://dl.acm.org/citation.cfm?id=3009900" links: doi: "http://dl.acm.org/citation.cfm?id=3009900" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/popl/OmarVHAH17" researchr: "https://researchr.org/publication/OmarVHAH17" cites: 0 citedby: 0 pages: "86-99" booktitle: "POPL" kind: "inproceedings" key: "OmarVHAH17" - title: "Parsing multi-ordered grammars with the Gray algorithm" author: - name: "Nick Papoulias" link: "https://researchr.org/alias/nick-papoulias" year: "2019" doi: "https://doi.org/10.7287/peerj.preprints.27465v2" links: doi: "https://doi.org/10.7287/peerj.preprints.27465v2" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/peerjpre/Papoulias19a" researchr: "https://researchr.org/publication/Papoulias19a" cites: 0 citedby: 0 journal: "peerjpre" volume: "7" kind: "article" key: "Papoulias19a" - title: "Building Documentation Generators" author: - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" - name: "Tobias Kuipers" link: "http://www.sig.eu" year: "1999" doi: "http://computer.org/proceedings/icsm/0016/00160040abs.htm" links: doi: "http://computer.org/proceedings/icsm/0016/00160040abs.htm" tags: - "island grammars" researchr: "https://researchr.org/publication/DeursenK99%3A0" cites: 0 citedby: 0 pages: "40-49" booktitle: "ICSM" kind: "inproceedings" key: "DeursenK99:0" - title: "A faster algorithm for the computation of string convolutions using LZ78 parsing" author: - name: "Valerio Freschi" link: "https://researchr.org/alias/valerio-freschi" - name: "Alessandro Bogliolo" link: "https://researchr.org/alias/alessandro-bogliolo" year: "2010" doi: "http://dx.doi.org/10.1016/j.ipl.2010.05.010" abstract: "String convolution between vectors of integers representing a pattern and a text is a widely used computational primitive in string processing. In this paper, we investigate the use of an algorithmic framework which exploits sequence repetitions (identified according to the Lempel–Ziv parsing technique, i.e., the LZ78 algorithm) to speed up conventional algorithms (based on Fast Fourier Transform) for the computation of convolution between a pattern and a text, when the text is long enough and the pattern is sufficiently small. In particular, we present a deterministic algorithm which, given a text T of length n (drawn from a constant size alphabet ΣT) and a pattern P of length m (drawn from a constant size alphabet ΣP), computes the convolution between P and T with time and space complexity View the MathML source, where h is the entropy of text T." links: doi: "http://dx.doi.org/10.1016/j.ipl.2010.05.010" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/ipl/FreschiB10" tags: - "parsing algorithm" - "rule-based" - "source-to-source" - "parsing" - "open-source" researchr: "https://researchr.org/publication/FreschiB10" cites: 0 citedby: 0 journal: "ipl" volume: "110" number: "14-15" pages: "609-613" kind: "article" key: "FreschiB10" - title: "A new parallel algorithm for parsing arithmetic infix expressions" author: - name: "Y. N. Srikant" link: "https://researchr.org/alias/y.-n.-srikant" - name: "Priti Shankar" link: "https://researchr.org/alias/priti-shankar" year: "1987" doi: "http://dx.doi.org/10.1016/0167-8191(87)90028-7" links: doi: "http://dx.doi.org/10.1016/0167-8191(87)90028-7" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/SrikantS87" cites: 0 citedby: 0 journal: "pc" volume: "4" number: "3" pages: "291-304" kind: "article" key: "SrikantS87" - title: "A Formal Way from Text to Code Templates" author: - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-00593-0_8" abstract: "We present an approach to define template languages for generating syntactically correct code. In the first part of the paper, we define the syntax and semantics of a template language for text generation. We use Natural Semantics for expressing both the static and the dynamic semantics of the language. In the second part, we deal with template languages for code generation in a particular target language. We provide construction steps for the syntax and semantics of such languages. The approach is generic and can be applied to any target language." links: doi: "http://dx.doi.org/10.1007/978-3-642-00593-0_8" tags: - "model-to-model transformation" - "semantics" - "transformation engineering" - "formal semantics" - "model-to-text transformation" - "language engineering" - "transformation language" - "composition" - "source-to-source" - "model-driven engineering" - "code generation" - "model transformation" - "natural semantics" - "language composition" - "grammarware" - "modelware" - "systematic-approach" - "open-source" - "transformation" researchr: "https://researchr.org/publication/Wachsmuth09" cites: 0 citedby: 0 pages: "109-123" booktitle: "FASE" kind: "inproceedings" key: "Wachsmuth09" - title: "Application of extensible languages to specialized application languages" author: - name: "Sammet, Jean E." link: "https://researchr.org/alias/sammet%2C-jean-e." year: "1971" doi: "http://doi.acm.org/10.1145/800006.807997" links: doi: "http://doi.acm.org/10.1145/800006.807997" tags: - "e-science" - "extensible language" researchr: "https://researchr.org/publication/807997" cites: 0 citedby: 0 booktitle: "Proceedings of the international symposium on Extensible languages" kind: "inproceedings" key: "807997" - title: "A Data Parallel Algorithm for XML DOM Parsing" author: - name: "Bhavik Shah" link: "https://researchr.org/alias/bhavik-shah" - name: "Praveen Rao" link: "https://researchr.org/alias/praveen-rao" - name: "Bongki Moon" link: "https://researchr.org/alias/bongki-moon" - name: "Mohan Rajagopalan" link: "https://researchr.org/alias/mohan-rajagopalan" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-03555-5_7" links: doi: "http://dx.doi.org/10.1007/978-3-642-03555-5_7" tags: - "parsing algorithm" - "XML" - "XML Schema" - "data-flow" - "parsing" researchr: "https://researchr.org/publication/ShahRMR09" cites: 0 citedby: 0 pages: "75-90" booktitle: "xsym" kind: "inproceedings" key: "ShahRMR09" - title: "Lake symbols for island parsing" author: - name: "Katsumi Okuda" link: "https://researchr.org/alias/katsumi-okuda" - name: "Shigeru Chiba" link: "https://researchr.org/alias/shigeru-chiba" year: "2021" doi: "https://doi.org/10.22152/programming-journal.org/2021/5/11" links: doi: "https://doi.org/10.22152/programming-journal.org/2021/5/11" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/programming/OkudaC21" researchr: "https://researchr.org/publication/OkudaC21" cites: 0 citedby: 0 journal: "Programming" volume: "5" number: "2" pages: "11" kind: "article" key: "OkudaC21" - title: "Principled syntactic code completion using placeholders" author: - name: "Luis Eduardo de Souza Amorim" link: "https://www.linkedin.com/profile/view?id=136481548" - name: "Sebastian Erdweg" link: "http://www.informatik.uni-marburg.de/~seba/" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2016" doi: "http://dx.doi.org/10.1145/2997364.2997374" abstract: "Principled syntactic code completion enables developers to change source code by inserting code templates, thus increasing developer efficiency and supporting language exploration. However, existing code completion systems are ad-hoc and neither complete nor sound. They are not complete and only provide few code templates for selected programming languages. They also are not sound and propose code templates that yield invalid programs when inserted.This paper presents a generic framework that automatically derives complete and sound syntactic code completion from the syntax definition of arbitrary languages. A key insight of our work is to provide an explicit syntactic representation for incomplete programs using placeholders. This enables us to address the following challenges for code completion separately: (i) completing incomplete programs by replacing placeholders with code templates, (ii) injecting placeholders into complete programs to make them incomplete, and (iii) introducing lexemes and placeholders into incorrect programs through error-recovery parsing to make them correct so we can apply one of the previous strategies. We formalize our framework and provide an implementation in the Spoofax Language Workbench. " links: doi: "http://dx.doi.org/10.1145/2997364.2997374" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/AmorimEWV16" researchr: "https://researchr.org/publication/AmorimEWV16" cites: 0 citedby: 0 pages: "163-175" booktitle: "SLE" kind: "inproceedings" key: "AmorimEWV16" - title: "METAPI - a language for extensions" author: - name: "Chandler, Gerald D." link: "https://researchr.org/alias/chandler%2C-gerald-d." year: "1971" doi: "http://doi.acm.org/10.1145/800006.807972" links: doi: "http://doi.acm.org/10.1145/800006.807972" researchr: "https://researchr.org/publication/807972" cites: 0 citedby: 0 booktitle: "Proceedings of the international symposium on Extensible languages" kind: "inproceedings" key: "807972" - title: "Natural and Flexible Error Recovery for Generated Modular Language Environments" author: - name: "Maartje de Jonge" link: "https://researchr.org/profile/maartjedejonge/publications" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Emma Söderberg" link: "https://researchr.org/alias/emma-s%C3%B6derberg" year: "2012" doi: "http://doi.acm.org/10.1145/2400676.2400678" abstract: "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 paper 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." links: doi: "http://doi.acm.org/10.1145/2400676.2400678" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/toplas/JongeKVS12" researchr: "https://researchr.org/publication/JongeKVS12" cites: 0 citedby: 0 journal: "TOPLAS" volume: "34" number: "4" pages: "15" kind: "article" key: "JongeKVS12" - title: "Declarative, formal, and extensible syntax definition for AspectJ" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Éric Tanter" link: "http://pleiad.dcc.uchile.cl/people/etanter" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2006" doi: "http://doi.acm.org/10.1145/1167473.1167491" abstract: " Aspect-Oriented Programming (AOP) is attracting attention from both research and industry, as illustrated by the ever-growing popularity of AspectJ, the de facto standard AOP extension of Java. From a compiler construction perspective AspectJ is interesting as it is a typical example of compositional language, ie a language composed of a number of separate languages with different syntactical styles: in addition to plain Java, AspectJ includes a language for defining pointcuts and one for defining advices. Language composition represents a non-trivial challenge for conventional parsing techniques. First, combining several languages with different lexical syntax leads to considerable complexity in the lexical states to processed. Second, as new language features for AOP are being explored, many research proposals are concerned with further extending the AspectJ language, resulting in a need for an extensible syntax definition.This paper shows how scannerless parsing elegantly addresses the issues encountered by conventional techniques when parsing AspectJ . We present the design of a modular, extensible, and formal definition of the lexical and context-free aspects of the AspectJ syntax in the Syntax Definition Formalism SDF, which is implemented by a scannerless, generalized-LR parser (SGLR). We introduce grammar mixins as a novel application of SDF's modularity features, which allows the declarative definition of different keyword policies and combination of extensions. We illustrate the modular extensibility of our definition with syntax extensions taken from current research on aspect languages. Finally, benchmarks show the reasonable performance of scannerless generalized-LR parsing for this grammar. " links: doi: "http://doi.acm.org/10.1145/1167473.1167491" tags: - "programming languages" - "AspectJ" - "object-oriented programming" - "Java" - "syntax definition" - "SDF" - "lexical syntax" - "design complexity" - "composition" - "design research" - "language design" - "aspect oriented programming" - "compiler" - "programming" - "subject-oriented programming" - "context-aware" - "language composition" - "parsing" - "design" - "scannerless parsing" - "extensible language" - "ASF+SDF" - "feature-oriented programming" - "SGLR" - "grammar" researchr: "https://researchr.org/publication/BravenboerTV06" cites: 0 citedby: 1 pages: "209-228" booktitle: "OOPSLA" kind: "inproceedings" key: "BravenboerTV06" - title: "Efficient parallel and incremental parsing of practical context-free languages" author: - name: "Jean-Philippe Bernardy" link: "https://researchr.org/alias/jean-philippe-bernardy" - name: "Koen Claessen" link: "http://www.cse.chalmers.se/~koen/" year: "2015" doi: "http://dx.doi.org/10.1017/S0956796815000131" links: doi: "http://dx.doi.org/10.1017/S0956796815000131" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/jfp/BernardyC15" researchr: "https://researchr.org/publication/BernardyC15" cites: 0 citedby: 0 journal: "JFP" volume: "25" kind: "article" key: "BernardyC15" - title: "A Simple and Efficient Incremental LL(1) parsing" author: - name: "Warren X. Li" link: "https://researchr.org/alias/warren-x.-li" year: "1995" tags: - "parsing" - "incremental" researchr: "https://researchr.org/publication/Li95%3A8" cites: 0 citedby: 0 pages: "399-404" booktitle: "sofsem" kind: "inproceedings" key: "Li95:8" - title: "Elkhound: A Fast, Practical GLR Parser Generator" author: - name: "Scott McPeak" link: "https://researchr.org/alias/scott-mcpeak" - name: "George C. Necula" link: "https://researchr.org/alias/george-c.-necula" year: "2004" doi: "https://doi.org/10.1007/978-3-540-24723-4_6" links: doi: "https://doi.org/10.1007/978-3-540-24723-4_6" tags: - "GLR parsing" - "GLR" - "C++" - "parsing" researchr: "https://researchr.org/publication/McPeakN04" cites: 0 citedby: 0 pages: "73-88" booktitle: "CC" kind: "inproceedings" key: "McPeakN04" - title: "Merlin: a language server for OCaml (experience report)" author: - name: "Frédéric Bour" link: "https://researchr.org/alias/fr%C3%A9d%C3%A9ric-bour" - name: "Thomas Refis" link: "https://researchr.org/alias/thomas-refis" - name: "Gabriel Scherer" link: "https://researchr.org/alias/gabriel-scherer" year: "2018" doi: "https://doi.org/10.1145/3236798" links: doi: "https://doi.org/10.1145/3236798" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/pacmpl/BourRS18" researchr: "https://researchr.org/publication/BourRS18" cites: 0 citedby: 0 journal: "PACMPL" volume: "2" number: "ICFP" kind: "article" key: "BourRS18" - title: "Layout-Sensitive Generalized Parsing" author: - name: "Sebastian Erdweg" link: "http://www.informatik.uni-marburg.de/~seba/" - name: "Tillmann Rendel" link: "https://researchr.org/alias/tillmann-rendel" - name: "Christian Kästner" link: "https://researchr.org/alias/christian-k%C3%A4stner" - name: "Klaus Ostermann" link: "https://researchr.org/alias/klaus-ostermann" year: "2012" doi: "http://dx.doi.org/10.1007/978-3-642-36089-3_14" links: doi: "http://dx.doi.org/10.1007/978-3-642-36089-3_14" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/ErdwegRKO12" researchr: "https://researchr.org/publication/ErdwegRKO12" cites: 0 citedby: 0 pages: "244-263" booktitle: "SLE" kind: "inproceedings" key: "ErdwegRKO12" - title: "Verifiable composition of deterministic grammars" author: - name: "August Schwerdfeger" link: "https://researchr.org/alias/august-schwerdfeger" - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" year: "2009" doi: "http://doi.acm.org/10.1145/1542476.1542499" links: doi: "http://doi.acm.org/10.1145/1542476.1542499" tags: - "composition" - "grammar" researchr: "https://researchr.org/publication/SchwerdfegerW09" cites: 0 citedby: 0 pages: "199-210" booktitle: "PLDI" kind: "inproceedings" key: "SchwerdfegerW09" - title: "One parser to rule them all" author: - name: "Ali Afroozeh" link: "https://www.cwi.nl/people/2605" - name: "Anastasia Izmaylova" link: "https://researchr.org/alias/anastasia-izmaylova" year: "2015" doi: "http://doi.acm.org/10.1145/2814228.2814242" links: doi: "http://doi.acm.org/10.1145/2814228.2814242" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/AfroozehI15" researchr: "https://researchr.org/publication/AfroozehI15-0" cites: 0 citedby: 0 pages: "151-170" booktitle: "OOPSLA" kind: "inproceedings" key: "AfroozehI15-0" - title: "A Generalized CYK Algorithm for Parsing Stochastic CFG" author: - name: "Jean-Cédric Chappelier" link: "https://researchr.org/alias/jean-c%C3%A9dric-chappelier" - name: "Martin Rajman" link: "https://researchr.org/alias/martin-rajman" year: "1998" doi: "ftp://ftp.inria.fr/INRIA/Projects/Atoll/TAPD98/chappelier.ps.gz" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/ChappelierR98" cites: 0 citedby: 0 pages: "133-137" booktitle: "tapd" kind: "inproceedings" key: "ChappelierR98" - title: "Processing XPath queries with forward and downward axes over XML streams" author: - name: "Makoto Onizuka" link: "https://researchr.org/alias/makoto-onizuka" year: "2010" doi: "http://doi.acm.org/10.1145/1739041.1739048" abstract: "We propose an XPath processing algorithm that efficiently evaluates XPath queries in XP{downarrow,rightarrow,*,[]} over XML streams. An XPath query is expressed with axes, which are binary relations between nodes in XML streams: 'downarrow' identifies the child/descendant axes and 'rightarrow' indicates the following/following-sibling axes. The proposed algorithm evaluates XPath queries within one XML parsing pass and outputs the fragments found in XML streams as the query results. The difficulty of XP{downarrow,rightarrow,*,[]} evaluation lies in establishing dynamic scope control for the following/following-sibling axes. The algorithm uses double-layered non-deterministic finite automata (NFA) to resolve this issue. First layer NFA is compiled from XPath queries and is able to evaluate sub-queries in XP{downarrow,rightarrow,*}. Second layer NFA handles predicate parts. It is dynamically maintained during XML parsing: a state is constructed from a pair of the corresponding state in the first layer automaton and the currently parsed node in the XML stream. Layered NFA achieves O(|D||Q|) time complexity by introducing a state sharing technique, which avoids the exponential growth in the state size of Layered NFA by eliminating redundant transitions. We validate the efficiency of the algorithm through empirical experiments and show that Layered NFA is up to four times faster, and twice as fast on average, than existing algorithms. " links: doi: "http://doi.acm.org/10.1145/1739041.1739048" tags: - "empirical" - "parsing algorithm" - "XML" - "XML Schema" - "XPath" - "compiler" - "parsing" - "stream processing" researchr: "https://researchr.org/publication/Onizuka10" cites: 0 citedby: 0 pages: "27-38" booktitle: "edbt" kind: "inproceedings" key: "Onizuka10" - title: "A parsing algorithm for Korean implemented in Prolog" author: - name: "Soyoung Kwon" link: "https://researchr.org/alias/soyoung-kwon" year: "2006" doi: "http://doi.acm.org/10.1145/1185448.1185458" links: doi: "http://doi.acm.org/10.1145/1185448.1185458" tags: - "parsing algorithm" - "Prolog" - "parsing" researchr: "https://researchr.org/publication/Kwon06%3A8" cites: 0 citedby: 0 pages: "40-44" booktitle: "ACMse" kind: "inproceedings" key: "Kwon06:8" - title: "Incremental Scannerless Generalized LR Parsing" author: - name: "Maarten P. Sijm" link: "https://researchr.org/profile/mpsijm/publications" year: "2019" doi: "https://doi.org/10.1145/3359061.3361085" abstract: "We present the Incremental Scannerless Generalized LR (ISGLR) parsing algorithm, which combines the benefits of Incremental Generalized LR (IGLR) parsing and Scannerless Generalized LR (SGLR) parsing. The parser preprocesses the input by modifying the previously saved parse forest. This allows the input to the parser to be a stream of parse nodes, instead of a stream of characters. Scannerless parsing relies heavily on non-determinism during parsing, negatively impacting the incrementality of ISGLR parsing. We evaluated the ISGLR parsing algorithm using file histories from Git, achieving a speedup of up to 25 times over non-incremental SGLR." links: doi: "https://doi.org/10.1145/3359061.3361085" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/Sijm19" successor: "https://researchr.org/publication/Sijm21" researchr: "https://researchr.org/publication/Sijm19" cites: 6 citedby: 0 pages: "54-56" booktitle: "OOPSLA" kind: "inproceedings" key: "Sijm19" - title: "An Optimal Tabular Parsing Algorithm" author: - name: "Mark-Jan Nederhof" link: "https://researchr.org/alias/mark-jan-nederhof" year: "1994" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/Nederhof94" cites: 0 citedby: 0 pages: "117-124" booktitle: "acl" kind: "inproceedings" key: "Nederhof94" - title: "Context-aware scanning for parsing extensible languages" author: - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" - name: "August Schwerdfeger" link: "https://researchr.org/alias/august-schwerdfeger" year: "2007" doi: "http://doi.acm.org/10.1145/1289971.1289983" links: doi: "http://doi.acm.org/10.1145/1289971.1289983" tags: - "context-aware" - "parsing" - "extensible language" researchr: "https://researchr.org/publication/WykS07" cites: 0 citedby: 1 pages: "63-72" booktitle: "GPCE" kind: "inproceedings" key: "WykS07" - title: "An All-Path Parsing Algorithm for Constraint-Based Dependency Grammars of CF-Power" author: - name: "Tomasz Obrêbski" link: "https://researchr.org/alias/tomasz-obr%C3%AAbski" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-74628-7_20" links: doi: "http://dx.doi.org/10.1007/978-3-540-74628-7_20" tags: - "parsing algorithm" - "rule-based" - "constraints" - "parsing" - "grammar" researchr: "https://researchr.org/publication/Obrebski07" cites: 0 citedby: 0 pages: "139-146" booktitle: "TSD" kind: "inproceedings" key: "Obrebski07" - title: "The State of the Art in Language Workbenches - Conclusions from the Language Workbench Challenge" author: - name: "Sebastian Erdweg" link: "http://www.informatik.uni-marburg.de/~seba/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Markus Völter" link: "http://www.voelter.de/" - name: " Meinte Boersma" link: "https://researchr.org/alias/meinte-boersma" - name: "Remi Bosman" link: "https://researchr.org/alias/remi-bosman" - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" - name: "Albert Gerritsen" link: "https://researchr.org/alias/albert-gerritsen" - name: "Angelo Hulshout" link: "https://researchr.org/alias/angelo-hulshout" - name: "Steven Kelly" link: "https://researchr.org/alias/steven-kelly" - name: "Alex Loh" link: "https://researchr.org/alias/alex-loh" - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" - name: "Pedro J. Molina" link: "https://researchr.org/alias/pedro-j.-molina" - name: "Martin Palatnik" link: "https://researchr.org/alias/martin-palatnik" - name: "Risto Pohjonen" link: "https://researchr.org/alias/risto-pohjonen" - name: "Eugen Schindler" link: "https://researchr.org/alias/eugen-schindler" - name: "Klemens Schindler" link: "https://researchr.org/alias/klemens-schindler" - name: "Riccardo Solmi" link: "https://researchr.org/alias/riccardo-solmi" - name: "Vlad A. Vergu" link: "https://researchr.org/alias/vlad-a.-vergu" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Kevin van der Vlist" link: "https://researchr.org/alias/kevin-van-der-vlist" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Jimi van der Woning" link: "https://researchr.org/alias/jimi-van-der-woning" year: "2013" doi: "http://dx.doi.org/10.1007/978-3-319-02654-1_11" abstract: "Language workbenches are tools that provide high-level mechanisms for the implementation of (domain-specific) languages. Language workbenches are an active area of research that also receives many contributions from industry. To compare and discuss existing language workbenches, the annual Language Workbench Challenge was launched in 2011. Each year, participants are challenged to realize a given domain-specific language with their workbenches as a basis for discussion and comparison. In this paper, we describe the state of the art of language workbenches as observed in the previous editions of the Language Workbench Challenge. In particular, we capture the design space of language workbenches in a feature model and show where in this design space the participants of the 2013 Language Workbench Challenge reside. We compare these workbenches based on a DSL for questionnaires that was realized in all workbenches." links: doi: "http://dx.doi.org/10.1007/978-3-319-02654-1_11" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/ErdwegSVBBCGHKLKMPPSSSVVVWW13" researchr: "https://researchr.org/publication/ErdwegSV13" cites: 0 citedby: 0 pages: "197-217" booktitle: "SLE" kind: "inproceedings" key: "ErdwegSV13" - title: "Iguana: a practical data-dependent parsing framework" author: - name: "Ali Afroozeh" link: "https://www.cwi.nl/people/2605" - name: "Anastasia Izmaylova" link: "https://researchr.org/alias/anastasia-izmaylova" year: "2016" doi: "http://doi.acm.org/10.1145/2892208.2892234" links: doi: "http://doi.acm.org/10.1145/2892208.2892234" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/cc/AfroozehI16" researchr: "https://researchr.org/publication/AfroozehI16-0" cites: 0 citedby: 0 pages: "267-268" booktitle: "CC" kind: "inproceedings" key: "AfroozehI16-0" - title: "Type-Driven Automatic Quotation of Concrete Object Code in Meta Programs" author: - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2005" doi: "http://dx.doi.org/10.1007/11751113_8" abstract: "Meta programming can be facilitated by the ability to represent program fragments in concrete syntax instead of abstract syntax. The resulting meta programs are more self-documenting. One caveat in concrete meta programming is the syntactic separation between the meta language and the object language. To solve this problem, many meta programming systems use quoting and anti-quoting to indicate precisely where level switches occur. These \"syntactic hedges\" can obfuscate the concrete program fragments. This paper describes an algorithm for inferring quotes, such that the meta programmer no longer needs to explicitly indicate transitions between the meta and object languages. " links: doi: "http://dx.doi.org/10.1007/11751113_8" tags: - "programming languages" - "object-oriented programming" - "concrete object syntax" - "meta programming" - "SDF" - "meta-model" - "abstract syntax" - "type system" - "programming" - "subject-oriented programming" - "metaprogramming" - "Meta-Environment" - "quotation" - "ASF+SDF" - "feature-oriented programming" - "concrete syntax" - "meta-objects" researchr: "https://researchr.org/publication/Vinju05" cites: 0 citedby: 0 pages: "97-112" booktitle: "rise" kind: "inproceedings" key: "Vinju05" - title: "Evaluating GLR parsing algorithms" author: - name: "Adrian Johnstone" link: "http://www.cs.rhul.ac.uk/~adrian/" - name: "Elizabeth Scott" link: "http://www.cs.rhul.ac.uk/People/staff/scott.html" - name: "Giorgios R. Economopoulos" link: "http://users.ecs.soton.ac.uk/gre/" year: "2006" doi: "http://dx.doi.org/10.1016/j.scico.2006.04.004" abstract: "We describe the behaviour of three variants of GLR parsing: (i) Farshi’s original correction to Tomita’s non-general algorithm; (ii) the Right Nulled GLR algorithm which provides a more efficient generalisation of Tomita and (iii) the Binary Right Nulled GLR algorithm, on three types of LR table. We present a guide to the parse-time behaviour of these algorithms which illustrates the inefficiencies in conventional Farshi-style GLR parsing. We also describe the tool GTB (Grammar Tool Box) which provides a platform for comparative studies of parsing algorithms; and use GTB to exercise the three GLR algorithms running with LR(0), SLR(1) and LR(1) tables for ANSI-C, ISO-Pascal and IBM VS-COBOL. We give results showing the size of the structures constructed by these parsers and the amount of searching required during the parse, which abstracts their runtime." links: doi: "http://dx.doi.org/10.1016/j.scico.2006.04.004" tags: - "parsing algorithm" - "GLR parsing" - "context free languages" - "GLR" - "C++" - "context-aware" - "Cobol" - "parsing" - "Pascal" - "grammar types" - "grammar" researchr: "https://researchr.org/publication/JohnstoneSE06" cites: 0 citedby: 0 journal: "SCP" volume: "61" number: "3" pages: "228-244" kind: "article" key: "JohnstoneSE06" - title: "Generalized Type-Based Disambiguation of Meta Programs with Concrete Object Syntax" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Rob Vermaas" link: "https://researchr.org/profile/robvermaas/publications" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2005" doi: "http://dx.doi.org/10.1007/11561347_12" abstract: "In meta programming with concrete object syntax, object-level programs are composed from fragments written in concrete syntax. The use of small program fragments in such quotations and the use of meta-level expressions within these fragments (anti-quotation) often leads to ambiguities. This problem is usually solved through explicit disambiguation, resulting in considerable syntactic overhead. A few systems manage to reduce this overhead by using type information during parsing. Since this is hard to achieve with traditional parsing technology, these systems provide specific combinations of meta and object languages, and their implementations are difficult to reuse. In this paper, we generalize these approaches and present a language independent method for introducing concrete object syntax without explicit disambiguation. The method uses scannerless generalized-LR parsing to parse meta programs with embedded object-level fragments, which produces a forest of all possible parses. This forest is reduced to a tree by a disambiguating type checker for the meta language. To validate our method we have developed embeddings of several object languages in Java, including AspectJ and Java itself. " links: doi: "http://dx.doi.org/10.1007/11561347_12" tags: - "programming languages" - "AspectJ" - "object-oriented programming" - "concrete object syntax" - "rule-based" - "Java" - "syntax definition" - "meta programming" - "SDF" - "meta-model" - "disambiguation" - "type system" - "reuse" - "programming" - "subject-oriented programming" - "Meta-Environment" - "parsing" - "scannerless parsing" - "systematic-approach" - "ASF+SDF" - "feature-oriented programming" - "concrete syntax" - "meta-objects" - "domain-specific language" researchr: "https://researchr.org/publication/BravenboerVVV05" cites: 0 citedby: 2 pages: "157-172" booktitle: "GPCE" kind: "inproceedings" key: "BravenboerVVV05" - title: "An Input-Parsing Algorithm Supporting Integration of Deictic Gesture in Natural Language Interface" author: - name: "Yong Sun" link: "https://researchr.org/alias/yong-sun" - name: "Fang Chen" link: "https://researchr.org/alias/fang-chen" - name: "Yu Shi" link: "https://researchr.org/alias/yu-shi" - name: "Vera Chung" link: "https://researchr.org/alias/vera-chung" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-73110-8_22" links: doi: "http://dx.doi.org/10.1007/978-3-540-73110-8_22" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/SunCSC07" cites: 0 citedby: 0 pages: "206-215" booktitle: "hci" kind: "inproceedings" key: "SunCSC07" - title: "Right nulled GLR parsers" author: - name: "Elizabeth Scott" link: "https://researchr.org/alias/elizabeth-scott" - name: "Adrian Johnstone" link: "http://www.cs.rhul.ac.uk/~adrian/" year: "2006" doi: "http://doi.acm.org/10.1145/1146810" links: doi: "http://doi.acm.org/10.1145/1146810" tags: - "GLR parsing" - "GLR" - "parsing" researchr: "https://researchr.org/publication/ScottJ06" cites: 0 citedby: 0 journal: "TOPLAS" volume: "28" number: "4" pages: "577-618" kind: "article" key: "ScottJ06" - title: "MetaJ: An Extensible Environment for Metaprogramming in Java" author: - name: "Ademir Alvarenga de Oliveira" link: "https://researchr.org/alias/ademir-alvarenga-de-oliveira" - name: "Thiago Henrique Braga" link: "https://researchr.org/alias/thiago-henrique-braga" - name: "Marcelo de Almeida Maia" link: "https://researchr.org/alias/marcelo-de-almeida-maia" - name: "Roberto da Silva Bigonha" link: "https://researchr.org/alias/roberto-da-silva-bigonha" year: "2004" doi: "http://www.jucs.org/jucs_10_7/metaj_an_extensible_environment" links: doi: "http://www.jucs.org/jucs_10_7/metaj_an_extensible_environment" tags: - "Java" - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/OliveiraBMB04" cites: 0 citedby: 0 journal: "jucs" volume: "10" number: "7" pages: "872-891" kind: "article" key: "OliveiraBMB04" - title: "Practical, general parser combinators" author: - name: "Anastasia Izmaylova" link: "https://researchr.org/alias/anastasia-izmaylova" - name: "Ali Afroozeh" link: "https://www.cwi.nl/people/2605" - name: "Tijs van der Storm" link: "https://researchr.org/alias/tijs-van-der-storm" year: "2016" doi: "http://doi.acm.org/10.1145/2847538.2847539" links: doi: "http://doi.acm.org/10.1145/2847538.2847539" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/pepm/IzmaylovaAS16" researchr: "https://researchr.org/publication/IzmaylovaAS16" cites: 0 citedby: 0 pages: "1-12" booktitle: "PEPM" kind: "inproceedings" key: "IzmaylovaAS16" - title: "Safe Specification of Operator Precedence Rules" author: - name: "Ali Afroozeh" link: "https://www.cwi.nl/people/2605" - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Adrian Johnstone" link: "http://www.cs.rhul.ac.uk/~adrian/" - name: "Elizabeth Scott" link: "http://www.cs.rhul.ac.uk/People/staff/scott.html" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2013" doi: "http://dx.doi.org/10.1007/978-3-319-02654-1_8" links: doi: "http://dx.doi.org/10.1007/978-3-319-02654-1_8" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/AfroozehBJSV13" researchr: "https://researchr.org/publication/AfroozehBJSV13" cites: 0 citedby: 0 pages: "137-156" booktitle: "SLE" kind: "inproceedings" key: "AfroozehBJSV13" - title: "Chinese Syntactic Parsing Based on Extended GLR Parsing Algorithm with PCFG*" author: - name: "Yan Zhang" link: "https://researchr.org/alias/yan-zhang" - name: "Bo Xu" link: "https://researchr.org/alias/bo-xu" - name: "Chengqing Zong" link: "https://researchr.org/alias/chengqing-zong" year: "2002" doi: "http://acl.ldc.upenn.edu/C/C02/C02-2028.pdf" links: doi: "http://acl.ldc.upenn.edu/C/C02/C02-2028.pdf" tags: - "parsing algorithm" - "GLR parsing" - "rule-based" - "GLR" - "parsing" researchr: "https://researchr.org/publication/ZhangXZ02" cites: 0 citedby: 0 booktitle: "COLING" kind: "inproceedings" key: "ZhangXZ02" - title: "Faster, Practical GLL Parsing" author: - name: "Ali Afroozeh" link: "https://www.cwi.nl/people/2605" - name: "Anastasia Izmaylova" link: "https://researchr.org/alias/anastasia-izmaylova" year: "2015" doi: "http://dx.doi.org/10.1007/978-3-662-46663-6_5" links: doi: "http://dx.doi.org/10.1007/978-3-662-46663-6_5" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/cc/AfroozehI15" researchr: "https://researchr.org/publication/AfroozehI15" cites: 0 citedby: 0 pages: "89-108" booktitle: "CC" kind: "inproceedings" key: "AfroozehI15" - title: "Left Recursion in Parsing Expression Grammars" author: - name: "Sérgio Medeiros" link: "https://researchr.org/alias/s%C3%A9rgio-medeiros" - name: "Fabio Mascarenhas" link: "https://researchr.org/alias/fabio-mascarenhas" - name: "Roberto Ierusalimschy" link: "https://researchr.org/alias/roberto-ierusalimschy" year: "2012" doi: "http://dx.doi.org/10.1007/978-3-642-33182-4_4" links: doi: "http://dx.doi.org/10.1007/978-3-642-33182-4_4" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sblp/MedeirosMI12" researchr: "https://researchr.org/publication/MedeirosMI12" cites: 0 citedby: 0 pages: "27-41" booktitle: "SBLP" kind: "inproceedings" key: "MedeirosMI12" - title: "An Extended Operator Precedence Parsing Algorithm" author: - name: "D. S. Henderson" link: "https://researchr.org/alias/d.-s.-henderson" - name: "Michael R. Levy" link: "https://researchr.org/alias/michael-r.-levy" year: "1976" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/HendersonL76" cites: 0 citedby: 0 journal: "cj" volume: "19" number: "3" pages: "229-233" kind: "article" key: "HendersonL76" - title: "LL(*): the foundation of the ANTLR parser generator" author: - name: "Terence John Parr" link: "http://www.cs.usfca.edu/~parrt/" - name: "Kathleen Fisher" link: "https://researchr.org/alias/kathleen-fisher" year: "2011" doi: "http://doi.acm.org/10.1145/1993498.1993548" links: doi: "http://doi.acm.org/10.1145/1993498.1993548" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/pldi/ParrF11" tags: - "parsing" researchr: "https://researchr.org/publication/ParrF11" cites: 0 citedby: 0 pages: "425-436" booktitle: "PLDI" kind: "inproceedings" key: "ParrF11" - title: "Active Lezi: an Incremental Parsing Algorithm for Sequential Prediction" author: - name: "Karthik Gopalratnam" link: "https://researchr.org/alias/karthik-gopalratnam" - name: "Diane J. Cook" link: "https://researchr.org/alias/diane-j.-cook" year: "2004" doi: "http://dx.doi.org/10.1142/S0218213004001892" links: doi: "http://dx.doi.org/10.1142/S0218213004001892" tags: - "parsing algorithm" - "parsing" - "incremental" researchr: "https://researchr.org/publication/Cook04%3A1" cites: 0 citedby: 0 journal: "ijait" volume: "13" number: "4" pages: "917-930" kind: "article" key: "Cook04:1" - title: "Multi-purpose Syntax Definition with SDF3" author: - name: "Luis Eduardo de Souza Amorim" link: "https://www.linkedin.com/profile/view?id=136481548" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2020" doi: "https://doi.org/10.1007/978-3-030-58768-0_1" abstract: "SDF3 is a syntax definition formalism that extends plain context-free grammars with features such as constructor declarations, declarative disambiguation rules, character-level grammars, permissive syntax, layout constraints, formatting templates, placeholder syntax, and modular composition. These features support the multi-purpose interpretation of syntax definitions, including derivation of type schemas for abstract syntax tree representations, scannerless generalized parsing of the full class of context-free grammars, error recovery, layout-sensitive parsing, parenthesization and formatting, and syntactic completion. This paper gives a high level overview of SDF3 by means of examples and provides a guide to the literature for further details." links: doi: "https://doi.org/10.1007/978-3-030-58768-0_1" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sefm/AmorimV20" researchr: "https://researchr.org/publication/AmorimV20" cites: 0 citedby: 0 pages: "1-23" booktitle: "SEFM" kind: "inproceedings" key: "AmorimV20" - title: "A General Context-Free Parsing Algorithm Running in Linear Time on Every LR (k) Grammar Without Using Lookahead" author: - name: "Joop M. I. M. Leo" link: "https://researchr.org/alias/joop-m.-i.-m.-leo" year: "1991" tags: - "parsing algorithm" - "context-aware" - "parsing" - "grammar" researchr: "https://researchr.org/publication/Leo91" cites: 0 citedby: 0 journal: "TCS" volume: "82" number: "1" pages: "165-176" kind: "article" key: "Leo91" - title: "Correctness of an Extended Operator-Precedence Parsing Algorithm" author: - name: "R. Nigel Horspool" link: "https://researchr.org/alias/r.-nigel-horspool" - name: "Michael R. Levy" link: "https://researchr.org/alias/michael-r.-levy" year: "1987" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/HorspoolL87%3A0" cites: 0 citedby: 0 journal: "ipl" volume: "24" number: "4" pages: "265-273" kind: "article" key: "HorspoolL87:0" - title: "A New Algorithm for Deterministic Parsing and Its Application to Grammar and Style Checking" author: - name: "Rey-Long Liu" link: "https://researchr.org/alias/rey-long-liu" - name: "Von-Wun Soo" link: "https://researchr.org/alias/von-wun-soo" year: "1994" doi: "http://www.iis.sinica.edu.tw/page/jise/1994/199409_04.html" links: doi: "http://www.iis.sinica.edu.tw/page/jise/1994/199409_04.html" tags: - "parsing algorithm" - "parsing" - "grammar" researchr: "https://researchr.org/publication/LiuS94%3A6" cites: 0 citedby: 0 journal: "jise" volume: "11" number: "3" pages: "369-385" kind: "article" key: "LiuS94:6" - title: "BRN-table based GLR parsers" author: - name: "Elizabeth Scott" link: "http://www.cs.rhul.ac.uk/People/staff/scott.html" - name: "Adrian Johnstone" link: "http://www.cs.rhul.ac.uk/~adrian/" - name: "Giorgios R. Economopoulos" link: "http://users.ecs.soton.ac.uk/gre/" year: "2003" month: "July 2006" tags: - "GLR parsing" - "rule-based" - "GLR" - "parsing" researchr: "https://researchr.org/publication/SCOTT03a" cites: 0 citedby: 0 institution: "Royal Holloway, University of London" number: "CSD-TR-03-06" kind: "techreport" key: "SCOTT03a" - title: "Typed parsing and unparsing for untyped regular expression engines" author: - name: "Gabriel Radanne" link: "https://researchr.org/alias/gabriel-radanne" year: "2019" doi: "https://doi.org/10.1145/3294032.3294082" links: doi: "https://doi.org/10.1145/3294032.3294082" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/pepm/Radanne19" researchr: "https://researchr.org/publication/Radanne19" cites: 0 citedby: 0 pages: "35-46" booktitle: "PEPM" kind: "inproceedings" key: "Radanne19" - title: "Linear Time Algorithm for Parsing RNA Secondary Structure" author: - name: "Baharak Rastegari" link: "https://researchr.org/alias/baharak-rastegari" - name: "Anne Condon" link: "https://researchr.org/alias/anne-condon" year: "2005" doi: "http://dx.doi.org/10.1007/11557067_28" links: doi: "http://dx.doi.org/10.1007/11557067_28" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/RastegariC05" cites: 0 citedby: 0 pages: "341-352" booktitle: "wabi" kind: "inproceedings" key: "RastegariC05" - title: "GLL Parsing" author: - name: "Elizabeth Scott" link: "https://researchr.org/alias/elizabeth-scott" - name: "Adrian Johnstone" link: "http://www.cs.rhul.ac.uk/~adrian/" year: "2010" doi: "http://dx.doi.org/10.1016/j.entcs.2010.08.041" links: doi: "http://dx.doi.org/10.1016/j.entcs.2010.08.041" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/entcs/ScottJ10" tags: - "parsing" researchr: "https://researchr.org/publication/ScottJ10-GLL" cites: 0 citedby: 0 journal: "ENTCS" volume: "253" number: "7" pages: "177-189" kind: "article" key: "ScottJ10-GLL" - title: "Generalized Parsing and Term Rewriting: Semantics Driven Disambiguation" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Steven Klusener" link: "http://www.cs.vu.nl/~steven/" - name: "Leon Moonen" link: "http://simula.no/~leonm/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2003" doi: "http://www1.elsevier.com/gej-ng/31/29/23/133/52/show/Products/notes/index.htt#008" abstract: "Generalized parsing technology provides the power and flexibility to attack real-world parsing applications. However, many programming languages have syntactical ambiguities that can only be solved using semantical analysis. In this paper we propose to apply the paradigm of term rewriting to filter ambiguities based on semantical information. We start with the definition of a representation of ambiguous derivations. Then we extend term rewriting with means to handle such derivations. Finally, we apply these tools to some real world examples, namely C and COBOL. The resulting architecture is simple and efficient as compared to semantic directed parsing. " links: doi: "http://www1.elsevier.com/gej-ng/31/29/23/133/52/show/Products/notes/index.htt#008" tags: - "programming languages" - "semantics" - "rule-based" - "program analysis" - "disambiguation" - "architecture" - "term rewriting" - "analysis" - "graph-rewriting" - "C++" - "programming paradigms" - "programming" - "rewriting" - "Cobol" - "parsing" researchr: "https://researchr.org/publication/BrandKMV03" cites: 0 citedby: 0 journal: "ENTCS" volume: "82" number: "3" pages: "575-591" kind: "article" key: "BrandKMV03" - title: "Language Prototyping. An Algebraic Specification Approach" year: "1996" month: "September" tags: - "algebraic specification" - " algebra" - "systematic-approach" researchr: "https://researchr.org/publication/DHP%3A1996" cites: 0 citedby: 2 editor: - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" volume: "5" series: "AMAST Series in Computing" address: "Singapore" publisher: "World Scientific" kind: "book" key: "DHP:1996" - title: "An Earley-Type Parsing Algorithm for Tree Adjoining Grammars" author: - name: "Yves Schabes" link: "https://researchr.org/alias/yves-schabes" - name: "Aravind K. Joshi" link: "https://researchr.org/alias/aravind-k.-joshi" year: "1988" tags: - "parsing algorithm" - "parsing" - "grammar" researchr: "https://researchr.org/publication/SchabesJ88" cites: 0 citedby: 0 pages: "258-269" booktitle: "acl" kind: "inproceedings" key: "SchabesJ88" - title: "Syntax Definition for Language Prototyping" author: - name: "Eelco Visser" link: "http://eelcovisser.org" year: "1997" month: "September" abstract: "Language prototyping is the activity of designing and testing definitions of new or existing computer languages. An important aspect of a language definition is the definition of its syntax. The subject of this thesis are new formalisms and techniques that support the development and prototyping of syntax definitions. There are four main subjects: (1) Techniques for parsing and disambiguation of context-free languages. (2) Design and implementation of a new syntax definition formalism. (3) Design of a multi-level algebraic specification formalism. (4) Study of polymorphic syntax definition. " tags: - "syntax definition" - "SDF" - "syntax definition formalism" - "disambiguation" - "testing" - "language design" - "graph-rewriting" - "algebraic specification" - " algebra" - "context-aware" - "rewriting" - "parsing" - "design" - "scannerless parsing" - "ASF+SDF" - "SGLR" researchr: "https://researchr.org/publication/Visser97" cites: 0 citedby: 6 school: "University of Amsterdam" advisor: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" kind: "phdthesis" key: "Visser97" - title: "A model of extensible language systems" author: - name: "Notley, M. G." link: "https://researchr.org/alias/notley%2C-m.-g." year: "1971" doi: "http://doi.acm.org/10.1145/800006.807977" links: doi: "http://doi.acm.org/10.1145/800006.807977" tags: - "meta-model" - "modeling language" - "language modeling" - "Meta-Environment" - "extensible language" researchr: "https://researchr.org/publication/807977" cites: 0 citedby: 0 booktitle: "Proceedings of the international symposium on Extensible languages" kind: "inproceedings" key: "807977" - title: "Parser Generation for Interactive Environments" author: - name: "Jan Rekers" link: "http://www.cwi.nl" year: "1992" month: "January" links: "url": "https://homepages.cwi.nl/~paulk/dissertations/Rekers.pdf" tags: - "GLR parsing" - "GLR" - "Meta-Environment" - "parsing" researchr: "https://researchr.org/publication/Rekers1992" cites: 0 citedby: 3 school: "University of Amsterdam" address: "Amsterdam, The Netherlands" advisor: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" kind: "phdthesis" key: "Rekers1992" - title: "An Efficient Probabilistic Context-Free Parsing Algorithm that Computes Prefix Probabilities" author: - name: "Andreas Stolcke" link: "https://researchr.org/alias/andreas-stolcke" year: "1995" tags: - "parsing algorithm" - "context-aware" - "parsing" researchr: "https://researchr.org/publication/Stolcke95" cites: 0 citedby: 0 journal: "coling" volume: "21" number: "2" pages: "165-201" kind: "article" key: "Stolcke95" - title: "Error recovery in parsing expression grammars through labeled failures and its implementation based on a parsing machine" author: - name: "Sérgio Queiroz de Medeiros" link: "https://researchr.org/alias/s%C3%A9rgio-queiroz-de-medeiros" - name: "Fabio Mascarenhas" link: "https://researchr.org/alias/fabio-mascarenhas" year: "2018" doi: "https://doi.org/10.1016/j.jvlc.2018.10.003" links: doi: "https://doi.org/10.1016/j.jvlc.2018.10.003" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/vlc/MedeirosM18" researchr: "https://researchr.org/publication/MedeirosM18-VLC" cites: 0 citedby: 0 journal: "JCL (JVLC)" volume: "49" pages: "17-28" kind: "article" key: "MedeirosM18-VLC" - title: "Blackbox: a large scale repository of novice programmers' activity" author: - name: "Neil Christopher Charles Brown" link: "https://researchr.org/alias/neil-christopher-charles-brown" - name: "Michael Kölling" link: "https://researchr.org/alias/michael-k%C3%B6lling" - name: "David McCall" link: "https://researchr.org/alias/david-mccall" - name: "Ian Utting" link: "https://researchr.org/alias/ian-utting" year: "2014" doi: "http://doi.acm.org/10.1145/2538862.2538924" links: doi: "http://doi.acm.org/10.1145/2538862.2538924" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sigcse/BrownKMU14" researchr: "https://researchr.org/publication/BrownKMU14" cites: 0 citedby: 0 pages: "223-228" booktitle: "sigcse" kind: "inproceedings" key: "BrownKMU14" - title: "Don't Panic! Better, Fewer, Syntax Errors for LR Parsers" author: - name: "Lukas Diekmann" link: "https://researchr.org/alias/lukas-diekmann" - name: "Laurence Tratt" link: "https://researchr.org/alias/laurence-tratt" year: "2019" doi: "https://doi.org/10.4230/LIPIcs.ECOOP.2020.6" links: doi: "https://doi.org/10.4230/LIPIcs.ECOOP.2020.6" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/ecoop/DiekmannT19" researchr: "https://researchr.org/publication/DiekmannT20" cites: 0 citedby: 0 booktitle: "ECOOP" kind: "inproceedings" key: "DiekmannT20" - title: "Parse Table Composition" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-00434-6_6" abstract: "Module systems, separate compilation, deployment of binary components, and dynamic linking have enjoyed wide acceptance in programming languages and systems. In contrast, the syntax of languages is usually defined in a non-modular way, cannot be compiled separately, cannot easily be combined with the syntax of other languages, and cannot be deployed as a component for later composition. Grammar formalisms that do support modules use whole program compilation. Current extensible compilers focus on source-level extensibility, which requires users to compile the compiler with a specific configuration of extensions. A compound parser needs to be generated for every combination of extensions. The generation of parse tables is expensive, which is a particular problem when the composition configuration is not fixed to enable users to choose language extensions. In this paper we introduce an algorithm for parse table composition to support separate compilation of grammars to parse table components. Parse table components can be composed (linked) efficiently at runtime, i.e. just before parsing. While the worst-case time complexity of parse table composition is exponential (like the complexity of parse table generation itself), for realistic language combination scenarios involving grammars for real languages, our parse table composition algorithm is an order of magnitude faster than computation of the parse table for the combined grammars. " links: doi: "http://dx.doi.org/10.1007/978-3-642-00434-6_6" tags: - "parsing algorithm" - "programming languages" - "deployment" - "syntax definition" - "SDF" - "composition" - "source-to-source" - "parse table composition" - "compiler" - "programming" - "language composition" - "parsing" - "extensible language" - "ASF+SDF" - "open-source" - "grammar" - "domain-specific language" researchr: "https://researchr.org/publication/BravenboerV08" cites: 0 citedby: 0 pages: "74-94" booktitle: "SLE" kind: "inproceedings" key: "BravenboerV08" - title: "A short presentation of the main features of AEPL - an extensible programming language" author: - name: "Katzenelson, J." link: "https://researchr.org/alias/katzenelson%2C-j." - name: "Milgrom, E." link: "https://researchr.org/alias/milgrom%2C-e." year: "1971" doi: "http://doi.acm.org/10.1145/800006.807975" links: doi: "http://doi.acm.org/10.1145/800006.807975" tags: - "programming languages" - "e-science" - "programming" - "extensible language" researchr: "https://researchr.org/publication/807975" cites: 0 citedby: 0 booktitle: "Proceedings of the international symposium on Extensible languages" kind: "inproceedings" key: "807975" - title: "A process-activation based parsing algorithm for the development of natural language grammars" author: - name: "Massimo Marino" link: "https://researchr.org/alias/massimo-marino" year: "1988" tags: - "parsing algorithm" - "rule-based" - "parsing" - "grammar" researchr: "https://researchr.org/publication/Marino88" cites: 0 citedby: 0 pages: "390-395" booktitle: "COLING" kind: "inproceedings" key: "Marino88" - title: "RASCAL: A Domain Specific Language for Source Code Analysis and Manipulation" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2009" doi: "http://doi.ieeecomputersociety.org/10.1109/SCAM.2009.28" abstract: "Many automated software engineering tools require tight integration of techniques for source code analysis and manipulation. State-of-the-art tools exist for both, but the domains have remained notoriously separate because different computational paradigms fit each domain best. This impedance mismatch hampers the development of new solutions because the desired functionality and scalability can only be achieved by repeated and ad hoc integration of different techniques. Rascal is a domain-specific language that takes away most of this boilerplate by integrating source code analysis and manipulation at the conceptual, syntactic, semantic and technical level. We give an overview of the language and assess its merits by implementing a complex refactoring." links: doi: "http://doi.ieeecomputersociety.org/10.1109/SCAM.2009.28" tags: - "refactoring" - "language engineering" - "software language engineering" - "points-to analysis" - "domain analysis" - "analysis" - "source-to-source" - "software engineering" - "open-source" - "domain-specific language" researchr: "https://researchr.org/publication/KlintSV09" cites: 0 citedby: 1 pages: "168-177" booktitle: "SCAM" kind: "inproceedings" key: "KlintSV09" - title: "Red Shift: procedural shift-reduce parsing (vision paper)" author: - name: "Nicolas Laurent" link: "https://researchr.org/alias/nicolas-laurent" year: "2017" doi: "http://doi.acm.org/10.1145/3136014.3136036" links: doi: "http://doi.acm.org/10.1145/3136014.3136036" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/Laurent17" researchr: "https://researchr.org/publication/Laurent17" cites: 0 citedby: 0 pages: "38-42" booktitle: "SLE" kind: "inproceedings" key: "Laurent17" - title: "Repleo: a syntax-safe template engine" author: - name: "Jeroen Arnoldus" link: "http://www.repleo.nl/" - name: "Jeanot Bijpost" link: "https://researchr.org/alias/jeanot-bijpost" - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" year: "2007" doi: "http://doi.acm.org/10.1145/1289971.1289977" abstract: "Templates are a very common solution to generate code. They are used for different tasks like rendering webpages, creating Java Beans and so on. Most template systems have no notion of the object language and just generate text. The drawback of this approach is the possibility to generate syntactical incorrect code. This can lead to all kinds of annoying errors. In this paper we present an approach for a syntax safe template engine. Syntax safety guarantees that the generated code can be correctly parsed. To ensure this we use the object language grammar to evaluate the template." links: doi: "http://doi.acm.org/10.1145/1289971.1289977" tags: - "Java" - "template engine" - "Meta-Environment" - "parsing" - "systematic-approach" - "meta-objects" - "grammar" researchr: "https://researchr.org/publication/ArnoldusBB07" cites: 0 citedby: 1 pages: "25-32" booktitle: "GPCE" kind: "inproceedings" key: "ArnoldusBB07" - title: "A Modification of the Earley-Shieber Algorithm for Direct Parsing of ID/LP Grammars" author: - name: "James Kilbury" link: "https://researchr.org/alias/james-kilbury" year: "1984" tags: - "parsing algorithm" - "parsing" - "grammar" researchr: "https://researchr.org/publication/Kilbury84" cites: 0 citedby: 0 pages: "39-48" booktitle: "ki" kind: "inproceedings" key: "Kilbury84" - title: "A Polynomial-Time Parsing Algorithm for K-Depth Languages" author: - name: "Alessandra Cherubini" link: "https://researchr.org/alias/alessandra-cherubini" - name: "Pierluigi San Pietro" link: "https://researchr.org/alias/pierluigi-san-pietro" year: "1996" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/CherubiniP96" cites: 0 citedby: 0 journal: "jcss" volume: "52" number: "1" pages: "61-79" kind: "article" key: "CherubiniP96" - title: "XAspects: an extensible system for domain-specific aspect languages" author: - name: "Shonle, Macneil" link: "https://researchr.org/alias/shonle%2C-macneil" - name: "Lieberherr, Karl" link: "https://researchr.org/alias/lieberherr%2C-karl" - name: "Shah, Ankit" link: "https://researchr.org/alias/shah%2C-ankit" year: "2003" doi: "http://doi.acm.org/10.1145/949344.949349" links: doi: "http://doi.acm.org/10.1145/949344.949349" tags: - "extensible language" - "domain-specific language" researchr: "https://researchr.org/publication/949349" cites: 0 citedby: 0 booktitle: "OOPSLA '03: Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications" kind: "inproceedings" key: "949349" - title: "Parsing the Wall Street Journal with the Inside-Outside Algorithm" author: - name: "Yves Schabes" link: "https://researchr.org/alias/yves-schabes" - name: "Michal Roth" link: "https://researchr.org/alias/michal-roth" - name: "Randy Osborne" link: "https://researchr.org/alias/randy-osborne" year: "1993" doi: "http://acl.ldc.upenn.edu/E/E93/E93-1040.pdf" links: doi: "http://acl.ldc.upenn.edu/E/E93/E93-1040.pdf" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/SchabesRO93" cites: 0 citedby: 0 pages: "341-347" booktitle: "eacl" kind: "inproceedings" key: "SchabesRO93" - title: "Evaluating and comparing language workbenches: Existing results and benchmarks for the future" author: - name: "Sebastian Erdweg" link: "http://www.informatik.uni-marburg.de/~seba/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Markus Völter" link: "http://www.voelter.de/" - name: "Laurence Tratt" link: "https://researchr.org/alias/laurence-tratt" - name: "Remi Bosman" link: "https://researchr.org/alias/remi-bosman" - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" - name: "Albert Gerritsen" link: "https://researchr.org/alias/albert-gerritsen" - name: "Angelo Hulshout" link: "https://researchr.org/alias/angelo-hulshout" - name: "Steven Kelly" link: "http://www.metacase.com/stevek.html" - name: "Alex Loh" link: "https://researchr.org/alias/alex-loh" - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" - name: "Pedro J. Molina" link: "https://researchr.org/alias/pedro-j.-molina" - name: "Martin Palatnik" link: "https://researchr.org/alias/martin-palatnik" - name: "Risto Pohjonen" link: "https://researchr.org/alias/risto-pohjonen" - name: "Eugen Schindler" link: "https://researchr.org/alias/eugen-schindler" - name: "Klemens Schindler" link: "https://researchr.org/alias/klemens-schindler" - name: "Riccardo Solmi" link: "https://researchr.org/alias/riccardo-solmi" - name: "Vlad A. Vergu" link: "https://researchr.org/alias/vlad-a.-vergu" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Kevin van der Vlist" link: "https://researchr.org/alias/kevin-van-der-vlist" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Jimi van der Woning" link: "https://researchr.org/alias/jimi-van-der-woning" year: "2015" doi: "http://dx.doi.org/10.1016/j.cl.2015.08.007" abstract: "Language workbenches are environments for simplifying the creation and use of computer languages. The annual Language Workbench Challenge (LWC) was launched in 2011 to allow the many academic and industrial researchers in this area an opportunity to quantitatively and qualitatively compare their approaches. We first describe all four LWCs to date, before focussing on the approaches used, and results generated, during the third LWC. We give various empirical data for ten approaches from the third LWC. We present a generic feature model within which the approaches can be understood and contrasted. Finally, based on our experiences of the existing LWCs, we propose a number of benchmark problems for future LWCs." links: doi: "http://dx.doi.org/10.1016/j.cl.2015.08.007" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/cl/ErdwegSVTBCGH0L15" researchr: "https://researchr.org/publication/ErdwegSVTBCGH0L15" cites: 0 citedby: 0 journal: "Comp. Lang., Syst. \\& Struct." volume: "44" pages: "24-47" kind: "article" key: "ErdwegSVTBCGH0L15" - title: "Stratego/XT 0.17. A language and toolset for program transformation" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Rob Vermaas" link: "https://researchr.org/profile/robvermaas/publications" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1016/j.scico.2007.11.003" abstract: "Stratego/XT is a language and toolset for program transformation. The Stratego language provides rewrite rules for expressing basic transformations, programmable rewriting strategies for controlling the application of rules, concrete syntax for expressing the patterns of rules in the syntax of the object language, and dynamic rewrite rules for expressing context-sensitive transformations, thus supporting the development of transformation components at a high level of abstraction. The XT toolset offers a collection of flexible, reusable transformation components, and tools for generating such components from declarative specifications. Complete program transformation systems are composed from these components." links: doi: "http://dx.doi.org/10.1016/j.scico.2007.11.003" "technical report (pdf)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-011.pdf" "stratego/xt": "http://strategoxt.org" tags: - "control systems" - "programming languages" - "object-oriented programming" - "concrete object syntax" - "reusable components" - "rule-based" - "completeness" - "meta programming" - "pattern language" - "graph transformation" - "Stratego/XT" - "transformation language" - "reuse" - "graph-rewriting" - "rules" - "transformation system" - "DSL" - "programming" - "subject-oriented programming" - "context-aware" - "abstraction" - "Meta-Environment" - "rewriting" - "rewriting strategies" - "feature-oriented programming" - "concrete syntax" - "meta-objects" - "transformation" - "Stratego" - "program transformation" researchr: "https://researchr.org/publication/BravenboerKVV08" cites: 0 citedby: 7 journal: "SCP" volume: "72" number: "1-2" pages: "52-70" kind: "article" key: "BravenboerKVV08" - title: "A tabular parsing algorithm with error recovery" author: - name: "Frank Hadlock" link: "https://researchr.org/alias/frank-hadlock" year: "1995" doi: "http://doi.acm.org/10.1145/1122018.1122074" links: doi: "http://doi.acm.org/10.1145/1122018.1122074" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/Hadlock95" cites: 0 citedby: 0 pages: "275-276" booktitle: "ACMse" kind: "inproceedings" key: "Hadlock95" - title: "Scannerless NSLR(1) Parsing of Programming Languages" author: - name: "Daniel J. Salomon" link: "https://researchr.org/alias/daniel-j.-salomon" - name: "Gordon V. Cormack" link: "https://researchr.org/alias/gordon-v.-cormack" year: "1989" tags: - "programming languages" - "programming" - "parsing" - "scannerless parsing" researchr: "https://researchr.org/publication/SalomonC89" cites: 0 citedby: 0 pages: "170-178" booktitle: "PLDI" kind: "inproceedings" key: "SalomonC89" - title: "Average profile and limiting distribution for a phrase size in the Lempel-Ziv parsing algorithm" author: - name: "Guy Louchard" link: "https://researchr.org/alias/guy-louchard" - name: "Wojciech Szpankowski" link: "https://researchr.org/alias/wojciech-szpankowski" year: "1995" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/LouchardS95" cites: 0 citedby: 0 journal: "TIT" volume: "41" number: "2" pages: "478-488" kind: "article" key: "LouchardS95" - title: "Breaking parsers: mutation-based generation of programs with guaranteed syntax errors" author: - name: "Moeketsi Raselimo" link: "https://researchr.org/alias/moeketsi-raselimo" - name: "Jan Taljaard" link: "https://researchr.org/alias/jan-taljaard" - name: "Bernd Fischer" link: "https://researchr.org/alias/bernd-fischer" year: "2019" doi: "https://doi.org/10.1145/3357766.3359542" links: doi: "https://doi.org/10.1145/3357766.3359542" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/RaselimoTF19" researchr: "https://researchr.org/publication/RaselimoTF19" cites: 0 citedby: 0 pages: "83-87" booktitle: "SLE" kind: "inproceedings" key: "RaselimoTF19" - title: "Locating and Parsing Bibliographical References in HTML Medical Articles" author: - name: "Jie Zou" link: "https://researchr.org/alias/jie-zou" - name: "Daniel X. Le" link: "https://researchr.org/alias/daniel-x.-le" - name: "George R. Thoma" link: "https://researchr.org/alias/george-r.-thoma" year: "2009" abstract: "Bibliographical references that appear in journal articles can provide valuable hints for subsequent information extraction. We describe our statistical machine learning algorithms for locating and parsing such references from HTML medical journal articles. Reference locating identifies the reference sections and then decomposes them into individual references. We formulate reference locating as a two-class classification problem based on text and geometric features. An evaluation conducted on 500 articles from 100 journals achieves near perfect precision and recall rates for locating references. Reference parsing is to identify components, e.g. author, article title, journal title etc., from each individual reference. We implement and compare two reference parsing algorithms. One relies on sequence statistics and trains a Conditional Random Field. The other focuses on local feature statistics and trains a Support Vector Machine to classify each individual word, and then a search algorithm systematically corrects low confidence labels if the label sequence violates a set of predefined rules. The overall performance of these two reference parsing algorithms is about the same: above 99% accuracy at the word level, and over 97% accuracy at the chunk level." tags: - "parsing algorithm" - "rule-based" - "classification" - "bibliography" - "machine learning" - "rules" - "search" - "parsing" - "systematic-approach" researchr: "https://researchr.org/publication/Zou2009" cites: 0 citedby: 0 kind: "inproceedings" key: "Zou2009" - title: "An Efficient Extension of Earley s Algorithm for Parsing Multidimensional Structures" author: - name: "Xu Hongxia" link: "https://researchr.org/alias/xu-hongxia" - name: "Zhang Li" link: "https://researchr.org/alias/zhang-li" year: "2008" doi: "http://dx.doi.org/10.1109/CSSE.2008.1392" links: doi: "http://dx.doi.org/10.1109/CSSE.2008.1392" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/HongxiaL08" cites: 0 citedby: 0 pages: "780-783" booktitle: "csse" kind: "inproceedings" key: "HongxiaL08" - title: "A Polynomial Parsing Algorithm for the Topological Model: Synchronizing Constituent and Dependency Grammars, Illustrated by German Word Order Phenomena" author: - name: "Kim Gerdes" link: "https://researchr.org/alias/kim-gerdes" - name: "Sylvain Kahane" link: "https://researchr.org/alias/sylvain-kahane" year: "2006" doi: "http://acl.ldc.upenn.edu/P/P06/P06-1138.pdf" links: doi: "http://acl.ldc.upenn.edu/P/P06/P06-1138.pdf" tags: - "parsing algorithm" - "synchronization" - "parsing" - "grammar" researchr: "https://researchr.org/publication/GerdesK06" cites: 0 citedby: 0 booktitle: "acl" kind: "inproceedings" key: "GerdesK06" - title: "On-Line Longest Fragment First Parsing Algorithm" author: - name: "Hideo Nagumo" link: "https://researchr.org/alias/hideo-nagumo" - name: "Mi Lu" link: "https://researchr.org/alias/mi-lu" - name: "Karan L. Watson" link: "https://researchr.org/alias/karan-l.-watson" year: "1996" doi: "http://dx.doi.org/10.1016/0020-0190(96)00066-X" links: doi: "http://dx.doi.org/10.1016/0020-0190(96)00066-X" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/NagumoLW96" cites: 0 citedby: 0 journal: "ipl" volume: "59" number: "2" pages: "91-96" kind: "article" key: "NagumoLW96" - title: "Babel, an application of extensible compilers" author: - name: "Scowen, R. S." link: "https://researchr.org/alias/scowen%2C-r.-s." year: "1971" doi: "http://doi.acm.org/10.1145/800006.807971" links: doi: "http://doi.acm.org/10.1145/800006.807971" tags: - "compiler" researchr: "https://researchr.org/publication/807971" cites: 0 citedby: 0 booktitle: "Proceedings of the international symposium on Extensible languages" kind: "inproceedings" key: "807971" - title: "Lazy functional incremental parsing" author: - name: "Jean-Philippe Bernardy" link: "https://researchr.org/alias/jean-philippe-bernardy" year: "2009" doi: "http://doi.acm.org/10.1145/1596638.1596645" links: doi: "http://doi.acm.org/10.1145/1596638.1596645" tags: - "laziness" - "Haskell" - "parsing" - "incremental" researchr: "https://researchr.org/publication/Bernardy09" cites: 0 citedby: 0 pages: "49-60" booktitle: "haskell" kind: "inproceedings" key: "Bernardy09" - title: "Recognition is not parsing - SPPF-style parsing from cubic recognisers" author: - name: "Elizabeth Scott" link: "https://researchr.org/alias/elizabeth-scott" - name: "Adrian Johnstone" link: "http://www.cs.rhul.ac.uk/~adrian/" year: "2010" doi: "http://dx.doi.org/10.1016/j.scico.2009.07.001" links: doi: "http://dx.doi.org/10.1016/j.scico.2009.07.001" tags: - "parsing" researchr: "https://researchr.org/publication/ScottJ10" cites: 0 citedby: 0 journal: "SCP" volume: "75" number: "1-2" pages: "55-70" kind: "article" key: "ScottJ10" - title: "A New Parallel Algorithm for Generalized LR Parsing" author: - name: "Hiroaki Numazaki" link: "https://researchr.org/alias/hiroaki-numazaki" - name: "Hozumi Tanaka" link: "https://researchr.org/alias/hozumi-tanaka" year: "1990" doi: "http://acl.ldc.upenn.edu/C/C90/C90-2053.pdf" links: doi: "http://acl.ldc.upenn.edu/C/C90/C90-2053.pdf" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/NumazakiT90" cites: 0 citedby: 0 pages: "305-310" booktitle: "COLING" kind: "inproceedings" key: "NumazakiT90" - title: "A context sensitive tabular parsing algorithm" author: - name: "Frank Hadlock" link: "https://researchr.org/alias/frank-hadlock" year: "1990" doi: "http://doi.acm.org/10.1145/98949.99012" links: doi: "http://doi.acm.org/10.1145/98949.99012" tags: - "parsing algorithm" - "context-aware" - "parsing" researchr: "https://researchr.org/publication/Hadlock90" cites: 0 citedby: 0 pages: "111-117" booktitle: "ACMse" kind: "inproceedings" key: "Hadlock90" - title: "A Chart-Parsing Algorithm for Efficient Semantic Analysis" author: - name: "Pascal Vaillant" link: "https://researchr.org/alias/pascal-vaillant" year: "2002" doi: "http://acl.ldc.upenn.edu/C/C02/C02-1023.pdf" links: doi: "http://acl.ldc.upenn.edu/C/C02/C02-1023.pdf" tags: - "parsing algorithm" - "analysis" - "parsing" - "Pascal" researchr: "https://researchr.org/publication/Vaillant02-0" cites: 0 citedby: 0 booktitle: "coling" kind: "inproceedings" key: "Vaillant02-0" - title: "Fast Stochastic Context-Free Parsing: A Stochastic Version of the Valiant Algorithm" author: - name: "José-Miguel Benedí" link: "https://researchr.org/alias/jos%C3%A9-miguel-bened%C3%AD" - name: "Joan-Andreu Sánchez" link: "https://researchr.org/alias/joan-andreu-s%C3%A1nchez" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-72847-4_12" links: doi: "http://dx.doi.org/10.1007/978-3-540-72847-4_12" tags: - "parsing algorithm" - "context-aware" - "parsing" researchr: "https://researchr.org/publication/BenediS07" cites: 0 citedby: 0 pages: "80-88" booktitle: "ibpria" kind: "inproceedings" key: "BenediS07" - title: "Domain-specific languages and program generation with Meta-AspectJ" author: - name: "Shan Shan Huang" link: "http://www.freeflygeek.com/" - name: "David Zook" link: "https://researchr.org/alias/david-zook" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2008" doi: "http://doi.acm.org/10.1145/1416563.1416566" abstract: "Meta-AspectJ (MAJ) is a language for generating AspectJ programs using code templates. MAJ itself is an extension of Java, so users can interleave arbitrary Java code with AspectJ code templates. MAJ is a structured metaprogramming tool: a well-typed generator implies a syntactically correct generated program. MAJ promotes a methodology that combines aspect-oriented and generative programming. A valuable application is in implementing small domain-specific language extensions as generators using unobtrusive annotations for syntax extension and AspectJ as a back-end. The advantages of this approach are twofold. First, the generator integrates into an existing software application much as a regular API or library, instead of as a language extension. Second, a mature language implementation is easy to achieve with little effort since AspectJ takes care of the low-level issues of interfacing with the base Java language. In addition to its practical value, MAJ offers valuable insights to metaprogramming tool designers. It is a mature metaprogramming tool for AspectJ (and, by extension, Java): a lot of emphasis has been placed on context-sensitive parsing and error reporting. As a result, MAJ minimizes the number of metaprogramming (quote/unquote) operators and uses type inference to reduce the need to remember type names for syntactic entities." links: doi: "http://doi.acm.org/10.1145/1416563.1416566" tags: - "generative programming" - "programming languages" - "AspectJ" - "object-oriented programming" - "type inference" - "rule-based" - "Java" - "meta programming" - "meta-model" - "little language" - "code generation" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "context-aware" - "Meta-Environment" - "parsing" - "systematic-approach" - "feature-oriented programming" - "meta-objects" - "domain-specific language" researchr: "https://researchr.org/publication/HuangZS08" cites: 0 citedby: 0 journal: "TOSEM" volume: "18" number: "2" kind: "article" key: "HuangZS08" - title: "On the complexity and performance of parsing with derivatives" author: - name: "Michael D. Adams" link: "https://researchr.org/alias/michael-d.-adams" - name: "Celeste Hollenbeck" link: "https://researchr.org/alias/celeste-hollenbeck" - name: "Matthew Might" link: "https://researchr.org/alias/matthew-might" year: "2016" doi: "http://doi.acm.org/10.1145/2908080.2908128" links: doi: "http://doi.acm.org/10.1145/2908080.2908128" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/pldi/0001HM16" researchr: "https://researchr.org/publication/AdamsHM16" cites: 0 citedby: 0 pages: "224-236" booktitle: "PLDI" kind: "inproceedings" key: "AdamsHM16" - title: "Active LeZi: An Incremental Parsing Algorithm for Sequential Prediction" author: - name: "Karthik Gopalratnam" link: "https://researchr.org/alias/karthik-gopalratnam" - name: "Diane J. Cook" link: "https://researchr.org/alias/diane-j.-cook" year: "2003" tags: - "parsing algorithm" - "parsing" - "incremental" researchr: "https://researchr.org/publication/GopalratnamC03" cites: 0 citedby: 0 pages: "38-42" booktitle: "flairs" kind: "inproceedings" key: "GopalratnamC03" - title: "Towards Zero-Overhead Disambiguation of Deep Priority Conflicts" author: - name: "Luis Eduardo de Souza Amorim" link: "https://www.linkedin.com/profile/view?id=136481548" - name: "Michael J. Steindorfer" link: "http://michael.steindorfer.name" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2018" doi: "https://doi.org/10.22152/programming-journal.org/2018/2/13" abstract: "Context Context-free grammars are widely used for language prototyping and implementation. They allow formalizing the syntax of domain-specific or general-purpose programming languages concisely and declaratively. However, the natural and concise way of writing a context-free grammar is often ambiguous. Therefore, grammar formalisms support extensions in the form of declarative disambiguation rules to specify operator precedence and associativity, solving ambiguities that are caused by the subset of the grammar that corresponds to expressions. Inquiry Implementing support for declarative disambiguation within a parser typically comes with one or more of the following limitations in practice: a lack of parsing performance, or a lack of modularity (i.e., disallowing the composition of grammar fragments of potentially different languages). The latter subject is generally addressed by scannerless generalized parsers. We aim to equip scannerless generalized parsers with novel disambiguation methods that are inherently performant, without compromising the concerns of modularity and language composition. Approach In this paper, we present a novel low-overhead implementation technique for disambiguating deep associativity and priority conflicts in scannerless generalized parsers with lightweight data-dependency. Knowledge Ambiguities with respect to operator precedence and associativity arise from combining the various operators of a language. While shallow conflicts can be resolved efficiently by one-level tree patterns, deep conflicts require more elaborate techniques, because they can occur arbitrarily nested in a tree. Current state-of-the-art approaches to solving deep priority conflicts come with a severe performance overhead. Grounding We evaluated our new approach against state-of-the-art declarative disambiguation mechanisms. By parsing a corpus of popular open-source repositories written in Java and OCaml, we found that our approach yields speedups of up to 1.73x over a grammar rewriting technique when parsing programs with deep priority conflicts—with a modest overhead of 1–2 % when parsing programs without deep conflicts. Importance A recent empirical study shows that deep priority conflicts are indeed wide-spread in real-world programs. The study shows that in a corpus of popular OCaml projects on Github, up to 17 % of the source files contain deep priority conflicts. However, there is no solution in the literature that addresses efficient disambiguation of deep priority conflicts, with support for modular and composable syntax definitions." links: doi: "https://doi.org/10.22152/programming-journal.org/2018/2/13" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/programming/AmorimSV18" "pdf": "https://arxiv.org/pdf/1803.10215v1" researchr: "https://researchr.org/publication/AmorimSV18" cites: 0 citedby: 0 journal: "Programming" volume: "2" number: "3" pages: "13" kind: "article" key: "AmorimSV18" - title: "The hierarchical language system" author: - name: "Terashima, Nobuyoshi" link: "https://researchr.org/alias/terashima%2C-nobuyoshi" year: "1977" doi: "http://doi.acm.org/10.1145/954604.954613" links: doi: "http://doi.acm.org/10.1145/954604.954613" researchr: "https://researchr.org/publication/954613" cites: 0 citedby: 0 journal: "SIGPLAN Not." volume: "12" number: "9" kind: "article" key: "954613" - title: "Library-based model-driven software development with SugarJ" author: - name: "Sebastian Erdweg" link: "http://www.informatik.uni-marburg.de/~seba/" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Tillmann Rendel" link: "http://www.informatik.uni-marburg.de/~rendel/" - name: "Christian Kästner" link: "http://wwwiti.cs.uni-magdeburg.de/~ckaestne/" - name: "Klaus Ostermann" link: "http://www.informatik.uni-marburg.de/~kos/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2011" doi: "http://doi.acm.org/10.1145/2048147.2048156" abstract: "SugarJ is a Java-based programming language that provides extensible surface syntax, static analyses, and IDE support. SugarJ extensions are organized as libraries; conventional import statements suffice to activate and compose language extensions. We demonstrate how programmers can use SugarJ to modularly extend Java's syntax, semantic analyses and IDE support." links: doi: "http://doi.acm.org/10.1145/2048147.2048156" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/ErdwegKRKOV11" researchr: "https://researchr.org/publication/ErdwegKRKOV11-mdsd" cites: 0 citedby: 0 pages: "17-18" booktitle: "OOPSLA" kind: "inproceedings" key: "ErdwegKRKOV11-mdsd" - title: "NEM-XML: A Fast Non-extractive XML Parsing Algorithm" author: - name: "Yunsong Zhang" link: "https://researchr.org/alias/yunsong-zhang" - name: "Lei Zhao" link: "https://researchr.org/alias/lei-zhao" - name: "Jiwen Yang" link: "https://researchr.org/alias/jiwen-yang" - name: "Liying Yu" link: "https://researchr.org/alias/liying-yu" year: "2009" doi: "http://doi.ieeecomputersociety.org/10.1109/MUE.2009.66" links: doi: "http://doi.ieeecomputersociety.org/10.1109/MUE.2009.66" tags: - "parsing algorithm" - "XML" - "XML Schema" - "parsing" researchr: "https://researchr.org/publication/ZhangZYY09" cites: 0 citedby: 0 pages: "347-350" booktitle: "mue" kind: "inproceedings" key: "ZhangZYY09" - title: "Verifiable Parse Table Composition for Deterministic Parsing" author: - name: "August Schwerdfeger" link: "https://researchr.org/alias/august-schwerdfeger" - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-12107-4_15" links: doi: "http://dx.doi.org/10.1007/978-3-642-12107-4_15" tags: - "composition" - "parsing" researchr: "https://researchr.org/publication/SchwerdfegerW09-SLE" cites: 0 citedby: 1 pages: "184-203" booktitle: "SLE" kind: "inproceedings" key: "SchwerdfegerW09-SLE" - title: "Reliable and automatic composition of language extensions to C: the ableC extensible language framework" author: - name: "Ted Kaminski" link: "https://researchr.org/alias/ted-kaminski" - name: "Lucas Kramer" link: "https://researchr.org/alias/lucas-kramer" - name: "Travis Carlson" link: "https://researchr.org/alias/travis-carlson" - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" year: "2017" doi: "http://doi.acm.org/10.1145/3138224" links: doi: "http://doi.acm.org/10.1145/3138224" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/pacmpl/KaminskiKCW17" researchr: "https://researchr.org/publication/KaminskiKCW17" cites: 0 citedby: 0 journal: "PACMPL" volume: "1" number: "OOPSLA" kind: "article" key: "KaminskiKCW17" - title: "Declarative specification of template-based textual editors" author: - name: "Tobi Vollebregt" link: "http://www.tobivollebregt.nl/" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2012" doi: "http://doi.acm.org/10.1145/2427048.2427056" abstract: "Syntax discoverability has been a crucial advantage of structure editors for new users of a language. Despite this advantage, structure editors have not been widely adopted. Based on immediate parsing and analyses, modern textual code editors are also increasingly syntax-aware: structure and textual editors are converging into a new editing paradigm that combines text and templates. Current text-based language workbenches require redundant specification of the ingredients for a template-based editor, which is detrimental to the quality of syntactic completion, as consistency and completeness of the definition cannot be guaranteed. In this paper we describe the design and implementation of a specification language for syntax definition based on templates. It unifies the specification of parsers, unparsers and template-based editors. We evaluate the template language by application to two domain-specific languages used for tax benefits and mobile applications. " links: doi: "http://doi.acm.org/10.1145/2427048.2427056" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/ldta/VollebregtKV12" researchr: "https://researchr.org/publication/VollebregtKV12" cites: 0 citedby: 0 pages: "1-7" booktitle: "LDTA" kind: "inproceedings" key: "VollebregtKV12" - title: "Meta-programming with Concrete Object Syntax" author: - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2002" doi: "https://doi.org/10.1007/3-540-45821-2_19" abstract: "Meta programs manipulate structured representations, i.e., abstract syntax trees, of programs. The conceptual distance between the concrete syntax meta-programmers use to reason about programs and the notation for abstract syntax manipulation provided by general purpose (meta-) programming languages is too great for many applications. In this paper it is shown how the syntax definition formalism SDF can be employed to fit any meta-programming language with concrete syntax notation for composing and analyzing object programs. As a case study, the addition of concrete syntax to the program transformation language Stratego is presented. The approach is then generalized to arbitrary meta-languages. " links: doi: "https://doi.org/10.1007/3-540-45821-2_19" tags: - "programming languages" - "model-to-model transformation" - "object-oriented programming" - "concrete object syntax" - "syntax definition" - "meta programming" - "case study" - "SDF" - "meta-model" - "abstract syntax" - "Stratego/XT" - "transformation language" - "source-to-source" - "model transformation" - "programming" - "subject-oriented programming" - "Meta-Environment" - "parsing" - "scannerless parsing" - "systematic-approach" - "ASF+SDF" - "feature-oriented programming" - "concrete syntax" - "meta-objects" - "transformation" - "Stratego" - "program transformation" researchr: "https://researchr.org/publication/Visser02" cites: 23 citedby: 6 pages: "299-315" booktitle: "GPCE" kind: "inproceedings" key: "Visser02" - title: "Code Generation by Model Transformation" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-69927-9_13" abstract: "The realization of model-driven software development requires effective techniques for implementing code generators. In this paper, we present a case study of code generation by model transformation with Stratego, a high-level transformation language based on the paradigm of rewrite rules with programmable strategies that integrates model-to-model, model-to-code, and code-to-code transformations. The use of concrete object syntax guarantees syntactic correctness of code patterns, and enables the subsequent transformation of generated code. The composability of strategies supports two dimensions of transformation modularity. Vertical modularity is achieved by designing a generator as a pipeline of model-to-model transformations that gradually transforms a high-level input model to an implementation. Horizontal modularity is achieved by supporting the definition of plugins which implement all aspects of a language feature. We discuss the application of these techniques in the implementation of WebDSL, a domain-specific language for dynamic web applications with a rich data model. " links: doi: "http://dx.doi.org/10.1007/978-3-540-69927-9_13" successor: "https://researchr.org/publication/HemelKGV10" "technical report (pdf)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-012.pdf" tags: - "programming languages" - "model-to-model transformation" - "object-oriented programming" - "WebDSL" - "concrete object syntax" - "rule-based" - "transformation engineering" - "syntax definition" - "meta programming" - "data-flow language" - "pattern language" - "case study" - "graph transformation" - "meta-model" - "modeling language" - "modeling" - "language engineering" - "transformation language" - "software language engineering" - "language modeling" - "web engineering" - "data-flow programming" - "model-driven development" - "data-flow" - "source-to-source" - "graph-rewriting" - "software engineering" - "rules" - "model-driven engineering" - "C++" - "programming paradigms" - "code generation" - "object-role modeling" - "aspect oriented programming" - "model transformation" - "web applications" - "DSL" - "subject-oriented programming" - "Meta-Environment" - "rewriting" - "rewriting strategies" - "feature-oriented programming" - "concrete syntax" - "open-source" - "meta-objects" - "transformation" - "Stratego" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/HemelKV08" cites: 0 citedby: 3 pages: "183-198" booktitle: "ICMT" kind: "inproceedings" key: "HemelKV08" - title: "Pure and declarative syntax definition: paradise lost and regained" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" year: "2010" doi: "http://doi.acm.org/10.1145/1869459.1869535" abstract: "Syntax definitions are pervasive in modern software systems, and serve as the basis for language processing tools like parsers and compilers. Mainstream parser generators pose restrictions on syntax definitions that follow from their implementation algorithm. They hamper evolution, maintainability, and compositionality of syntax definitions. The pureness and declarativity of syntax definitions is lost. We analyze how these problems arise for different aspects of syntax definitions, discuss their consequences for language engineers, and show how the pure and declarative nature of syntax definitions can be regained." links: doi: "http://doi.acm.org/10.1145/1869459.1869535" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/KatsVW10" "pdf (tech report)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2010-019.pdf" tags: - "parsing algorithm" - "syntax definition" - "composition" - "software evolution" - "C++" - "compiler" - "parsing" researchr: "https://researchr.org/publication/KatsVW10" cites: 0 citedby: 1 pages: "918-932" booktitle: "OOPSLA" kind: "inproceedings" key: "KatsVW10" - title: "Generating safe template languages" author: - name: "Florian Heidenreich" link: "http://fheidenreich.de/work/" - name: "Jendrik Johannes" link: "http://jjohannes.de" - name: "Mirko Seifert" link: "http://www1.inf.tu-dresden.de/~ms72/" - name: "Christian Wende" link: "http://st.inf.tu-dresden.de" - name: "Marcel Böhme" link: "http://www.comp.nus.edu.sg/~mboehme" year: "2009" doi: "http://doi.acm.org/10.1145/1621607.1621624" links: doi: "http://doi.acm.org/10.1145/1621607.1621624" researchr: "https://researchr.org/publication/HeidenreichJSWB09" cites: 0 citedby: 0 pages: "99-108" booktitle: "GPCE" kind: "inproceedings" key: "HeidenreichJSWB09" - title: "Grammar-based whitebox fuzzing" author: - name: "Patrice Godefroid" link: "https://researchr.org/alias/patrice-godefroid" - name: "Adam Kiezun" link: "https://researchr.org/alias/adam-kiezun" - name: "Michael Y. Levin" link: "https://researchr.org/alias/michael-y.-levin" year: "2008" doi: "http://doi.acm.org/10.1145/1375581.1375607" abstract: "Whitebox fuzzing is a form of automatic dynamic test generation, based on symbolic execution and constraint solving, designed for security testing of large applications. Unfortunately, the current effectiveness of whitebox fuzzing is limited when testing applications with highly-structured inputs, such as compilers and interpreters. These applications process their inputs in stages, such as lexing, parsing and evaluation. Due to the enormous number of control paths in early processing stages, whitebox fuzzing rarely reaches parts of the application beyond those first stages. In this paper, we study how to enhance whitebox fuzzing of complex structured-input applications with a grammar-based specification of their valid inputs. We present a novel dynamic test generation algorithm where symbolic execution directly generates grammar-based constraints whose satisfiability is checked using a custom grammar-based constraint solver. We have implemented this algorithm and evaluated it on a large security-critical application, the JavaScript interpreter of Internet Explorer 7 (IE7). Results of our experiments show that grammar-based whitebox fuzzing explores deeper program paths and avoids dead-ends due to non-parsable inputs. Compared to regular whitebox fuzzing, grammar-based whitebox fuzzing increased coverage of the code generation module of the IE7 JavaScript interpreter from 53% to 81% while using three times fewer tests." links: doi: "http://doi.acm.org/10.1145/1375581.1375607" tags: - "parsing algorithm" - "JavaScript" - "rule-based" - "test coverage" - "interpreter" - "testing" - "constraints" - "code generation" - "security" - "compiler" - "parsing" - "coverage" - "grammar" researchr: "https://researchr.org/publication/GodefroidKL08" cites: 0 citedby: 0 pages: "206-215" booktitle: "PLDI" kind: "inproceedings" key: "GodefroidKL08" - title: "Interactive Disambiguation of Meta Programs with Concrete Object Syntax" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2010" doi: "http://dx.doi.org/10.1007/978-3-642-19440-5_22" abstract: "In meta-programming with concrete object syntax, meta programs can be written using the concrete syntax of manipulated programs. Quotations of concrete syntax fragments and anti-quotations for meta-level expressions and variables are used to manipulate the abstract representation of programs. These small, isolated fragments are often ambiguous and must be explicitly disambiguated with quotation tags or types, using names from the non-terminals of the object language syntax. Discoverability of these names has been an open issue, as they depend on the (grammar) implementation and are not part of the concrete syntax of a language. Based on advances in interactive development environments, we introduce interactive disambiguation to address this issue, providing real-time feedback and proposing quick fixes in case of ambiguities. " links: doi: "http://dx.doi.org/10.1007/978-3-642-19440-5_22" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/KatsKV10" tags: - "programming languages" - "object-oriented programming" - "concrete object syntax" - "rule-based" - "meta programming" - "meta-model" - "abstract syntax" - "tagging" - "disambiguation" - "model-driven development" - "source-to-source" - "C++" - "programming" - "subject-oriented programming" - "Meta-Environment" - "feature-oriented programming" - "concrete syntax" - "open-source" - "meta-objects" - "grammar" researchr: "https://researchr.org/publication/KatsKV10-SLE" cites: 0 citedby: 0 pages: "327-336" booktitle: "SLE" kind: "inproceedings" key: "KatsKV10-SLE" - title: "A Hierarchical and Multi-Model Based Algorithm for Lead Detection and News Program Narrative Parsing" author: - name: "Jin-Hau Kuo" link: "https://researchr.org/alias/jin-hau-kuo" - name: "Jen-Bin Kuo" link: "https://researchr.org/alias/jen-bin-kuo" - name: "Hsuan-Wei Chen" link: "https://researchr.org/alias/hsuan-wei-chen" - name: "Ja-Ling Wu" link: "https://researchr.org/alias/ja-ling-wu" year: "2005" doi: "http://doi.ieeecomputersociety.org/10.1109/AINA.2005.27" links: doi: "http://doi.ieeecomputersociety.org/10.1109/AINA.2005.27" tags: - "parsing algorithm" - "rule-based" - "parsing" researchr: "https://researchr.org/publication/KuoKCW05" cites: 0 citedby: 0 pages: "511-514" booktitle: "aina" kind: "inproceedings" key: "KuoKCW05" - title: "Declarative specification of indentation rules: a tooling perspective on parsing and pretty-printing layout-sensitive languages" author: - name: "Luis Eduardo de Souza Amorim" link: "https://www.linkedin.com/profile/view?id=136481548" - name: "Michael J. Steindorfer" link: "http://michael.steindorfer.name" - name: "Sebastian Erdweg" link: "http://www.informatik.uni-marburg.de/~seba/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2018" doi: "https://doi.org/10.1145/3276604.3276607" abstract: " In layout-sensitive languages, the indentation of an expression or statement can influence how a program is parsed. While some of these languages (e.g., Haskell and Python) have been widely adopted, there is little support for software language engineers in building tools for layout-sensitive languages. As a result, parsers, pretty-printers, program analyses, and refactoring tools often need to be handwritten, which decreases the maintainability and extensibility of these tools. Even state-of-the-art language workbenches have little support for layout-sensitive languages, restricting the development and prototyping of such languages. In this paper, we introduce a novel approach to declarative specification of layout-sensitive languages using layout declarations. Layout declarations are high-level specifications of indentation rules that abstract from low-level technicalities. We show how to derive an efficient layout-sensitive generalized parser and a corresponding pretty-printer automatically from a language specification with layout declarations. We validate our approach in a case-study using a syntax definition for the Haskell programming language, investigating the performance of the generated parser and the correctness of the generated pretty-printer against 22191 Haskell files. " links: doi: "https://doi.org/10.1145/3276604.3276607" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/AmorimSEV18" researchr: "https://researchr.org/publication/AmorimSEV18" cites: 0 citedby: 0 pages: "3-15" booktitle: "SLE" kind: "inproceedings" key: "AmorimSEV18" - title: "The project" author: - name: "Claus Brabrand" link: "https://researchr.org/alias/claus-brabrand" - name: "Anders Møller" link: "https://researchr.org/alias/anders-m%C3%B8ller" - name: "Michael I. Schwartzbach" link: "http://www.brics.dk/~mis/" year: "2002" doi: "http://doi.acm.org/10.1145/514183.514184" links: doi: "http://doi.acm.org/10.1145/514183.514184" researchr: "https://researchr.org/publication/BrabrandMS02" cites: 0 citedby: 1 journal: "ACM Trans. Internet Techn." volume: "2" number: "2" pages: "79-114" kind: "article" key: "BrabrandMS02" - title: "META II a syntax-oriented compiler writing language" author: - name: "Schorre, D. V." link: "https://researchr.org/alias/schorre%2C-d.-v." year: "1964" doi: "http://doi.acm.org/10.1145/800257.808896" links: doi: "http://doi.acm.org/10.1145/800257.808896" tags: - "meta-model" - "writing" - "compiler" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/808896" cites: 0 citedby: 0 booktitle: "Proceedings of the 1964 19th ACM national conference" kind: "inproceedings" key: "808896" - title: "Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2004" doi: "http://doi.acm.org/10.1145/1028976.1029007" abstract: "Application programmer's interfaces give access to domain knowledge encapsulated in class libraries without providing the appropriate notation for expressing domain composition. Since object-oriented languages are designed for extensibility and reuse, the language constructs are often sufficient for expressing domain abstractions at the semantic level. However, they do not provide the right abstractions at the syntactic level. In this paper we describe MetaBorg, a method for providing concrete syntax for domain abstractions to application programmers. The method consists of embedding domain-specific languages in a general purpose host language and assimilating the embedded domain code into the surrounding host code. Instead of extending the implementation of the host language, the assimilation phase implements domain abstractions in terms of existing APIs leaving the host language undisturbed. Indeed, MetaBorg can be considered a method for promoting APIs to the language level. The method is supported by proven and available technology, i.e. the syntax definition formalism SDF and the program transformation language and toolset Stratego/XT. We illustrate the method with applications in three domains: code generation, XML generation, and user-interface construction." links: doi: "http://doi.acm.org/10.1145/1028976.1029007" tags: - "programming languages" - "object-oriented programming" - "concrete object syntax" - "syntax definition" - "meta programming" - "assimilation" - "SDF" - "XML" - "XML Schema" - "Stratego/XT" - "transformation language" - "composition" - "MetaBorg" - "language design" - "reuse" - "code generation" - "subject-oriented programming" - "abstraction" - "Meta-Environment" - "extensible language" - "ASF+SDF" - "feature-oriented programming" - "concrete syntax" - "meta-objects" - "transformation" - "Stratego" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/BravenboerV04" cites: 51 citedby: 8 pages: "365-383" booktitle: "OOPSLA" kind: "inproceedings" key: "BravenboerV04" - title: "A recognition and parsing algorithm for arbitrary conjunctive grammars" author: - name: "Alexander Okhotin" link: "https://researchr.org/alias/alexander-okhotin" year: "2003" doi: "http://dx.doi.org/10.1016/S0304-3975(02)00853-8" links: doi: "http://dx.doi.org/10.1016/S0304-3975(02)00853-8" tags: - "parsing algorithm" - "parsing" - "grammar" researchr: "https://researchr.org/publication/Okhotin03%3A4" cites: 0 citedby: 0 journal: "TCS" volume: "302" number: "1-3" pages: "365-399" kind: "article" key: "Okhotin03:4" - title: "" year: "1998" doi: "http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.25.1364" links: doi: "http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.25.1364" researchr: "https://researchr.org/publication/deleted" cites: 0 citedby: 0 kind: "misc" key: "deleted" - title: "UniParse: A universal graph-based parsing toolkit" author: - name: "Daniel Varab" link: "https://researchr.org/alias/daniel-varab" - name: "Natalie Schluter" link: "https://researchr.org/alias/natalie-schluter" year: "2019" doi: "https://aclweb.org/anthology/W19-6149/" links: doi: "https://aclweb.org/anthology/W19-6149/" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/nodalida/VarabS19" researchr: "https://researchr.org/publication/VarabS19" cites: 0 citedby: 0 pages: "406-410" booktitle: "nodalida" kind: "inproceedings" key: "VarabS19" - title: "Concrete syntax for data objects in functional languages" author: - name: "Aasa, Annika" link: "https://researchr.org/alias/aasa%2C-annika" - name: "Petersson, Kent" link: "https://researchr.org/alias/petersson%2C-kent" - name: "Synek, Dan" link: "https://researchr.org/alias/synek%2C-dan" year: "1988" doi: "http://doi.acm.org/10.1145/62678.62688" links: doi: "http://doi.acm.org/10.1145/62678.62688" tags: - "concrete object syntax" - "data-flow language" - "data-flow" - "Meta-Environment" - "concrete syntax" - "meta-objects" researchr: "https://researchr.org/publication/62688" cites: 0 citedby: 0 booktitle: "LFP '88: Proceedings of the 1988 ACM conference on LISP and functional programming" kind: "inproceedings" key: "62688" - title: "Faster Scannerless GLR Parsing" author: - name: "Giorgios R. Economopoulos" link: "http://users.ecs.soton.ac.uk/gre/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-00722-4_10" abstract: "Analysis and renovation of large software portfolios requires syntax analysis of multiple, usually embedded, languages and this is beyond the capabilities of many standard parsing techniques. The traditional separation between lexer and parser falls short due to the limitations of tokenization based on regular expressions when handling multiple lexical grammars. In such cases scannerless parsing provides a viable solution. It uses the power of context-free grammars to be able to deal with a wide variety of issues in parsing lexical syntax. However, it comes at the price of less efficiency. The structure of tokens is obtained using a more powerful but more time and memory intensive parsing algorithm. Scannerless grammars are also more non-deterministic than their tokenized counterparts, increasing the burden on the parsing algorithm even further. In this paper we investigate the application of the Right-Nulled Generalized LR parsing algorithm (RNGLR) to scannerless parsing. We adapt the Scannerless Generalized LR parsing and filtering algorithm (SGLR) to implement the optimizations of RNGLR. We present an updated parsing and filtering algorithm, called SRNGLR, and analyze its performance in comparison to SGLR on ambiguous grammars for the programming languages C, Java, Python, SASL, and C++. Measurements show that SRNGLR is on average 33% faster than SGLR, but is 95% faster on the highly ambiguous SASL grammar. For the mainstream languages C, C++, Java and Python the average speedup is 16%. " links: doi: "http://dx.doi.org/10.1007/978-3-642-00722-4_10" tags: - "parsing algorithm" - "programming languages" - "GLR parsing" - "optimization" - "rule-based" - "Java" - "program analysis" - "lexical syntax" - "embedded software" - "scannerless" - "GLR" - "analysis" - "C++" - "programming" - "context-aware" - "program optimization" - "parsing" - "scannerless parsing" - "SGLR" - "grammar" researchr: "https://researchr.org/publication/EconomopoulosKV09" cites: 0 citedby: 0 pages: "126-141" booktitle: "CC" kind: "inproceedings" key: "EconomopoulosKV09" - title: "A new implementation of the Ziv-Lempel incremental parsing algorithm" author: - name: "Tsutomu Kawabata" link: "https://researchr.org/alias/tsutomu-kawabata" - name: "Hirosuke Yamamoto" link: "https://researchr.org/alias/hirosuke-yamamoto" year: "1991" tags: - "parsing algorithm" - "parsing" - "incremental" researchr: "https://researchr.org/publication/KawabataY91" cites: 0 citedby: 0 journal: "TIT" volume: "37" number: "5" pages: "1439" kind: "article" key: "KawabataY91" - title: "A Practical GLR Parser Generator for Software Reverse Engineering" author: - name: "Teng Geng" link: "https://researchr.org/alias/teng-geng" - name: "Fu Xu" link: "https://researchr.org/alias/fu-xu" - name: "Han-mei" link: "https://researchr.org/alias/han-mei" - name: "Wei Meng" link: "https://researchr.org/alias/wei-meng" - name: "Zhibo Chen" link: "https://researchr.org/alias/zhibo-chen" - name: "Changqing Lai" link: "https://researchr.org/alias/changqing-lai" year: "2014" doi: "http://dx.doi.org/10.4304/jnw.9.3.769-776" links: doi: "http://dx.doi.org/10.4304/jnw.9.3.769-776" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/jnw/GengXMMCL14" researchr: "https://researchr.org/publication/GengXMMCL14" cites: 0 citedby: 0 journal: "jnw" volume: "9" number: "3" pages: "769-776" kind: "article" key: "GengXMMCL14" - title: "A new parallel LR parsing algorithm" author: - name: "Kenneth J. Hendrickson" link: "https://researchr.org/alias/kenneth-j.-hendrickson" year: "1995" doi: "http://doi.acm.org/10.1145/315891.315992" links: doi: "http://doi.acm.org/10.1145/315891.315992" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/Hendrickson95" cites: 0 citedby: 0 pages: "277-281" booktitle: "SAC" kind: "inproceedings" key: "Hendrickson95" - title: "Default disambiguation for online parsers" author: - name: "Lukas Diekmann" link: "https://researchr.org/alias/lukas-diekmann" - name: "Laurence Tratt" link: "https://researchr.org/alias/laurence-tratt" year: "2019" doi: "https://doi.org/10.1145/3357766.3359530" links: doi: "https://doi.org/10.1145/3357766.3359530" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/DiekmannT19" researchr: "https://researchr.org/publication/DiekmannT19" cites: 0 citedby: 0 pages: "88-99" booktitle: "SLE" kind: "inproceedings" key: "DiekmannT19" - title: "Incremental packrat parsing" author: - name: "Patrick Dubroy" link: "https://researchr.org/alias/patrick-dubroy" - name: "Alessandro Warth" link: "https://researchr.org/alias/alessandro-warth" year: "2017" doi: "http://doi.acm.org/10.1145/3136014.3136022" links: doi: "http://doi.acm.org/10.1145/3136014.3136022" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/DubroyW17" researchr: "https://researchr.org/publication/DubroyW17" cites: 0 citedby: 0 pages: "14-25" booktitle: "SLE" kind: "inproceedings" key: "DubroyW17" - title: "An Efficient Chart-based Algorithm for Partial-Parsing of Unrestricted Texts" author: - name: "David D. McDonald" link: "https://researchr.org/alias/david-d.-mcdonald" year: "1992" doi: "http://acl.ldc.upenn.edu/A/A92/A92-1027.pdf" links: doi: "http://acl.ldc.upenn.edu/A/A92/A92-1027.pdf" tags: - "parsing algorithm" - "rule-based" - "parsing" researchr: "https://researchr.org/publication/McDonald92%3A0" cites: 0 citedby: 0 pages: "193-200" booktitle: "anlp" kind: "inproceedings" key: "McDonald92:0" - title: "An Efficient All-Parses Systolic Algorithm for General Context-Free Parsing" author: - name: "Oscar H. Ibarra" link: "https://researchr.org/alias/oscar-h.-ibarra" - name: "Michael A. Palis" link: "https://researchr.org/alias/michael-a.-palis" year: "1989" tags: - "parsing algorithm" - "context-aware" - "parsing" researchr: "https://researchr.org/publication/IbarraP89" cites: 0 citedby: 0 pages: "403-419" booktitle: "wads" kind: "inproceedings" key: "IbarraP89" - title: "Parsing Nucleic Acid Pseudoknotted Secondary Structure: Algorithm and Applications" author: - name: "Baharak Rastegari" link: "https://researchr.org/alias/baharak-rastegari" - name: "Anne Condon" link: "https://researchr.org/alias/anne-condon" year: "2007" doi: "http://dx.doi.org/10.1089/cmb.2006.0108" links: doi: "http://dx.doi.org/10.1089/cmb.2006.0108" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/RastegariC07" cites: 0 citedby: 0 journal: "jcb" volume: "14" number: "1" pages: "16-32" kind: "article" key: "RastegariC07" - title: "Composable and compilable macros:: you want it when?" author: - name: "Matthew Flatt" link: "http://www.cs.utah.edu/~mflatt/" year: "2002" doi: "http://doi.acm.org/10.1145/581478.581486" links: doi: "http://doi.acm.org/10.1145/581478.581486" tags: - "macros" - "compiler" researchr: "https://researchr.org/publication/581486" cites: 0 citedby: 0 booktitle: "ICFP '02: Proceedings of the seventh ACM SIGPLAN international conference on Functional programming" kind: "inproceedings" key: "581486" - title: "Implementing multi-stage languages using ASTs, Gensym, and reflection" author: - name: "Calcagno, Cristiano" link: "https://researchr.org/alias/calcagno%2C-cristiano" - name: "Walid Taha" link: "http://www.cs.rice.edu/~taha/" - name: "Huang, Liwen" link: "https://researchr.org/alias/huang%2C-liwen" - name: "Xavier Leroy" link: "http://pauillac.inria.fr/~xleroy/" year: "2003" tags: - "reflection" researchr: "https://researchr.org/publication/954190" cites: 0 citedby: 0 booktitle: "GPCE '03: Proceedings of the 2nd international conference on Generative programming and component engineering" kind: "inproceedings" key: "954190" - title: "Component-based LR parsing" author: - name: "Xiaoqing Wu" link: "https://researchr.org/alias/xiaoqing-wu" - name: "Barrett R. Bryant" link: "http://www.cis.uab.edu/bryant" - name: "Jeffrey G. Gray" link: "http://www.gray-area.org/" - name: "Marjan Mernik" link: "http://lpm.uni-mb.si/mernik/" year: "2010" doi: "http://dx.doi.org/10.1016/j.cl.2009.01.002" abstract: "A language implementation with proper compositionality enables a compiler developer to divide-and-conquer the complexity of building a large language by constructing a set of smaller languages. Ideally, these small language implementations should be independent of each other such that they can be designed, implemented and debugged individually, and later be reused in different applications (e.g., building domain-specific languages). However, the language composition offered by several existing parser generators resides at the grammar level, which means all the grammar modules need to be composed together and all corresponding ambiguities have to be resolved before generating a single parser for the language. This produces tight coupling between grammar modules, which harms information hiding and affects independent development of language features. To address this problem, we have developed a novel parsing algorithm that we call Component-based LR (CLR) parsing, which provides code-level compositionality for language development by producing a separate parser for each grammar component. In addition to shift and reduce actions, the algorithm extends general LR parsing by introducing switch and return actions to empower the parsing action to jump from one parser to another. Our experimental evaluation demonstrates that CLR increases the comprehensibility, reusability, changeability and independent development ability of the language implementation. Moreover, the loose coupling among parser components enables CLR to describe grammars that contain LR parsing conflicts or require ambiguous token definitions, such as island grammars and embedded languages." links: doi: "http://dx.doi.org/10.1016/j.cl.2009.01.002" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/cl/WuBGM10" tags: - "parsing algorithm" - "reusable components" - "rule-based" - "design complexity" - "composition" - "language design" - "reuse" - "information hiding" - "debugging" - "compiler" - "parsing" - "grammar" - "domain-specific language" researchr: "https://researchr.org/publication/WuBGM10" cites: 38 citedby: 0 journal: "Comp. Lang., Syst. \\& Struct." volume: "36" number: "1" pages: "16-33" kind: "article" key: "WuBGM10" - title: "An Optimal Parallel Algorithm for Arithmetic Expression Parsing" author: - name: "Weian Deng" link: "https://researchr.org/alias/weian-deng" - name: "S. Sitharama Iyengar" link: "https://researchr.org/alias/s.-sitharama-iyengar" year: "1992" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/DengI92" cites: 0 citedby: 0 pages: "212-215" booktitle: "ipps" kind: "inproceedings" key: "DengI92" - title: "Syntax error recovery in parsing expression grammars" author: - name: "Sérgio Medeiros" link: "https://researchr.org/alias/s%C3%A9rgio-medeiros" - name: "Fabio Mascarenhas" link: "https://researchr.org/alias/fabio-mascarenhas" year: "2018" doi: "http://doi.acm.org/10.1145/3167132.3167261" links: doi: "http://doi.acm.org/10.1145/3167132.3167261" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sac/MedeirosM18" researchr: "https://researchr.org/publication/MedeirosM18" cites: 0 citedby: 0 pages: "1195-1202" booktitle: "SAC" kind: "inproceedings" key: "MedeirosM18" - title: "GLL Parsing" author: - name: "Elizabeth Scott" link: "https://researchr.org/alias/elizabeth-scott" - name: "Adrian Johnstone" link: "http://www.cs.rhul.ac.uk/~adrian/" year: "2009" tags: - "parsing" researchr: "https://researchr.org/publication/sj09gll" cites: 0 citedby: 1 booktitle: "Workshop on Language Descriptions, Tools and Applications (LDTA'09)" kind: "inproceedings" key: "sj09gll" - title: "An Efficient Augmented-Context-Free Parsing Algorithm" author: - name: "Masaru Tomita" link: "https://researchr.org/alias/masaru-tomita" year: "1987" tags: - "parsing algorithm" - "context-aware" - "parsing" researchr: "https://researchr.org/publication/Tomita87" cites: 0 citedby: 0 journal: "coling" volume: "13" number: "1-2" pages: "31-46" kind: "article" key: "Tomita87" - title: "The Spoofax language workbench: rules for declarative specification of languages and IDEs" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2010" doi: "https://doi.org/10.1145/1869459.1869497" abstract: "Spoofax is a language workbench for efficient, agile development of textual domain-specific languages with state-of-the-art IDE support. Spoofax integrates language processing techniques for parser generation, meta-programming, and IDE development into a single environment. It uses concise, declarative specifications for languages and IDE services. In this paper we describe the architecture of Spoofax and introduce idioms for high-level specifications of language semantics using rewrite rules, showing how analyses can be reused for transformations, code generation, and editor services such as error marking, reference resolving, and content completion. The implementation of these services is supported by language-parametric editor service classes that can be dynamically loaded by the Eclipse IDE, allowing new languages to be developed and used side-by-side in the same Eclipse environment." links: doi: "https://doi.org/10.1145/1869459.1869497" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/KatsV10" "acm dl": "https://doi.org/10.1145/1932682.1869497" tags: - "programming languages" - "model-to-model transformation" - "workbench" - "semantics" - "rule-based" - "Eclipse" - "meta programming" - "model editor" - "graph transformation" - "meta-model" - "transformation language" - "architecture" - "reuse" - "model-driven development" - "graph-rewriting" - "rules" - "C++" - "code completion" - "code generation" - "model transformation" - "programming" - "language workbench" - "Spoofax" - "Meta-Environment" - "rewriting" - "parsing" - "meta-objects" - "transformation" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/KatsV10" cites: 0 citedby: 2 pages: "444-463" booktitle: "OOPSLA" kind: "inproceedings" key: "KatsV10" - title: "Deep priority conflicts in the wild: a pilot study" author: - name: "Luis Eduardo de Souza Amorim" link: "https://www.linkedin.com/profile/view?id=136481548" - name: "Michael J. Steindorfer" link: "http://michael.steindorfer.name" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2017" doi: "http://doi.acm.org/10.1145/3136014.3136020" abstract: " Context-free grammars are suitable for formalizing the syntax of programming languages concisely and declaratively. Thus, such grammars are often found in reference manuals of programming languages, and used in language workbenches for language prototyping. However, the natural and concise way of writing a context-free grammar is often ambiguous. Safe and complete declarative disambiguation of operator precedence and associativity conflicts guarantees that all ambiguities arising from combining the operators of the language are resolved. Ambiguities can occur due to shallow conflicts, which can be captured by one-level tree patterns, and deep conflicts, which require more elaborate techniques. Approaches to solve deep priority conflicts include grammar transformations, which may result in large unambiguous grammars, or may require adapted parser technologies to include data-dependency tracking at parse time. In this paper we study deep priority conflicts \"in the wild\". We investigate the efficiency of grammar transformations to solve deep priority conflicts by using a lazy parse table generation technique. On top of lazily-generated parse tables, we define metrics, aiming to answer how often deep priority conflicts occur in real-world programs and to what extent programmers explicitly disambiguate programs themselves. By applying our metrics to a small corpus of popular open-source repositories we found that in OCaml, up to 17% of the source files contain deep priority conflicts. " links: doi: "http://doi.acm.org/10.1145/3136014.3136020" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/AmorimSV17" researchr: "https://researchr.org/publication/AmorimSV17" cites: 0 citedby: 0 pages: "55-66" booktitle: "SLE" kind: "inproceedings" key: "AmorimSV17" - title: "A New Top-Down Parsing Algorithm for Left-Recursive DCGs" author: - name: "Mark-Jan Nederhof" link: "https://researchr.org/alias/mark-jan-nederhof" year: "1993" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/Nederhof93" cites: 0 citedby: 0 pages: "108-122" booktitle: "plilp" kind: "inproceedings" key: "Nederhof93" - title: "Faster general parsing through context-free memoization" author: - name: "Grzegorz Herman" link: "https://researchr.org/alias/grzegorz-herman" year: "2020" doi: "https://doi.org/10.1145/3385412.3386032" links: doi: "https://doi.org/10.1145/3385412.3386032" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/pldi/Herman20" researchr: "https://researchr.org/publication/Herman20" cites: 0 citedby: 0 pages: "1022-1035" booktitle: "PLDI" kind: "inproceedings" key: "Herman20" - title: "An Efficient Parsing Algorithm for Tree Adjoining Grammars" author: - name: "Karin Harbusch" link: "https://researchr.org/alias/karin-harbusch" year: "1990" tags: - "parsing algorithm" - "parsing" - "grammar" researchr: "https://researchr.org/publication/Harbusch90" cites: 0 citedby: 0 pages: "284-291" booktitle: "acl" kind: "inproceedings" key: "Harbusch90" - title: "Designing Syntax Embeddings and Assimilations for Language Libraries" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-69073-3_5" abstract: "Language libraries extend regular libraries with domain-specific notation. More precisely, a language library is a combination of a domain-specific language embedded in the general-purpose host language, a regular library implementing the underlying functionality, and an assimilation transformation that maps embedded DSL fragments to host language code. While the basic architecture for realizing language libraries is the same for all applications, there are many design choices to be made in the design of a particular combination of library, guest language syntax, host language, and assimilation. In this paper, we give an overview of the design space for syntax embeddings and assimilations for the realization of language libraries. " links: doi: "http://dx.doi.org/10.1007/978-3-540-69073-3_5" technicalreport: "https://researchr.org/publication/TUD-SERG-2008-042" tags: - "syntax embedding" - "syntax definition" - "assimilation" - "transformation language" - "architecture" - "language design" - "DSL" - "language libraries" - "design" - "transformation" - "domain-specific language" researchr: "https://researchr.org/publication/BravenboerV07" cites: 24 citedby: 1 pages: "34-46" booktitle: "MoDELS" kind: "inproceedings" key: "BravenboerV07" - title: "Improved GLR Parsing Algorithm" author: - name: "Miao Li" link: "https://researchr.org/alias/miao-li" - name: "ZhiGuo Wei" link: "https://researchr.org/alias/zhiguo-wei" - name: "Jian Zhang" link: "https://researchr.org/alias/jian-zhang" - name: "ZeLin Hu" link: "https://researchr.org/alias/zelin-hu" year: "2005" doi: "http://dx.doi.org/10.1007/11538356_18" links: doi: "http://dx.doi.org/10.1007/11538356_18" tags: - "parsing algorithm" - "GLR parsing" - "GLR" - "parsing" researchr: "https://researchr.org/publication/LiWZH05" cites: 0 citedby: 0 pages: "169-178" booktitle: "icic" kind: "inproceedings" key: "LiWZH05" - title: "A graded bibliography on macro systems and extensible languages" author: - name: "Metzner, John R." link: "https://researchr.org/alias/metzner%2C-john-r." year: "1979" doi: "http://doi.acm.org/10.1145/954051.954056" links: doi: "http://doi.acm.org/10.1145/954051.954056" tags: - "bibliography" - "macros" - "extensible language" researchr: "https://researchr.org/publication/954056" cites: 0 citedby: 0 journal: "SIGPLAN Not." volume: "14" number: "1" kind: "article" key: "954056" - title: "Barista: An implementation framework for enabling new tools, interaction techniques and views in code editors" author: - name: "Andrew Jensen Ko" link: "https://researchr.org/alias/andrew-jensen-ko" - name: "Brad A. Myers" link: "http://www.cs.cmu.edu/~bam/" year: "2006" doi: "http://doi.acm.org/10.1145/1124772.1124831" abstract: " Recent advances in programming environments have focused on improving programmer productivity by utilizing the inherent structure in computer programs. However, because these environments represent code as plain text, it is difficult and sometimes impossible to embed interactive tools, annotations, and alternative views in the code itself. Barista is an implementation framework that enables the creation of such user interfaces by simplifying the implementation of editors that represent code internally as an abstract syntax tree and maintain a corresponding, fully structured visual representation on-screen. Barista also provides designers of editors with a standard text-editing interaction technique that closely mimics that of conventional text editors, overcoming a central usability issue of previous structured code editors. " links: doi: "http://doi.acm.org/10.1145/1124772.1124831" tags: - "meta programming" - "model editor" - "meta-model" - "abstract syntax" - "human-computer interaction" - "programming" - "Meta-Environment" researchr: "https://researchr.org/publication/KoM06" cites: 19 citedby: 1 pages: "387-396" booktitle: "CHI" kind: "inproceedings" key: "KoM06" - title: "Parsing with first-class derivatives" author: - name: "Jonathan Immanuel Brachthäuser" link: "https://researchr.org/alias/jonathan-immanuel-brachth%C3%A4user" - name: "Tillmann Rendel" link: "https://researchr.org/alias/tillmann-rendel" - name: "Klaus Ostermann" link: "https://researchr.org/alias/klaus-ostermann" year: "2016" doi: "http://doi.acm.org/10.1145/2983990.2984026" links: doi: "http://doi.acm.org/10.1145/2983990.2984026" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/BrachthauserRO16" researchr: "https://researchr.org/publication/BrachthauserRO16" cites: 0 citedby: 0 pages: "588-606" booktitle: "OOPSLA" kind: "inproceedings" key: "BrachthauserRO16" - title: "Deuce: a lightweight user interface for structured editing" author: - name: "Brian Hempel" link: "https://researchr.org/alias/brian-hempel" - name: "Justin Lubin" link: "https://researchr.org/alias/justin-lubin" - name: "Grace Lu" link: "https://researchr.org/alias/grace-lu" - name: "Ravi Chugh" link: "https://researchr.org/alias/ravi-chugh" year: "2018" doi: "http://doi.acm.org/10.1145/3180155.3180165" links: doi: "http://doi.acm.org/10.1145/3180155.3180165" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icse/HempelLLC18" researchr: "https://researchr.org/publication/HempelLLC18" cites: 0 citedby: 0 pages: "654-664" booktitle: "ICSE" kind: "inproceedings" key: "HempelLLC18" - title: "Comparison of Syntactic Error Handling in LR Parsers" author: - name: "Pierpaolo Degano" link: "https://researchr.org/alias/pierpaolo-degano" - name: "Corrado Priami" link: "https://researchr.org/alias/corrado-priami" year: "1995" tags: - "parsing" researchr: "https://researchr.org/publication/DeganoP95" cites: 0 citedby: 0 journal: "SPE" volume: "25" number: "6" pages: "657-679" kind: "article" key: "DeganoP95" - title: "An Efficient Context-Free Parsing Algorithm" author: - name: "Jay Earley" link: "https://researchr.org/alias/jay-earley" year: "1970" doi: "https://doi.org/10.1145/362007.362035" links: doi: "https://doi.org/10.1145/362007.362035" tags: - "parsing algorithm" - "context-aware" - "parsing" researchr: "https://researchr.org/publication/Earley70%3A0" cites: 0 citedby: 0 journal: "CACM" volume: "13" number: "2" pages: "94-102" kind: "article" key: "Earley70:0" - title: "Preventing injection attacks with syntax embeddings" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Eelco Dolstra" link: "https://researchr.org/profile/eelcodolstra/publications" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2010" doi: "http://dx.doi.org/10.1016/j.scico.2009.05.004" abstract: "Software written in one language often needs to construct sentences in another language, such as SQL queries, XML output, or shell command invocations. This is almost always done using unhygienic string manipulation, the concatenation of constants and client-supplied strings. A client can then supply specially crafted input that causes the constructed sentence to be interpreted in an unintended way, leading to an injection attack. We describe a more natural style of programming that yields code that is impervious to injections by construction. Our approach embeds the grammars of the guest languages (e.g. SQL) into that of the host language (e.g. Java) and automatically generates code that maps the embedded language to constructs in the host language that reconstruct the embedded sentences, adding escaping functions where appropriate. This approach is generic, meaning that it can be applied with relative ease to any combination of context-free host and guest languages." links: doi: "http://dx.doi.org/10.1016/j.scico.2009.05.004" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/scp/BravenboerDV10" technicalreport: "https://researchr.org/publication/preprint-BravenboerDV-SCP-2009" tags: - "injection attack" researchr: "https://researchr.org/publication/BravenboerDV10" cites: 0 citedby: 0 journal: "SCP" volume: "75" number: "7" pages: "473-495" kind: "article" key: "BravenboerDV10" - title: "Algorithm Recognition for Programming Tutoring Based on Flow Graph Parsing" author: - name: "Seokwon Kim" link: "https://researchr.org/alias/seokwon-kim" - name: "Jin Hyung Kim" link: "https://researchr.org/alias/jin-hyung-kim" year: "1996" tags: - "parsing algorithm" - "rule-based" - "data-flow programming" - "data-flow" - "graph-rewriting" - "programming" - "rewriting" - "parsing" researchr: "https://researchr.org/publication/KimK96%3A3" cites: 0 citedby: 0 journal: "apin" volume: "6" number: "2" pages: "153-164" kind: "article" key: "KimK96:3" - title: "Towards automatic error recovery in parsing expression grammars" author: - name: "Sérgio Queiroz de Medeiros" link: "https://researchr.org/alias/s%C3%A9rgio-queiroz-de-medeiros" - name: "Fabio Mascarenhas" link: "https://researchr.org/alias/fabio-mascarenhas" year: "2018" doi: "https://doi.org/10.1145/3264637.3264638" links: doi: "https://doi.org/10.1145/3264637.3264638" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sblp/MedeirosM18" researchr: "https://researchr.org/publication/MedeirosM18-SBLP" cites: 0 citedby: 0 pages: "3-10" booktitle: "SBLP" kind: "inproceedings" key: "MedeirosM18-SBLP" - title: "A Transformational Derivation of a Parsing Algorithm in a High-Level Language" author: - name: "Edith Deak" link: "https://researchr.org/alias/edith-deak" year: "1981" tags: - "parsing algorithm" - "transformation language" - "parsing" - "transformation" researchr: "https://researchr.org/publication/Deak81" cites: 0 citedby: 0 journal: "TSE" volume: "7" number: "1" pages: "23-31" kind: "article" key: "Deak81" - title: "R3: Repeatability, reproducibility and rigor" author: - name: "Vitek, Jan" link: "https://researchr.org/alias/vitek%2C-jan" - name: "Kalibera, Tomas" link: "https://researchr.org/alias/kalibera%2C-tomas" year: "2012" researchr: "https://researchr.org/publication/VitekK12r3" cites: 0 citedby: 0 journal: "ACM SIGPLAN Notices" volume: "47" number: "4a" pages: "30-36" kind: "article" key: "VitekK12r3" - title: "Maya: multiple-dispatch syntax extension in Java" author: - name: "Baker, Jason" link: "https://researchr.org/alias/baker%2C-jason" - name: "Hsieh, Wilson C." link: "https://researchr.org/alias/hsieh%2C-wilson-c." year: "2002" doi: "http://doi.acm.org/10.1145/512529.512562" links: doi: "http://doi.acm.org/10.1145/512529.512562" tags: - "Java" - "C++" researchr: "https://researchr.org/publication/512562" cites: 0 citedby: 0 booktitle: "PLDI '02: Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation" kind: "inproceedings" key: "512562" - title: "Scannerless Generalized-LR Parsing" author: - name: "Eelco Visser" link: "http://eelcovisser.org" year: "1997" month: "July" abstract: "Current deterministic parsing techniques have a number of problems. These include the limitations of parser generators for deterministic languages and the complex interface between scanner and parser. Scannerless parsing is a parsing technique in which lexical and context-free syntax are integrated into one grammar and are all handled by a single context-free analysis phase. This approach has a number of advantages including discarding of the scanner and lexical disambiguation by means of the context in which a lexical token occurs, Scannerless parsing generates a number of interesting problems as well. Integrated grammars do not fit the requirements of the conventional deterministic parsing techniques. A plain context-free grammar formalism leads to unwieldy grammars. if all lexical information is included. Lexical disambiguation needs to be reformulated for use in context-free parsing. The scannerless generalized-LR parsing approach presented in this paper solves these problems. Grammar normalization is used to support an expressive grammar formalism without complicating the underlying machinery. Follow restrictions are used to express longest match lexical disambiguation. Reject productions are used to express the prefer keywords rule for lexical disambiguation. The SLR parser generation algorithm is adapted to implement disambiguation by general priority and associativity declarations and to interpret follow restrictions. Generalized-LR parsing is used to provide dynamic lookahead and to support parsing of arbitrary context-free grammars including ambiguous ones. An adaptation of the GLR algorithm supports the interpretation of grammars with reject productions. " tags: - "parsing algorithm" - "GLR parsing" - "rule-based" - "SDF" - "lexical syntax" - "disambiguation" - "GLR" - "analysis" - "rules" - "context-aware" - "parsing" - "scannerless parsing" - "systematic-approach" - "ASF+SDF" - "SGLR" - "grammar" researchr: "https://researchr.org/publication/Visser97-SGLR" cites: 0 citedby: 6 institution: "Programming Research Group, University of Amsterdam" number: "P9707" kind: "techreport" key: "Visser97-SGLR" - title: "A Parallel Parsing Algorithm for Arbitrary Context-Free Grammars" author: - name: "Dong-Yul Ra" link: "https://researchr.org/alias/dong-yul-ra" - name: "Jong-Hyun Kim" link: "https://researchr.org/alias/jong-hyun-kim" year: "1996" doi: "http://dx.doi.org/10.1016/0020-0190(96)00023-3" links: doi: "http://dx.doi.org/10.1016/0020-0190(96)00023-3" tags: - "parsing algorithm" - "context-aware" - "parsing" - "grammar" researchr: "https://researchr.org/publication/RaK96" cites: 0 citedby: 0 journal: "ipl" volume: "58" number: "2" pages: "87-96" kind: "article" key: "RaK96" - title: "The Java syntactic extender (JSE)" author: - name: "Bachrach, Jonthan" link: "https://researchr.org/alias/bachrach%2C-jonthan" - name: "Playford, Keith" link: "https://researchr.org/alias/playford%2C-keith" year: "2001" doi: "http://doi.acm.org/10.1145/504282.504285" links: doi: "http://doi.acm.org/10.1145/504282.504285" tags: - "Java" researchr: "https://researchr.org/publication/504285" cites: 0 citedby: 2 booktitle: "OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications" kind: "inproceedings" key: "504285" - title: "Parser-directed fuzzing" author: - name: "Björn Mathis" link: "https://researchr.org/alias/bj%C3%B6rn-mathis" - name: "Rahul Gopinath" link: "https://rahul.gopinath.org" - name: "Michaël Mera" link: "https://researchr.org/alias/micha%C3%ABl-mera" - name: "Alexander Kampmann" link: "https://researchr.org/alias/alexander-kampmann" - name: "Matthias Höschele" link: "https://researchr.org/alias/matthias-h%C3%B6schele" - name: "Andreas Zeller" link: "https://researchr.org/alias/andreas-zeller" year: "2019" doi: "https://doi.org/10.1145/3314221.3314651" links: doi: "https://doi.org/10.1145/3314221.3314651" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/pldi/MathisGMKHZ19" researchr: "https://researchr.org/publication/MathisGMKHZ19" cites: 0 citedby: 0 pages: "548-560" booktitle: "PLDI" kind: "inproceedings" key: "MathisGMKHZ19" - title: "Automated evaluation of syntax error recovery" author: - name: "Maartje de Jonge" link: "https://researchr.org/profile/maartjedejonge/publications" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2012" doi: "http://doi.acm.org/10.1145/2351676.2351736" abstract: "Evaluation of parse error recovery techniques is an open problem. The community lacks objective standards and methods to measure the quality of recovery results. This paper proposes an automated technique for recovery evaluation that offers a solution for two main problems in this area. First, a representative testset is generated by a mutation based fuzzing technique that applies knowledge about common syntax errors. Secondly, the quality of the recovery results is automatically measured using an oracle-based evaluation technique. We evaluate the validity of our approach by comparing results obtained by automated evaluation with results obtained by manual inspection. The evaluation shows a clear correspondence between our quality metric and human judgement. " links: doi: "http://doi.acm.org/10.1145/2351676.2351736" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/kbse/JongeV12" technicalreport: "https://researchr.org/publication/DeJongeVisser2012-TR" researchr: "https://researchr.org/publication/JongeV12" cites: 0 citedby: 0 pages: "322-325" booktitle: "ASE" kind: "inproceedings" key: "JongeV12" - title: "Incremental Parsing with the Perceptron Algorithm" author: - name: "Michael Collins" link: "https://researchr.org/alias/michael-collins" - name: "Brian Roark" link: "https://researchr.org/alias/brian-roark" year: "2004" doi: "http://acl.ldc.upenn.edu/acl2004/main/pdf/338_pdf_2-col.pdf" links: doi: "http://acl.ldc.upenn.edu/acl2004/main/pdf/338_pdf_2-col.pdf" tags: - "parsing algorithm" - "parsing" - "incremental" researchr: "https://researchr.org/publication/CollinsR04" cites: 0 citedby: 0 pages: "111-118" booktitle: "acl" kind: "inproceedings" key: "CollinsR04" - title: "Lightweight multi-language syntax transformation with parser parser combinators" author: - name: "Rijnard van Tonder" link: "https://researchr.org/alias/rijnard-van-tonder" - name: "Claire Le Goues" link: "https://researchr.org/alias/claire-le-goues" year: "2019" doi: "https://doi.org/10.1145/3314221.3314589" links: doi: "https://doi.org/10.1145/3314221.3314589" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/pldi/TonderG19" researchr: "https://researchr.org/publication/TonderG19" cites: 0 citedby: 0 pages: "363-378" booktitle: "PLDI" kind: "inproceedings" key: "TonderG19" - title: "Fast Parsing for Boolean Grammars: A Generalization of Valiant s Algorithm" author: - name: "Alexander Okhotin" link: "https://researchr.org/alias/alexander-okhotin" year: "2010" doi: "http://dx.doi.org/10.1007/978-3-642-14455-4_31" links: doi: "http://dx.doi.org/10.1007/978-3-642-14455-4_31" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/dlt/Okhotin10" tags: - "parsing algorithm" - "parsing" - "grammar" researchr: "https://researchr.org/publication/Okhotin10-2" cites: 0 citedby: 0 pages: "340-351" booktitle: "dlt" kind: "inproceedings" key: "Okhotin10-2" - title: "Incremental Analysis of real Programming Languages" author: - name: "Tim A. Wagner" link: "https://researchr.org/alias/tim-a.-wagner" - name: "Susan L. Graham" link: "https://researchr.org/alias/susan-l.-graham" year: "1997" tags: - "programming languages" - "program analysis" - "analysis" - "programming" - "incremental" researchr: "https://researchr.org/publication/WagnerG97" cites: 0 citedby: 1 pages: "31-43" booktitle: "PLDI" kind: "inproceedings" key: "WagnerG97" - title: "An Optimal Parallel Parsing Algorithm for a Class of Block Structured Languages" author: - name: "Dilip Sarkar" link: "https://researchr.org/alias/dilip-sarkar" - name: "Narsingh Deo" link: "https://researchr.org/alias/narsingh-deo" year: "1987" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/SarkarD87%3A0" cites: 0 citedby: 0 pages: "585-588" booktitle: "icpp" kind: "inproceedings" key: "SarkarD87:0" - title: "An Improved Left-Corner Parsing Algorithm" author: - name: "Kenneth M. Ross" link: "https://researchr.org/alias/kenneth-m.-ross" year: "1982" doi: "http://acl.ldc.upenn.edu/C/C82/C82-1054.pdf" links: doi: "http://acl.ldc.upenn.edu/C/C82/C82-1054.pdf" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/Ross82" cites: 0 citedby: 0 pages: "333-338" booktitle: "COLING" kind: "inproceedings" key: "Ross82" - title: "An Efficient Japanese Parsing Algorithm for Computer-Assisted Language Learning" author: - name: "Chi-Hong Leung" link: "https://researchr.org/alias/chi-hong-leung" - name: "Wun-Na Yung" link: "https://researchr.org/alias/wun-na-yung" year: "2003" doi: "http://csdl.computer.org/comp/proceedings/icalt/2003/1967/00/19670456.pdf" links: doi: "http://csdl.computer.org/comp/proceedings/icalt/2003/1967/00/19670456.pdf" tags: - "parsing algorithm" - "parsing" researchr: "https://researchr.org/publication/LeungY03" cites: 0 citedby: 0 pages: "456" booktitle: "icalt" kind: "inproceedings" key: "LeungY03" - title: "CPEG: a typed tree construction from parsing expression grammars with regex-like captures" author: - name: "Daisuke Yamaguchi" link: "https://researchr.org/alias/daisuke-yamaguchi" - name: "Kimio Kuramitsu" link: "https://researchr.org/alias/kimio-kuramitsu" year: "2019" doi: "https://doi.org/10.1145/3297280.3297433" links: doi: "https://doi.org/10.1145/3297280.3297433" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sac/YamaguchiK19" researchr: "https://researchr.org/publication/YamaguchiK19" cites: 0 citedby: 0 pages: "1526-1533" booktitle: "SAC" kind: "inproceedings" key: "YamaguchiK19" - title: "Preventing injection attacks with syntax embeddings" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Eelco Dolstra" link: "https://researchr.org/profile/eelcodolstra/publications" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2007" doi: "http://doi.acm.org/10.1145/1289971.1289975" abstract: "Software written in one language often needs to construct sentences in another language, such as SQL queries, XML output, or shell command invocations. This is almost always done using unhygienic string manipulation, the concatenation of constants and client-supplied strings. A client can then supply specially crafted input that causes the constructed sentence to be interpreted in an unintended way, leading to an injection attack. We describe a more natural style of programming that yields code that is impervious to injections by construction. Our approach embeds the grammars of the guest languages (e.g., SQL) into that of the host language (e.g., Java) and automatically generates code that maps the embedded language to constructs in the host language that reconstruct the embedded sentences, adding escaping functions where appropriate. This approach is generic, meaning that it can be applied with relative ease to any combination of host and guest languages." links: doi: "http://doi.acm.org/10.1145/1289971.1289975" successor: "https://researchr.org/publication/BravenboerDV10" tags: - "programming languages" - "syntax embedding" - "Java" - "preventing injection attacks" - "generic programming" - "injection attack" - "SDF" - "XML" - "embedded software" - "XML Schema" - "SQL" - "security" - "language embedding" - "DSL" - "programming" - "systematic-approach" - "ASF+SDF" - "grammar" - "query language" researchr: "https://researchr.org/publication/BravenboerDV07" cites: 0 citedby: 4 pages: "3-12" booktitle: "GPCE" kind: "inproceedings" key: "BravenboerDV07"