Título: | FORMALIZATION OF KEY ALGORITHMS FROM LPEGN | ||||||||||||
Autor: |
GUILHERME DANTAS DE OLIVEIRA |
||||||||||||
Colaborador(es): |
ROBERTO IERUSALIMSCHY - Orientador |
||||||||||||
Catalogação: | 17/JUN/2025 | Língua(s): | ENGLISH - UNITED STATES |
||||||||||
Tipo: | TEXT | Subtipo: | THESIS | ||||||||||
Notas: |
[pt] Todos os dados constantes dos documentos são de inteira responsabilidade de seus autores. Os dados utilizados nas descrições dos documentos estão em conformidade com os sistemas da administração da PUC-Rio. [en] All data contained in the documents are the sole responsibility of the authors. The data used in the descriptions of the documents are in conformity with the systems of the administration of PUC-Rio. |
||||||||||||
Referência(s): |
[pt] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/ETDs/consultas/conteudo.php?strSecao=resultado&nrSeq=71084&idi=1 [en] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/ETDs/consultas/conteudo.php?strSecao=resultado&nrSeq=71084&idi=2 |
||||||||||||
DOI: | https://doi.org/10.17771/PUCRio.acad.71084 | ||||||||||||
Resumo: | |||||||||||||
Parsing Expression Grammars (PEGs) are a class of deterministic formal
grammars originally described by Ford. They are widely used to describe
and parse machine-oriented languages and have been implemented by several
projects. One such project is LPeg, a Lua library that compiles PEGs into
optimized code that is run by a specialized virtual machine.
The implementation of LPeg features two key algorithms that have never
been published or verified before. First, LPeg has its own implementation of the
well-formedness check introduced by Ford, which is crucial for ensuring that
parsing terminates. Second, LPeg implements an algorithm that computes the
set of first characters that may be accepted by a pattern, which it uses to
optimize the virtual-machine code for certain patterns.
This work formalizes these algorithms and proves their correctness using
the Coq proof assistant. We also prove their termination using a gas-based
approach.
|
|||||||||||||
|