A Combinator based, certifiable, parsing framework
Autor(a) principal: | |
---|---|
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 |