|
Acadêmico(a): Douglas Matheus de Souza |
Título: Interpretador de Consultas para Objetos Java |
|
Conclusão: |
A utilização de uma biblioteca para consulta em coleções ou vetores do Java pode agilizar o desenvolvimento de aplicações que buscam dados em memória. Ferramentas como LambdaJ e Coollection, oferecem uma opção para programadores que não desejam trabalhar com repetidos comandos for e if. Porém, estas ferramentas não disponibilizam uma linguagem de consulta, e sim uma série de classes e métodos que auxiliam na recuperação de objetos em coleções.
Com o uso do interpretador de consultas para objetos Java, códigos que hoje são escritos utilizando os comandos for e if, podem ser substituídos por Strings de consulta. Além de ficar mais claro e conciso, o código também fica mais dinâmico, uma vez que a String de consulta pode ser montada em partes.
Levando em consideração que as operações básicas da álgebra relacional foram implementadas, pode-se dizer que o objetivo deste trabalho foi alcançado. O interpretador mostrou-se capaz de executar consultas que combinam diferentes operadores algébricos como projeção, restrição, junção, produto cartesiano, agrupamento, agregação e ordenação. Os analisadores léxico e sintático, gerados pelo JavaCC, foram capazes de detectar erros no código de consulta, assim como certas inconsistências puderam ser detectadas pelo analisador semântico.
É interessante observar que, operações mais complexas, especialmente junções e restrições, devem ser implementadas com bastante cautela, para que a ferramenta possa ter um bom desempenho no que diz respeito ao tempo de execução. Desta maneira, pode-se dizer que uma das grandes dificuldades encontradas neste trabalho foi lidar com restrições disjuntivas (conectadas pelo operador lógico or) quando a consulta é feita sobre mais de uma coleção.
Por fim, pode-se concluir que o desenvolvimento de uma ferramenta que auxilie na execução de consultas em memória é uma tarefa possível de ser realizada. A existência de uma linguagem de consulta para o Java pode vir a facilitar o desenvolvimento de aplicações de consulta, assim como o LINQ para a linguagem C#.
|
|
|