dc.contributor.advisor | Chong, Stephen | |
dc.contributor.author | Yedidia, Zachary | |
dc.date.accessioned | 2021-07-19T04:13:57Z | |
dc.date.created | 2021 | |
dc.date.issued | 2021-06-04 | |
dc.date.submitted | 2021 | |
dc.identifier.citation | Yedidia, Zachary. 2021. Incremental PEG Parsing. Bachelor's thesis, Harvard College. | |
dc.identifier.other | 28411046 | |
dc.identifier.uri | https://nrs.harvard.edu/URN-3:HUL.INSTREPOS:37368580 | * |
dc.description.abstract | Code analysis software in a text editor or IDE must repeatedly parse source code whenever an edit occurs. In many cases, a user's edit will affect only the parse of nearby characters, meaning a full-document reparse is unnecessary and inefficient. Incremental parsing algorithms support quick reparsing after common-case edits by remembering parse state and only parsing the parts of the document that have changed.
This thesis builds on previous work in incremental parsing for parsing expression grammars (PEGs). We develop new methods for incremental parsing that enable reparsing in logarithmic time in the common case for a wide variety of grammar types. These methods are implemented in a practical library called GPeg that supports efficient dynamic incremental parsers and a language-agnostic parser format via a parsing machine. Finally, we use this library to study the performance and usability of our parsing methods for the cases of pattern matching, full grammar parsing, and syntax highlighting. | |
dc.format.mimetype | application/pdf | |
dc.language.iso | en | |
dash.license | LAA | |
dc.subject | incremental parsing | |
dc.subject | packrat parsing | |
dc.subject | parsing | |
dc.subject | parsing expression grammar | |
dc.subject | Computer science | |
dc.title | Incremental PEG Parsing | |
dc.type | Thesis or Dissertation | |
dash.depositing.author | Yedidia, Zachary | |
dc.date.available | 2021-07-19T04:13:57Z | |
thesis.degree.date | 2021 | |
thesis.degree.grantor | Harvard College | |
thesis.degree.level | Bachelor's | |
thesis.degree.level | Undergraduate | |
thesis.degree.name | AB | |
dc.contributor.committeeMember | Amin, Nada | |
dc.type.material | text | |
thesis.degree.department | Computer Science | |
dash.author.email | zyedidia@gmail.com | |