Abstract [eng] |
Reflectively extensible programming languages are programming languages, whose syntax (and/or semantics) can be extended without any direct compiler modifications. Specialized syntax analysis methods are needed to parse such languages. In this dissertation a new parsing method for parsing such languages is presented: Scannerless Earley virtual machine (SEVM). This method supports dynamically changing grammars with local (temporary) extensions, is scannerless, recognises all context-free grammars and allows language definition via grammar composition. SEVM is a virtual-machine based parser: it uses instruction sequences to represent grammars internally. These instructions are then interpreted (or executed using a just-in-time compiler) to drive overall parsing process. Much attention is given to SEVM optimisations to ensure acceptable parsing performance. In the final part of this thesis, the parsing performance of SEVM implementation is compared to other parser implementations that are used in practise. We found that SEVM offers acceptable parsing performance for practical application. |