[en] FORMALIZATION OF KEY ALGORITHMS FROM LPEGN
| Autor(a) principal: | |
|---|---|
| Data de Publicação: | 2025 |
| Tipo de documento: | Tese |
| Idioma: | eng |
| Título da fonte: | Repositório Institucional da PUC-RIO (Projeto Maxwell) |
| Texto Completo: | 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 |
Resumo: | [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 |