[en] FORMALIZATION OF KEY ALGORITHMS FROM LPEGN

Bibliographic Details
Main Author: GUILHERME DANTAS DE OLIVEIRA
Publication Date: 2025
Format: Doctoral thesis
Language: eng
Source: Repositório Institucional da PUC-RIO (Projeto Maxwell)
Download full: https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=71084&idi=1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=71084&idi=2
http://doi.org/10.17771/PUCRio.acad.71084
Summary: [pt] 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.
id PUC_RIO-1_f31c637fac3ccbcdb8bde2f61a872fe0
oai_identifier_str oai:MAXWELL.puc-rio.br:71084
network_acronym_str PUC_RIO-1
network_name_str Repositório Institucional da PUC-RIO (Projeto Maxwell)
repository_id_str 534
spelling [en] FORMALIZATION OF KEY ALGORITHMS FROM LPEGN [pt] FORMALIZAÇÃO DE ALGORITMOS-CHAVE DE LPEG [pt] GRAMATICA DE ANALISE SINTATICA DE EXPRESSAO[pt] LPEG[pt] BOA FORMACAO[en] PARSING EXPRESSION GRAMMAR[en] LPEG[en] WELL FORMEDNESS[pt] 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. [en] 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. MAXWELLROBERTO IERUSALIMSCHYGUILHERME DANTAS DE OLIVEIRA2025-06-17info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesishttps://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=71084&idi=1https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=71084&idi=2http://doi.org/10.17771/PUCRio.acad.71084engreponame:Repositório Institucional da PUC-RIO (Projeto Maxwell)instname:Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)instacron:PUC_RIOinfo:eu-repo/semantics/openAccess2025-06-17T00:00:00Zoai:MAXWELL.puc-rio.br:71084Repositório InstitucionalPRIhttps://www.maxwell.vrac.puc-rio.br/ibict.phpopendoar:5342025-06-17T00:00Repositório Institucional da PUC-RIO (Projeto Maxwell) - Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)false
dc.title.none.fl_str_mv [en] FORMALIZATION OF KEY ALGORITHMS FROM LPEGN
[pt] FORMALIZAÇÃO DE ALGORITMOS-CHAVE DE LPEG
title [en] FORMALIZATION OF KEY ALGORITHMS FROM LPEGN
spellingShingle [en] FORMALIZATION OF KEY ALGORITHMS FROM LPEGN
GUILHERME DANTAS DE OLIVEIRA
[pt] GRAMATICA DE ANALISE SINTATICA DE EXPRESSAO
[pt] LPEG
[pt] BOA FORMACAO
[en] PARSING EXPRESSION GRAMMAR
[en] LPEG
[en] WELL FORMEDNESS
title_short [en] FORMALIZATION OF KEY ALGORITHMS FROM LPEGN
title_full [en] FORMALIZATION OF KEY ALGORITHMS FROM LPEGN
title_fullStr [en] FORMALIZATION OF KEY ALGORITHMS FROM LPEGN
title_full_unstemmed [en] FORMALIZATION OF KEY ALGORITHMS FROM LPEGN
title_sort [en] FORMALIZATION OF KEY ALGORITHMS FROM LPEGN
author GUILHERME DANTAS DE OLIVEIRA
author_facet GUILHERME DANTAS DE OLIVEIRA
author_role author
dc.contributor.none.fl_str_mv ROBERTO IERUSALIMSCHY
dc.contributor.author.fl_str_mv GUILHERME DANTAS DE OLIVEIRA
dc.subject.por.fl_str_mv [pt] GRAMATICA DE ANALISE SINTATICA DE EXPRESSAO
[pt] LPEG
[pt] BOA FORMACAO
[en] PARSING EXPRESSION GRAMMAR
[en] LPEG
[en] WELL FORMEDNESS
topic [pt] GRAMATICA DE ANALISE SINTATICA DE EXPRESSAO
[pt] LPEG
[pt] BOA FORMACAO
[en] PARSING EXPRESSION GRAMMAR
[en] LPEG
[en] WELL FORMEDNESS
description [pt] 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.
publishDate 2025
dc.date.none.fl_str_mv 2025-06-17
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=71084&idi=1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=71084&idi=2
http://doi.org/10.17771/PUCRio.acad.71084
url https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=71084&idi=1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=71084&idi=2
http://doi.org/10.17771/PUCRio.acad.71084
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv MAXWELL
publisher.none.fl_str_mv MAXWELL
dc.source.none.fl_str_mv reponame:Repositório Institucional da PUC-RIO (Projeto Maxwell)
instname:Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)
instacron:PUC_RIO
instname_str Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)
instacron_str PUC_RIO
institution PUC_RIO
reponame_str Repositório Institucional da PUC-RIO (Projeto Maxwell)
collection Repositório Institucional da PUC-RIO (Projeto Maxwell)
repository.name.fl_str_mv Repositório Institucional da PUC-RIO (Projeto Maxwell) - Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)
repository.mail.fl_str_mv
_version_ 1849967332593500160