Síntese de programas via localizador de modelo
Autor(a) principal: | |
---|---|
Data de Publicação: | 2020 |
Tipo de documento: | Tese |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFPE |
dARK ID: | ark:/64986/001300000qws0 |
Texto Completo: | https://repositorio.ufpe.br/handle/123456789/37652 |
Resumo: | Uma das finalidades de Síntese de programas é mecanizar a tarefa de programar, a partir da intenção do usuário (expressa de diferentes formas como pré/pós condição, exemplos, sketches, etc). Há diversas abordagens de síntese de programas que costumam ser implementadas isoladamente: dedutiva, guiada por sintaxe, indutiva, etc. Neste trabalho, descrevemos o PSMF, como uma abordagem (implementada como um sintetizador) que combina modelo de busca e algoritmo genético. O PSMF proposto expressa a intenção do usuário em exemplos de entrada/saída (exemplos E/S), soft sketch (ou seja, um conjunto de comandos que devem aparecer no programa sintetizado, mas são escritos em qualquer ordem) e ingredientes sintáticos (quantidades de construtores sintáticos que devem aparecer no programa sintetizado). A saída gerada pelo PSMF é um programa imperativo de propósito geral. A combinação de síntese indutiva com algoritmo genético permitiu o PSMF sintetizar programas com (ou sem) arrays, totalizando 16 programas (Max2, Max3, Max4, GCD, IntSqrt, Maj5, Maj8, Modu, Fact, Fib, aMax; aDouble; aSum, eCount, aBubSort e aSelSort) bem conhecidos nas comunidades de síntese de programas (Competição SyGuS, Programação Genética). Executamos avaliações empíricas da efetividade da nova implementação e o tempo médio de síntese desses 16 programas variou de 5.0 segundos (Max2) até 15.9 minutos (Fib). |
id |
UFPE_0874b3a0338e2e5c35e760a728ad5112 |
---|---|
oai_identifier_str |
oai:repositorio.ufpe.br:123456789/37652 |
network_acronym_str |
UFPE |
network_name_str |
Repositório Institucional da UFPE |
repository_id_str |
2221 |
spelling |
CORREIA, Alexandre Roberto de Souzahttp://lattes.cnpq.br/6625835762892250http://lattes.cnpq.br/0005349558315095http://lattes.cnpq.br/2794026545404598IYODA, Juliano ManabuMOTA, Alexandre Cabral2020-08-14T18:18:02Z2020-08-14T18:18:02Z2020-01-24CORREIA, Alexandre Roberto de Souza. Síntese de Programas via Localizador de Modelo. 2020. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Pernambuco, Recife, 2020.https://repositorio.ufpe.br/handle/123456789/37652ark:/64986/001300000qws0Uma das finalidades de Síntese de programas é mecanizar a tarefa de programar, a partir da intenção do usuário (expressa de diferentes formas como pré/pós condição, exemplos, sketches, etc). Há diversas abordagens de síntese de programas que costumam ser implementadas isoladamente: dedutiva, guiada por sintaxe, indutiva, etc. Neste trabalho, descrevemos o PSMF, como uma abordagem (implementada como um sintetizador) que combina modelo de busca e algoritmo genético. O PSMF proposto expressa a intenção do usuário em exemplos de entrada/saída (exemplos E/S), soft sketch (ou seja, um conjunto de comandos que devem aparecer no programa sintetizado, mas são escritos em qualquer ordem) e ingredientes sintáticos (quantidades de construtores sintáticos que devem aparecer no programa sintetizado). A saída gerada pelo PSMF é um programa imperativo de propósito geral. A combinação de síntese indutiva com algoritmo genético permitiu o PSMF sintetizar programas com (ou sem) arrays, totalizando 16 programas (Max2, Max3, Max4, GCD, IntSqrt, Maj5, Maj8, Modu, Fact, Fib, aMax; aDouble; aSum, eCount, aBubSort e aSelSort) bem conhecidos nas comunidades de síntese de programas (Competição SyGuS, Programação Genética). Executamos avaliações empíricas da efetividade da nova implementação e o tempo médio de síntese desses 16 programas variou de 5.0 segundos (Max2) até 15.9 minutos (Fib).One purpose of Program Synthesis is to mechanize the task of programming from the user intent (expressed in various forms like pre/post conditions, examples, sketches, etc). There are many approaches to program synthesis that are usually implemented in isolation: deductive, syntax-based, inductive, etc. In this manuscript, we describe PSMF, a program synthesizer that combines model finder and genetic algorithm. The PSMF proposed takes as user intent examples, and a soft sketch: a new kind of user intent defined as a set of commands that must appear in the synthesized program (and that are in no particular order of execution) and syntactical ingredients (that is the amount of the syntactical constructs whose will have appear in the synthesized program). The output of PSMF is a general purpose imperative program. The combination of inductive synthesis and genetic algorithm has allowed PSMF to synthesize programs with (and with no) arrays, reaching the amount of 16 programs (Max2, Max3, Max4, GCD, IntSqrt, Maj5, Maj8, Modu, Fact, Fib, aMax; aDouble; aSum, eCount, aBubSort e aSelSort) found in the program synthesis communities (such as SyGuS competition, Genetic Programming). We carried out an empirical evaluation of the new PSMF implementation’s effectiveness and the synthesis mean time of these 16 programs have varied from 5.0 seconds (Max2) to 15.9 minutes (Fib).porUniversidade 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/openAccessEngenharia de softwareSíntese de programasLinguagem de programaçãoSíntese de programas via localizador de modeloinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisdoutoradoreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPECC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811https://repositorio.ufpe.br/bitstream/123456789/37652/2/license_rdfe39d27027a6cc9cb039ad269a5db8e34MD52TEXTTESE Alexandre Roberto de Souza Correia.pdf.txtTESE Alexandre Roberto de Souza Correia.pdf.txtExtracted texttext/plain327565https://repositorio.ufpe.br/bitstream/123456789/37652/4/TESE%20Alexandre%20Roberto%20de%20Souza%20Correia.pdf.txt05efe2cf57e5e22e3842fa47d15593f1MD54THUMBNAILTESE Alexandre Roberto de Souza Correia.pdf.jpgTESE Alexandre Roberto de Souza Correia.pdf.jpgGenerated Thumbnailimage/jpeg1231https://repositorio.ufpe.br/bitstream/123456789/37652/5/TESE%20Alexandre%20Roberto%20de%20Souza%20Correia.pdf.jpgb8aca63e707422d83f03deb6c1a8e3c8MD55ORIGINALTESE Alexandre Roberto de Souza Correia.pdfTESE Alexandre Roberto de Souza Correia.pdfapplication/pdf4688866https://repositorio.ufpe.br/bitstream/123456789/37652/1/TESE%20Alexandre%20Roberto%20de%20Souza%20Correia.pdfd8d6ace014ff28e9e8c3e5406da599dfMD51LICENSElicense.txtlicense.txttext/plain; charset=utf-82310https://repositorio.ufpe.br/bitstream/123456789/37652/3/license.txtbd573a5ca8288eb7272482765f819534MD53123456789/376522020-08-15 02:10:49.35oai:repositorio.ufpe.br:123456789/37652TGljZW7Dp2EgZGUgRGlzdHJpYnVpw6fDo28gTsOjbyBFeGNsdXNpdmEKClRvZG8gZGVwb3NpdGFudGUgZGUgbWF0ZXJpYWwgbm8gUmVwb3NpdMOzcmlvIEluc3RpdHVjaW9uYWwgKFJJKSBkZXZlIGNvbmNlZGVyLCDDoCBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBQZXJuYW1idWNvIChVRlBFKSwgdW1hIExpY2Vuw6dhIGRlIERpc3RyaWJ1acOnw6NvIE7Do28gRXhjbHVzaXZhIHBhcmEgbWFudGVyIGUgdG9ybmFyIGFjZXNzw612ZWlzIG9zIHNldXMgZG9jdW1lbnRvcywgZW0gZm9ybWF0byBkaWdpdGFsLCBuZXN0ZSByZXBvc2l0w7NyaW8uCgpDb20gYSBjb25jZXNzw6NvIGRlc3RhIGxpY2Vuw6dhIG7Do28gZXhjbHVzaXZhLCBvIGRlcG9zaXRhbnRlIG1hbnTDqW0gdG9kb3Mgb3MgZGlyZWl0b3MgZGUgYXV0b3IuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKTGljZW7Dp2EgZGUgRGlzdHJpYnVpw6fDo28gTsOjbyBFeGNsdXNpdmEKCkFvIGNvbmNvcmRhciBjb20gZXN0YSBsaWNlbsOnYSBlIGFjZWl0w6EtbGEsIHZvY8OqIChhdXRvciBvdSBkZXRlbnRvciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMpOgoKYSkgRGVjbGFyYSBxdWUgY29uaGVjZSBhIHBvbMOtdGljYSBkZSBjb3B5cmlnaHQgZGEgZWRpdG9yYSBkbyBzZXUgZG9jdW1lbnRvOwpiKSBEZWNsYXJhIHF1ZSBjb25oZWNlIGUgYWNlaXRhIGFzIERpcmV0cml6ZXMgcGFyYSBvIFJlcG9zaXTDs3JpbyBJbnN0aXR1Y2lvbmFsIGRhIFVGUEU7CmMpIENvbmNlZGUgw6AgVUZQRSBvIGRpcmVpdG8gbsOjbyBleGNsdXNpdm8gZGUgYXJxdWl2YXIsIHJlcHJvZHV6aXIsIGNvbnZlcnRlciAoY29tbyBkZWZpbmlkbyBhIHNlZ3VpciksIGNvbXVuaWNhciBlL291IGRpc3RyaWJ1aXIsIG5vIFJJLCBvIGRvY3VtZW50byBlbnRyZWd1ZSAoaW5jbHVpbmRvIG8gcmVzdW1vL2Fic3RyYWN0KSBlbSBmb3JtYXRvIGRpZ2l0YWwgb3UgcG9yIG91dHJvIG1laW87CmQpIERlY2xhcmEgcXVlIGF1dG9yaXphIGEgVUZQRSBhIGFycXVpdmFyIG1haXMgZGUgdW1hIGPDs3BpYSBkZXN0ZSBkb2N1bWVudG8gZSBjb252ZXJ0w6otbG8sIHNlbSBhbHRlcmFyIG8gc2V1IGNvbnRlw7pkbywgcGFyYSBxdWFscXVlciBmb3JtYXRvIGRlIGZpY2hlaXJvLCBtZWlvIG91IHN1cG9ydGUsIHBhcmEgZWZlaXRvcyBkZSBzZWd1cmFuw6dhLCBwcmVzZXJ2YcOnw6NvIChiYWNrdXApIGUgYWNlc3NvOwplKSBEZWNsYXJhIHF1ZSBvIGRvY3VtZW50byBzdWJtZXRpZG8gw6kgbyBzZXUgdHJhYmFsaG8gb3JpZ2luYWwgZSBxdWUgZGV0w6ltIG8gZGlyZWl0byBkZSBjb25jZWRlciBhIHRlcmNlaXJvcyBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBhIGVudHJlZ2EgZG8gZG9jdW1lbnRvIG7Do28gaW5mcmluZ2Ugb3MgZGlyZWl0b3MgZGUgb3V0cmEgcGVzc29hIG91IGVudGlkYWRlOwpmKSBEZWNsYXJhIHF1ZSwgbm8gY2FzbyBkbyBkb2N1bWVudG8gc3VibWV0aWRvIGNvbnRlciBtYXRlcmlhbCBkbyBxdWFsIG7Do28gZGV0w6ltIG9zIGRpcmVpdG9zIGRlCmF1dG9yLCBvYnRldmUgYSBhdXRvcml6YcOnw6NvIGlycmVzdHJpdGEgZG8gcmVzcGVjdGl2byBkZXRlbnRvciBkZXNzZXMgZGlyZWl0b3MgcGFyYSBjZWRlciDDoApVRlBFIG9zIGRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgTGljZW7Dp2EgZSBhdXRvcml6YXIgYSB1bml2ZXJzaWRhZGUgYSB1dGlsaXrDoS1sb3MgbGVnYWxtZW50ZS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBlc3NlIG1hdGVyaWFsIGN1am9zIGRpcmVpdG9zIHPDo28gZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUgaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3UgY29udGXDumRvIGRvIGRvY3VtZW50byBlbnRyZWd1ZTsKZykgU2UgbyBkb2N1bWVudG8gZW50cmVndWUgw6kgYmFzZWFkbyBlbSB0cmFiYWxobyBmaW5hbmNpYWRvIG91IGFwb2lhZG8gcG9yIG91dHJhIGluc3RpdHVpw6fDo28gcXVlIG7Do28gYSBVRlBFLCBkZWNsYXJhIHF1ZSBjdW1wcml1IHF1YWlzcXVlciBvYnJpZ2HDp8O1ZXMgZXhpZ2lkYXMgcGVsbyByZXNwZWN0aXZvIGNvbnRyYXRvIG91IGFjb3Jkby4KCkEgVUZQRSBpZGVudGlmaWNhcsOhIGNsYXJhbWVudGUgbyhzKSBub21lKHMpIGRvKHMpIGF1dG9yIChlcykgZG9zIGRpcmVpdG9zIGRvIGRvY3VtZW50byBlbnRyZWd1ZSBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIHBhcmEgYWzDqW0gZG8gcHJldmlzdG8gbmEgYWzDrW5lYSBjKS4KRepositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212020-08-15T05:10:49Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false |
dc.title.pt_BR.fl_str_mv |
Síntese de programas via localizador de modelo |
title |
Síntese de programas via localizador de modelo |
spellingShingle |
Síntese de programas via localizador de modelo CORREIA, Alexandre Roberto de Souza Engenharia de software Síntese de programas Linguagem de programação |
title_short |
Síntese de programas via localizador de modelo |
title_full |
Síntese de programas via localizador de modelo |
title_fullStr |
Síntese de programas via localizador de modelo |
title_full_unstemmed |
Síntese de programas via localizador de modelo |
title_sort |
Síntese de programas via localizador de modelo |
author |
CORREIA, Alexandre Roberto de Souza |
author_facet |
CORREIA, Alexandre Roberto de Souza |
author_role |
author |
dc.contributor.authorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/6625835762892250 |
dc.contributor.advisorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/0005349558315095 |
dc.contributor.advisor-coLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/2794026545404598 |
dc.contributor.author.fl_str_mv |
CORREIA, Alexandre Roberto de Souza |
dc.contributor.advisor1.fl_str_mv |
IYODA, Juliano Manabu |
dc.contributor.advisor-co1.fl_str_mv |
MOTA, Alexandre Cabral |
contributor_str_mv |
IYODA, Juliano Manabu MOTA, Alexandre Cabral |
dc.subject.por.fl_str_mv |
Engenharia de software Síntese de programas Linguagem de programação |
topic |
Engenharia de software Síntese de programas Linguagem de programação |
description |
Uma das finalidades de Síntese de programas é mecanizar a tarefa de programar, a partir da intenção do usuário (expressa de diferentes formas como pré/pós condição, exemplos, sketches, etc). Há diversas abordagens de síntese de programas que costumam ser implementadas isoladamente: dedutiva, guiada por sintaxe, indutiva, etc. Neste trabalho, descrevemos o PSMF, como uma abordagem (implementada como um sintetizador) que combina modelo de busca e algoritmo genético. O PSMF proposto expressa a intenção do usuário em exemplos de entrada/saída (exemplos E/S), soft sketch (ou seja, um conjunto de comandos que devem aparecer no programa sintetizado, mas são escritos em qualquer ordem) e ingredientes sintáticos (quantidades de construtores sintáticos que devem aparecer no programa sintetizado). A saída gerada pelo PSMF é um programa imperativo de propósito geral. A combinação de síntese indutiva com algoritmo genético permitiu o PSMF sintetizar programas com (ou sem) arrays, totalizando 16 programas (Max2, Max3, Max4, GCD, IntSqrt, Maj5, Maj8, Modu, Fact, Fib, aMax; aDouble; aSum, eCount, aBubSort e aSelSort) bem conhecidos nas comunidades de síntese de programas (Competição SyGuS, Programação Genética). Executamos avaliações empíricas da efetividade da nova implementação e o tempo médio de síntese desses 16 programas variou de 5.0 segundos (Max2) até 15.9 minutos (Fib). |
publishDate |
2020 |
dc.date.accessioned.fl_str_mv |
2020-08-14T18:18:02Z |
dc.date.available.fl_str_mv |
2020-08-14T18:18:02Z |
dc.date.issued.fl_str_mv |
2020-01-24 |
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.citation.fl_str_mv |
CORREIA, Alexandre Roberto de Souza. Síntese de Programas via Localizador de Modelo. 2020. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Pernambuco, Recife, 2020. |
dc.identifier.uri.fl_str_mv |
https://repositorio.ufpe.br/handle/123456789/37652 |
dc.identifier.dark.fl_str_mv |
ark:/64986/001300000qws0 |
identifier_str_mv |
CORREIA, Alexandre Roberto de Souza. Síntese de Programas via Localizador de Modelo. 2020. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Pernambuco, Recife, 2020. ark:/64986/001300000qws0 |
url |
https://repositorio.ufpe.br/handle/123456789/37652 |
dc.language.iso.fl_str_mv |
por |
language |
por |
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/37652/2/license_rdf https://repositorio.ufpe.br/bitstream/123456789/37652/4/TESE%20Alexandre%20Roberto%20de%20Souza%20Correia.pdf.txt https://repositorio.ufpe.br/bitstream/123456789/37652/5/TESE%20Alexandre%20Roberto%20de%20Souza%20Correia.pdf.jpg https://repositorio.ufpe.br/bitstream/123456789/37652/1/TESE%20Alexandre%20Roberto%20de%20Souza%20Correia.pdf https://repositorio.ufpe.br/bitstream/123456789/37652/3/license.txt |
bitstream.checksum.fl_str_mv |
e39d27027a6cc9cb039ad269a5db8e34 05efe2cf57e5e22e3842fa47d15593f1 b8aca63e707422d83f03deb6c1a8e3c8 d8d6ace014ff28e9e8c3e5406da599df bd573a5ca8288eb7272482765f819534 |
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_ |
1815172890211909632 |