{"id":"https://openalex.org/W3215005452","doi":"https://doi.org/10.1145/3486608.3486900","title":"Fast incremental PEG parsing","display_name":"Fast incremental PEG parsing","publication_year":2021,"publication_date":"2021-10-17","ids":{"openalex":"https://openalex.org/W3215005452","doi":"https://doi.org/10.1145/3486608.3486900","mag":"3215005452"},"language":"en","primary_location":{"id":"doi:10.1145/3486608.3486900","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3486608.3486900","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 14th ACM SIGPLAN International Conference on Software Language Engineering","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5087880988","display_name":"Zachary Yedidia","orcid":"https://orcid.org/0009-0006-4244-1690"},"institutions":[{"id":"https://openalex.org/I2801851002","display_name":"Harvard University Press","ror":"https://ror.org/006v7bf86","country_code":"US","type":"other","lineage":["https://openalex.org/I136199984","https://openalex.org/I2801851002"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Zachary Yedidia","raw_affiliation_strings":["Harvard University, USA"],"affiliations":[{"raw_affiliation_string":"Harvard University, USA","institution_ids":["https://openalex.org/I2801851002"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5046383149","display_name":"Stephen Chong","orcid":"https://orcid.org/0000-0002-6734-5383"},"institutions":[{"id":"https://openalex.org/I2801851002","display_name":"Harvard University Press","ror":"https://ror.org/006v7bf86","country_code":"US","type":"other","lineage":["https://openalex.org/I136199984","https://openalex.org/I2801851002"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Stephen Chong","raw_affiliation_strings":["Harvard University, USA"],"affiliations":[{"raw_affiliation_string":"Harvard University, USA","institution_ids":["https://openalex.org/I2801851002"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5087880988"],"corresponding_institution_ids":["https://openalex.org/I2801851002"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.17506553,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":"99","last_page":"112"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10181","display_name":"Natural Language Processing Techniques","score":0.9990000128746033,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10181","display_name":"Natural Language Processing Techniques","score":0.9990000128746033,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9951000213623047,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T12326","display_name":"Network Packet Processing and Optimization","score":0.9927999973297119,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/memoization","display_name":"Memoization","score":0.9557822942733765},{"id":"https://openalex.org/keywords/parsing","display_name":"Parsing","score":0.8761139512062073},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8410502672195435},{"id":"https://openalex.org/keywords/parser-combinator","display_name":"Parser combinator","score":0.6882681250572205},{"id":"https://openalex.org/keywords/top-down-parsing","display_name":"Top-down parsing","score":0.6536985635757446},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5805615186691284},{"id":"https://openalex.org/keywords/bottom-up-parsing","display_name":"Bottom-up parsing","score":0.5568641424179077},{"id":"https://openalex.org/keywords/rule-based-machine-translation","display_name":"Rule-based machine translation","score":0.544518768787384},{"id":"https://openalex.org/keywords/tree","display_name":"Tree (set theory)","score":0.542500913143158},{"id":"https://openalex.org/keywords/s-attributed-grammar","display_name":"S-attributed grammar","score":0.5210251808166504},{"id":"https://openalex.org/keywords/abstract-syntax-tree","display_name":"Abstract syntax tree","score":0.507595419883728},{"id":"https://openalex.org/keywords/table","display_name":"Table (database)","score":0.4808681607246399},{"id":"https://openalex.org/keywords/top-down-parsing-language","display_name":"Top-down parsing language","score":0.4740409851074219},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.4603111743927002},{"id":"https://openalex.org/keywords/syntax","display_name":"Syntax","score":0.4219127893447876},{"id":"https://openalex.org/keywords/lr-parser","display_name":"LR parser","score":0.42099565267562866},{"id":"https://openalex.org/keywords/data-mining","display_name":"Data mining","score":0.12947824597358704}],"concepts":[{"id":"https://openalex.org/C79516417","wikidata":"https://www.wikidata.org/wiki/Q1376168","display_name":"Memoization","level":4,"score":0.9557822942733765},{"id":"https://openalex.org/C186644900","wikidata":"https://www.wikidata.org/wiki/Q194152","display_name":"Parsing","level":2,"score":0.8761139512062073},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8410502672195435},{"id":"https://openalex.org/C118364021","wikidata":"https://www.wikidata.org/wiki/Q7139956","display_name":"Parser combinator","level":3,"score":0.6882681250572205},{"id":"https://openalex.org/C42560504","wikidata":"https://www.wikidata.org/wiki/Q15419395","display_name":"Top-down parsing","level":3,"score":0.6536985635757446},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5805615186691284},{"id":"https://openalex.org/C60690694","wikidata":"https://www.wikidata.org/wiki/Q894902","display_name":"Bottom-up parsing","level":4,"score":0.5568641424179077},{"id":"https://openalex.org/C53893814","wikidata":"https://www.wikidata.org/wiki/Q7378909","display_name":"Rule-based machine translation","level":2,"score":0.544518768787384},{"id":"https://openalex.org/C113174947","wikidata":"https://www.wikidata.org/wiki/Q2859736","display_name":"Tree (set theory)","level":2,"score":0.542500913143158},{"id":"https://openalex.org/C147547768","wikidata":"https://www.wikidata.org/wiki/Q3113342","display_name":"S-attributed grammar","level":3,"score":0.5210251808166504},{"id":"https://openalex.org/C58646249","wikidata":"https://www.wikidata.org/wiki/Q127380","display_name":"Abstract syntax tree","level":3,"score":0.507595419883728},{"id":"https://openalex.org/C45235069","wikidata":"https://www.wikidata.org/wiki/Q278425","display_name":"Table (database)","level":2,"score":0.4808681607246399},{"id":"https://openalex.org/C166651950","wikidata":"https://www.wikidata.org/wiki/Q7824365","display_name":"Top-down parsing language","level":5,"score":0.4740409851074219},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.4603111743927002},{"id":"https://openalex.org/C60048249","wikidata":"https://www.wikidata.org/wiki/Q37437","display_name":"Syntax","level":2,"score":0.4219127893447876},{"id":"https://openalex.org/C35164859","wikidata":"https://www.wikidata.org/wiki/Q1756442","display_name":"LR parser","level":4,"score":0.42099565267562866},{"id":"https://openalex.org/C124101348","wikidata":"https://www.wikidata.org/wiki/Q172491","display_name":"Data mining","level":1,"score":0.12947824597358704},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3486608.3486900","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3486608.3486900","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 14th ACM SIGPLAN International Conference on Software Language Engineering","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":14,"referenced_works":["https://openalex.org/W1971135355","https://openalex.org/W2003241571","https://openalex.org/W2003550651","https://openalex.org/W2018045485","https://openalex.org/W2020749411","https://openalex.org/W2044735303","https://openalex.org/W2081189845","https://openalex.org/W2157474328","https://openalex.org/W2159549304","https://openalex.org/W2171325515","https://openalex.org/W2296332834","https://openalex.org/W2766768151","https://openalex.org/W3004896733","https://openalex.org/W4233757090"],"related_works":["https://openalex.org/W2164260211","https://openalex.org/W2246820938","https://openalex.org/W4320024782","https://openalex.org/W1929722976","https://openalex.org/W2529664582","https://openalex.org/W2483839524","https://openalex.org/W2105710547","https://openalex.org/W1908013816","https://openalex.org/W2204818078","https://openalex.org/W2383537280"],"abstract_inverted_index":{"Incremental":[0,38,99],"parsing":[1,29,46,112],"is":[2],"an":[3,41,48,57],"integral":[4],"part":[5],"of":[6,27,88,141,147],"code":[7],"analysis":[8],"performed":[9],"by":[10,51],"text":[11],"editors":[12],"and":[13,66,149,159,176],"integrated":[14],"development":[15],"environments.":[16],"This":[17],"paper":[18],"presents":[19],"new":[20],"methods":[21,105],"to":[22,47,71,145,156],"significantly":[23],"improve":[24],"the":[25,53,68,76,86,89],"efficiency":[26],"incremental":[28,49,164],"for":[30,63,91,98,114,118,124,183],"Parsing":[31],"Expression":[32],"Grammars":[33],"(PEGs).":[34],"We":[35,102],"build":[36],"on":[37],"Packrat":[39,100],"Parsing,":[40],"algorithm":[42],"that":[43,130],"adapts":[44],"packrat":[45],"setting,":[50],"implementing":[52],"memoization":[54,69],"table":[55],"as":[56],"interval":[58],"tree":[59,73],"with":[60,95,116,162,181],"special":[61],"support":[62,117],"shifting":[64],"intervals,":[65],"modifying":[67],"strategy":[70],"create":[72],"structures":[74],"in":[75,82,85,106,126],"table.":[77],"Our":[78],"approach":[79],"enables":[80],"reparsing":[81,97],"time":[83],"logarithmic":[84],"size":[87],"input":[90,142],"typical":[92],"edits,":[93],"compared":[94],"linear-time":[96],"Parsing.":[101],"implement":[103,171],"our":[104],"a":[107,111,139,167,172],"prototype":[108,177],"called":[109],"GPeg,":[110,180],"machine":[113],"PEGs":[115],"dynamic":[119],"parsers":[120],"(an":[121],"important":[122],"feature":[123],"extensibility":[125],"editors).":[127],"Experiments":[128],"show":[129],"GPeg":[131],"has":[132],"strong":[133],"performance":[134],"(sub-5ms":[135],"reparse":[136],"times)":[137],"across":[138],"variety":[140],"sizes":[143],"(tens":[144],"hundreds":[146],"megabytes)":[148],"grammar":[150],"types":[151],"(from":[152],"full":[153],"language":[154],"grammars":[155],"minimal":[157],"grammars),":[158],"compares":[160],"well":[161],"existing":[163],"parsers.":[165],"As":[166],"complete":[168],"example,":[169],"we":[170],"syntax":[173],"highlighting":[174],"library":[175],"editor":[178],"using":[179],"optimizations":[182],"these":[184],"applications.":[185]},"counts_by_year":[],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
