A Combinator based, certifiable, parsing framework

Detalhes bibliográficos
Autor(a) principal: ROSA, Clayton Wilhelm da
Data de Publicação: 2019
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Institucional da UFPE
Texto Completo: https://repositorio.ufpe.br/handle/123456789/35363
Resumo: Parsers are ubiquitous software, much more common than one would normally take notice. Parsing spreads from simple command line functionalities to natural languages pro- cessing, to language composition. Parsing is also somewhat regarded as a solved problem in computation. However, that does not translate into reality, especially when consider- ing their implementations, which can be complex and difficult to maintain. In the last decades, multiple tools have surged aiming to improve the process of parsing, from the now well established parser generators to recent interactive parsing frameworks, which try to reduce the knowledge requirements for the specification of parsers. Although these tools have their own merits, very little effort was put into their standardization and formal reliability. We try to address these issues by implementing a reliable and flexible parsing framework that is composed of a small and extensible library of parser combinators, and a reliable, easily verifiable, parser generator based on the standardized meta-syntax of the extended Backus-Naur notation.We also provide valuable insight into the implementation of the General LL parsing technique in a purely functional setup.
id UFPE_da1e26360a9977ab4a53414a354ac4c1
oai_identifier_str oai:repositorio.ufpe.br:123456789/35363
network_acronym_str UFPE
network_name_str Repositório Institucional da UFPE
repository_id_str 2221
spelling ROSA, Clayton Wilhelm dahttp://lattes.cnpq.br/6082038345144017http://lattes.cnpq.br/3776948564582273CORNÉLIO, Márcio Lopes2019-11-28T22:37:16Z2019-11-28T22:37:16Z2019-08-28ROSA, Clayton Wilhelm da. A Combinator based, certifiable, parsing framework. 2019. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Pernambuco, Recife, 2019.https://repositorio.ufpe.br/handle/123456789/35363Parsers are ubiquitous software, much more common than one would normally take notice. Parsing spreads from simple command line functionalities to natural languages pro- cessing, to language composition. Parsing is also somewhat regarded as a solved problem in computation. However, that does not translate into reality, especially when consider- ing their implementations, which can be complex and difficult to maintain. In the last decades, multiple tools have surged aiming to improve the process of parsing, from the now well established parser generators to recent interactive parsing frameworks, which try to reduce the knowledge requirements for the specification of parsers. Although these tools have their own merits, very little effort was put into their standardization and formal reliability. We try to address these issues by implementing a reliable and flexible parsing framework that is composed of a small and extensible library of parser combinators, and a reliable, easily verifiable, parser generator based on the standardized meta-syntax of the extended Backus-Naur notation.We also provide valuable insight into the implementation of the General LL parsing technique in a purely functional setup.FACEPEParsers são softwares muito mais comuns do que normalmente nos damos conta. Parsers estão presentes nas mais diversas áreas, no processamento de linhas de comando, no processamento de linguagens naturais, ou ainda na composição de linguagens. O processo de parsing é considerado por muitos um problema já solucionado, porém isto não é inteiramente verdade, especialmente quando falamos das implementações de parsers que podem ser complexas e de difícil manutenção. Nas últimas décadas, muitas ferramentas que buscam facilitar o processo de parsing surgiram. Ferramentas como geradores de parsers, ou mais recentemente, frameworks interativos, que tentam reduzir a quantidade de conhecimento necessária para a especificação de parsers. Ainda que estas ferramentas tenham seus méritos, estas também apresentam algumas limitações. Estas ferramentas apresentam pouca ou quase nenhuma padronização entre si, além de não oferecerem garantias de confiabilidade. Nós buscamos mitigar estes problemas com a implementação de um framework para parsing, confiável e flexível. O framework é composto de uma biblioteca extensível de combinadores, e de um gerador de parsers que é facilmente verificável, e que se baseia na meta-sintaxe padrão da notação estendida de Backus-Naur. Além disso, nós apresentamos informações valiosas sobre a implementação do algoritmo GLL, sob uma perspectiva puramente funcional.engUniversidade Federal de PernambucoPrograma de Pos Graduacao em Ciencia da ComputacaoUFPEBrasilAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessLinguagem de programaçãoEngenharia de softwareSoftware confiávelA Combinator based, certifiable, parsing frameworkinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesismestradoreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPETEXTDISSERTAÇÃO Clayton Wilhelm da Rosa.pdf.txtDISSERTAÇÃO Clayton Wilhelm da Rosa.pdf.txtExtracted texttext/plain191711https://repositorio.ufpe.br/bitstream/123456789/35363/4/DISSERTA%c3%87%c3%83O%20Clayton%20Wilhelm%20da%20Rosa.pdf.txt8632f288598633b0d7a96913abca53e5MD54THUMBNAILDISSERTAÇÃO Clayton Wilhelm da Rosa.pdf.jpgDISSERTAÇÃO Clayton Wilhelm da Rosa.pdf.jpgGenerated Thumbnailimage/jpeg1212https://repositorio.ufpe.br/bitstream/123456789/35363/5/DISSERTA%c3%87%c3%83O%20Clayton%20Wilhelm%20da%20Rosa.pdf.jpga1cc5eba8160e80e888db4ad52621b2dMD55ORIGINALDISSERTAÇÃO Clayton Wilhelm da Rosa.pdfDISSERTAÇÃO Clayton Wilhelm da Rosa.pdfapplication/pdf561824https://repositorio.ufpe.br/bitstream/123456789/35363/1/DISSERTA%c3%87%c3%83O%20Clayton%20Wilhelm%20da%20Rosa.pdf68f7e4caa606b17eff7f428625f40a2eMD51CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811https://repositorio.ufpe.br/bitstream/123456789/35363/2/license_rdfe39d27027a6cc9cb039ad269a5db8e34MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-81748https://repositorio.ufpe.br/bitstream/123456789/35363/3/license.txt8a4605be74aa9ea9d79846c1fba20a33MD53123456789/353632019-11-29 02:17:16.356oai:repositorio.ufpe.br:123456789/35363Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=Repositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212019-11-29T05:17:16Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false
dc.title.pt_BR.fl_str_mv A Combinator based, certifiable, parsing framework
title A Combinator based, certifiable, parsing framework
spellingShingle A Combinator based, certifiable, parsing framework
ROSA, Clayton Wilhelm da
Linguagem de programação
Engenharia de software
Software confiável
title_short A Combinator based, certifiable, parsing framework
title_full A Combinator based, certifiable, parsing framework
title_fullStr A Combinator based, certifiable, parsing framework
title_full_unstemmed A Combinator based, certifiable, parsing framework
title_sort A Combinator based, certifiable, parsing framework
author ROSA, Clayton Wilhelm da
author_facet ROSA, Clayton Wilhelm da
author_role author
dc.contributor.authorLattes.pt_BR.fl_str_mv http://lattes.cnpq.br/6082038345144017
dc.contributor.advisorLattes.pt_BR.fl_str_mv http://lattes.cnpq.br/3776948564582273
dc.contributor.author.fl_str_mv ROSA, Clayton Wilhelm da
dc.contributor.advisor1.fl_str_mv CORNÉLIO, Márcio Lopes
contributor_str_mv CORNÉLIO, Márcio Lopes
dc.subject.por.fl_str_mv Linguagem de programação
Engenharia de software
Software confiável
topic Linguagem de programação
Engenharia de software
Software confiável
description Parsers are ubiquitous software, much more common than one would normally take notice. Parsing spreads from simple command line functionalities to natural languages pro- cessing, to language composition. Parsing is also somewhat regarded as a solved problem in computation. However, that does not translate into reality, especially when consider- ing their implementations, which can be complex and difficult to maintain. In the last decades, multiple tools have surged aiming to improve the process of parsing, from the now well established parser generators to recent interactive parsing frameworks, which try to reduce the knowledge requirements for the specification of parsers. Although these tools have their own merits, very little effort was put into their standardization and formal reliability. We try to address these issues by implementing a reliable and flexible parsing framework that is composed of a small and extensible library of parser combinators, and a reliable, easily verifiable, parser generator based on the standardized meta-syntax of the extended Backus-Naur notation.We also provide valuable insight into the implementation of the General LL parsing technique in a purely functional setup.
publishDate 2019
dc.date.accessioned.fl_str_mv 2019-11-28T22:37:16Z
dc.date.available.fl_str_mv 2019-11-28T22:37:16Z
dc.date.issued.fl_str_mv 2019-08-28
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv ROSA, Clayton Wilhelm da. A Combinator based, certifiable, parsing framework. 2019. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Pernambuco, Recife, 2019.
dc.identifier.uri.fl_str_mv https://repositorio.ufpe.br/handle/123456789/35363
identifier_str_mv ROSA, Clayton Wilhelm da. A Combinator based, certifiable, parsing framework. 2019. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Pernambuco, Recife, 2019.
url https://repositorio.ufpe.br/handle/123456789/35363
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Pernambuco
dc.publisher.program.fl_str_mv Programa de Pos Graduacao em Ciencia da Computacao
dc.publisher.initials.fl_str_mv UFPE
dc.publisher.country.fl_str_mv Brasil
publisher.none.fl_str_mv Universidade Federal de Pernambuco
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFPE
instname:Universidade Federal de Pernambuco (UFPE)
instacron:UFPE
instname_str Universidade Federal de Pernambuco (UFPE)
instacron_str UFPE
institution UFPE
reponame_str Repositório Institucional da UFPE
collection Repositório Institucional da UFPE
bitstream.url.fl_str_mv https://repositorio.ufpe.br/bitstream/123456789/35363/4/DISSERTA%c3%87%c3%83O%20Clayton%20Wilhelm%20da%20Rosa.pdf.txt
https://repositorio.ufpe.br/bitstream/123456789/35363/5/DISSERTA%c3%87%c3%83O%20Clayton%20Wilhelm%20da%20Rosa.pdf.jpg
https://repositorio.ufpe.br/bitstream/123456789/35363/1/DISSERTA%c3%87%c3%83O%20Clayton%20Wilhelm%20da%20Rosa.pdf
https://repositorio.ufpe.br/bitstream/123456789/35363/2/license_rdf
https://repositorio.ufpe.br/bitstream/123456789/35363/3/license.txt
bitstream.checksum.fl_str_mv 8632f288598633b0d7a96913abca53e5
a1cc5eba8160e80e888db4ad52621b2d
68f7e4caa606b17eff7f428625f40a2e
e39d27027a6cc9cb039ad269a5db8e34
8a4605be74aa9ea9d79846c1fba20a33
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)
repository.mail.fl_str_mv attena@ufpe.br
_version_ 1802310820459184128