Content area
Abstract
A indústria dos microprocessadores é uma área com uma dinâmica ímpar, reconhecida pelo seu avançado estado tecnológico, mas também pela sua constante evolução. Esta dinâmica deve-se em grande parte à pressão que é constantemente exercida no sentido de se obter maior poder computacional. Pressão essa que tem crescido de forma exponencial, e à qual não é alheia a forte expansão da \gloss{web} e o uso generalizado de conteúdos multimédia. %Note-se por exemplo que a compactação de vídeo em real time só se tornou viável dotando os microprocessadores de instruções específicas para esse fim.
No entanto, esta evolução só é rentabilizada através da utilização de ferramentas adequadas, como é o caso dos compiladores, que por desempenharem um papel fundamental têm forçosamente de acompanhar a evolução dos microprocessadores. É, como tal, exigida uma resposta rápida por parte de quem desenvolve este tipo de ferramentas e a tecnologia que lhes está inerente. Daí que o desenvolvimento de aplicações que visem a construção de compiladores tenha um papel crucial, quer no sentido de tornar mais acessível a realização de uma tarefa que é complexa, quer no sentido de acelerar o processo de desenvolvimento de forma a acompanhar a evolução dos microprocessadores. Objectivos que aliás estão relacionados, dado que este processo será tão mais rápido, quanto mais acessível for a própria construção dos compiladores.
Este trabalho de doutoramento tem assim por objectivo contribuir para simplificar o processo de construção de compiladores. Pretende-se mostrar que a melhor forma de alcançar este objectivo, passa pela utilização de uma abordagem, centrada no nível intermédio do processo de compilação, que tem por base uma framework. No sentido de suportar esta abordagem, propõe-se um modelo para a representação de código, que introduz novos conceitos e funcionalidades, que visam facilitar o desenvolvimento dos componentes e contribuir para que estes sejam mais eficientes.
A grande contribuição deste trabalho de doutoramento é, no entanto, numa arquitectura que estabelece o comportamento e o relacionamento entre os elementos da representação de código e os componentes que sobre estes trabalham. Esta arquitectura, para além de garantir a eficiência do processo de compilação, simplifica a reutilização dos componentes, poupando o utilizador à implementação de vários mecanismos relacionados com a consistência e a gestão de dependências entre componentes
Do trabalho realizado ao longo deste doutoramento, resultou também uma plataforma para desenvolvimento de compiladores, a framework Dolphin, cuja implementação teve por objectivo testar a viabilidade do modelo de representação de código e da arquitectura propostas nesta dissertação.





