1. Principled procedural parsing
- Author
-
Laurent, Nicolas, UCL - SST/ICTM/INGI - Pôle en ingénierie informatique, UCL - Ecole Polytechnique de Louvain, Mens, Kim, Pecheur, Charles, Van Roy, Peter, Bagge, Anya Helene, and van der Storms, Tijs
- Subjects
Parsing ,Grammar ,TheoryofComputation_MATHEMATICALLOGICANDFORMALLANGUAGES ,Backtracking ,Parsers ,Parser - Abstract
Parsing is the process of analysing an input string in order to extract a structured representation of its content (a syntax tree) with respect to a specific language. In the thesis, we focus on parsing formal languages, such as programming or markup languages — as opposed to natural spoken languages. Unlike natural languages, formal languages are never ambiguous: there is only a single correct interpretation of the input. Parsing is a pervasive activity: every time a source file must be turned into executable code, a parser is required. Similarly, parsers are used to convert input files into relevant data structures. It is fair to say that most programs include a parser — sometimes many. As such, making parsers easier to write, use, and modify is a broadly beneficial endeavour. This thesis is concerned with the limitations of currently available parsing systems, and how to overcome them. In particular, we show how to develop a simple yet expressive notation that can be easily extended, and build upon this basis to add context-sensitive parsing to the parsing system, robust support for infix expression (avoiding expressiveness and performance issues relating to associativity selection) as well as many more expressiveness and usability features — such as permissive parsing and debugging tools. (FSA - Sciences de l'ingénieur) -- UCL, 2019
- Published
- 2019