Síntese de programas via localizador de modelo

Detalhes bibliográficos
Ano de defesa: 2020
Autor(a) principal: CORREIA, Alexandre Roberto de Souza
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Tese
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Pernambuco
UFPE
Brasil
Programa de Pos Graduacao em Ciencia da Computacao
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: 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).