Dissertação

Pure Function Synthesis in the OutSystems Platform EVALUATED

A síntese de programas consiste em gerar automaticamente um programa a partir de uma especificação usada para definir a intenção do utilizador. A plataforma OutSystems é uma plataforma de desenvolvimento low-code que permite o desenvolvimento de aplicações através de uma interface gráfica. A plataforma OutSystems permite que a lógica das aplicações seja implementada através de fluxos de ações, que por sua vez podem ser usados para executar várias operações complexas e recorrentes, tais como as operações de manipulação de dados. Para tal, as funções puras podem ser usadas em expressões usadas pela linguagem OutSystems de forma a executar estas operações. As funções puras são um tipo de função que não tem quaisquer efeitos secundários e o seu valor de retorno é determinado pelos seus valores de input. Contudo, escrever este tipo de funções pode tornar-se uma tarefa repetitiva e aborrecida devido à sua frequência, e pode ainda ser uma tarefa difícil para utilizadores com menos experiência. Neste documento apresentamos o PUFS, um sintetizador de funções puras, que dado um conjunto de exemplos input-output, como especificação do comportamento da função desejada, sintetiza uma função pura. A nossa solução consiste numa combinação entre sketches de programas como uma representação parcial de uma função parcial e procura enumerativa em conjunto com Satisfazibilidade Módulo Teorias (SMT), para preencher os sketches de programas de forma a obter a função completa. Avaliámos a nossa solução em instâncias do mundo real, mostrando resultados experimentais promissores para muitas das funções puras recorrentes e comuns.
Síntese de Programas, Satisfazibilidade Módulo Teorias, Programação-por-Exemplo

janeiro 14, 2021, 10:30

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

Maria Inês Camarate de Campos Lynce de Faria

Departamento de Engenharia Informática (DEI)

Professor Associado

ORIENTADOR

Miguel Ângelo da Terra Neves

OutSystems

Senior Research Scientist