Título: | FORMALIZAÇÃO DE ALGORITMOS-CHAVE DE LPEG | ||||||||||||
Autor: |
GUILHERME DANTAS DE OLIVEIRA |
||||||||||||
Colaborador(es): |
ROBERTO IERUSALIMSCHY - Orientador |
||||||||||||
Catalogação: | 17/JUN/2025 | Língua(s): | INGLÊS - ESTADOS UNIDOS |
||||||||||
Tipo: | TEXTO | Subtipo: | TESE | ||||||||||
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: | |||||||||||||
Gramáticas de Análise Sintática de Expressão (PEGs, do inglês Parsing
Expression Languages) são uma classe de gramáticas formais determinísticas
originalmente descritas por Ford e amplamente utilizadas para descrever e
analisar linguagens de programação. PEGs foram implementadas por diversos
projetos. Um desses projetos é LPeg, uma biblioteca Lua que compila PEGs
para código otimizado que é executado por uma máquina virtual especializada.
A implementação de LPeg apresenta dois algoritmos-chave que nunca
foram publicados ou verificados formalmente. Primeiramente, LPeg possui sua
própria implementação da verificação de boa-formação introduzida por Ford,
essencial para garantir que a análise sintática termine. Em segundo lugar, LPeg
implementa um algoritmo que computa o conjunto de primeiros caracteres que
podem ser aceitos por um padrão, utilizado para gerar código de máquina
virtual mais eficiente para certos padrões.
Este trabalho formaliza esses algoritmos e prova que estão corretos
usando o provador de teoremas Coq. Além disso, provamos que esses algoritmos
terminam utilizando uma abordagem baseada em consumo de gás.
|
|||||||||||||
|