| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 2.52 MB | Adobe PDF |
Autores
Orientador(es)
Resumo(s)
O desenvolvimento de sistemas para gestão de informação baseada na Web pode ser acelerado
através do uso de ferramentas de programação adequadas, permitindo que equipas de programadores rapidamente desenvolvam e disponibilizem soluções eficientes. Aproximações bem sucedidas assentam no uso de linguagens de domínio especifico (DSL), para a construção de algumas camadas dos sistemas. Tipicamente, a lógica aplicacional interage com os dados nos repositórios por meio de queries e comandos SQL. Depois, o código SQL gerado pelo compilador ou interpretador da DSL a partir das descrições fornecidas pelo programador ou utilizador,
vai estar geralmente mal estruturado ou sub-optimizado se não houver cuidado da parte do optimizador.
Esta dissertação endereça o desenho e validação de um processo de optimização em tempo de compilação para queries SQL embutidas numa linguagem de domínio especifico, usando a DSL da OutSystems como um exemplo motivador. O objectivo não é optimizar a execução de cada query, porque esta tarefa já é bem executada pelo motor da base de dados: a aproximação seguida neste projecto assenta na identificação e análise de padrões sub-optimizados causados pela coexistência entre instruções e comandos SQL e os típicos operadores das linguagens
imperativas. De forma a atingir este objectivo utilizamos transformações de código SQL, envolvendo junções e reestruturações de queries; análise de fluxo de dados para lidar com o controlo de dependências entre operações; transformações de programas e técnicas de avaliação parcial,
como movimentação de código e pré-cálculo.
Depois, escolhemos um destes padrões para ser completamente implementado no compilador
da linguagem OutSystems. Esta optimização considera a informação recolhida em tempo
de compilação e execução sobre os atributos alterados nas entidades e propaga essa informação para as novas operações de update parcial.
Esta dissertação apresenta a implementação e validação, através da análise de aplicações
reais, desta optimização, que foi integrada com sucesso e entrará em produção na próxima
versão do compilador OutSystems.
Descrição
Trabalho apresentado no âmbito do Mestrado em Engenharia Informática, como requisito parcial para obtenção do grau de Mestre em Engenharia Informática
Palavras-chave
Optimização de compiladores Análise de fluxo de dados OutSystems Update parcial Optimização de múltiplas queries Movimentação de código
