Utilize este identificador para referenciar este registo:
http://hdl.handle.net/10362/10426
Título: | Optimizações numa linguagem para desenvolvimento de aplicações web |
Autor: | Dolores, Hélio |
Orientador: | Caires, Luís Ferrão, Lúcio |
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 |
Data de Defesa: | 2009 |
Editora: | Faculdade de Ciências e Tecnologia |
Resumo: | 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 |
URI: | http://hdl.handle.net/10362/10426 |
Aparece nas colecções: | FCT: DI - Dissertações de Mestrado |
Ficheiros deste registo:
Ficheiro | Descrição | Tamanho | Formato | |
---|---|---|---|---|
Dolores_2009.pdf | 2,58 MB | Adobe PDF | Ver/Abrir |
Todos os registos no repositório estão protegidos por leis de copyright, com todos os direitos reservados.