Dissertação

{en_GB=Sketch-Driven SQL Synthesis} {} EVALUATED

{pt=Atualmente, a quantidade de dados que necessitam de ser analisados e manipulados está a crescer rapidamente. Estas manipulações são normalmente um processo complexo e moroso. A OutSystems é uma plataforma de desenvolvimento de baixo código, cujo objetivo é simplificar o desenvolvimento de aplicações para permitir uma rápida, ágil, e contínua entrega de aplicações a nível empresarial, com a maioria das tarefas a serem automatizadas pela plataforma. Esta automatização de tarefas está fortemente relacionada com o problema da síntese de programas, que consiste na geração automática de um programa através de uma especificação. Para além disto, muitas destas manipulações seguem um determinado padrão. Esta informação leva-nos a ser capazes de gerar programas de uma forma mais eficiente e com uma maior precisão. Nesta dissertação de tese, introduzimos SKEL, um sintetizador de queries SQL que utiliza exemplos de input-output como especificação e utiliza também um sketch para guiar o processo de síntese de uma forma mais eficaz. Começamos por estudar diferentes tipos de sketches e criamos um formato de sketch que suporta uma grande variedade de opções e lacunas. Depois, usamos a ferramenta CUBES como ponto de partida, modificando-a para receber sketches de forma a otimizar o processo de procura. Finalmente, avaliamos a nossa ferramenta analisando em que medida a precisão e rapidez melhoram ao usarmos diferentes tipos de sketches. Em geral, os nossos resultados mostram que SKEL é mais eficiente e preciso quando comparado com outras soluções para o mesmo problema., en=Nowadays, the amount of data that needs to be analyzed and manipulated is rapidly increasing. Performing these manipulations is often a complex and cumbersome task. OutSystems is a Low-Code Development Platform whose goal is to simplify the development of many applications enabling a rapid, agile, and continuous delivery of enterprise-grade applications with most of the tasks automated by the platform itself. This automation of tasks is closely related to the program synthesis problem, which consists in automatically generating a program from a specification. Furthermore, many of these manipulations follow a specific pattern from which we could use information in order to generate a program more efficiently and accurately. This dissertation thesis introduces SKEL, an SQL query synthesizer that follows a sketch to guide the search process and uses input-output examples as a specification. We start by studying different types of sketches and create a sketch format that supports a wide range of different options and holes. We then use CUBES as a starting point, modifying it to receive sketches and adding several constraints in order to optimize the search process. Finally, we evaluate our tool by comparing it to a baseline and analyzing the accuracy and efficiency improvement when using different types of sketches. Overall, our results show that SKEL is more efficient and more accurate when compared with previous solutions for the same problem.}
{pt=Síntese de Programas, Exemplos de Input-Output, Sketching, SQL, Programação por exemplo, Engenharia Reversa de Queries, en=Program Synthesis, Input-Output Examples, Sketching, SQL, Programming by Example, Query Reverse Engineering}

novembro 30, 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 Catedrático

ORIENTADOR

Miguel Terra-Neves

OutSystems

Lead Research Scientist