| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 1.64 MB | Adobe PDF |
Autores
Orientador(es)
Resumo(s)
Quando se compara a linguagem Eiffel com a linguagem Java, a diferença com mais impacto no estilo de programação é o facto de a primeira permitir métodos com argumentos covariantes, isto é, permitir a especialização do tipo dos argumentos à medida que se desce na hierarquia. Esta possibilidade é uma vantagem porque permite modelar determinados aspectos do mundo real de forma mais directa e intuitiva. Mas também há uma desvantagem que justifica a raridade desta opção na generalidade das linguagens modernas: o facto de criar complicações ao nível da tipificação estática dos programas. O objectivo deste trabalho é criar uma variante do Java, chamada JavaCO, cujo sistema de tipos será baseado em covariância, à imagem do sistema de tipos da linguagem Eiffel. A introdução de um novo tipo genérico “This”, servirá para aumentar a utilidade prática do mecanismo de covariância. Espera-se assim proporcionar uma experiência de programação similar à da linguagem Eiffel, mas num ambiente de programação Java, usando as ferramentas e bibliotecas do Java. A nova linguagem será implementada através da tradução para Java puro. A implementação seguirá as linhas da definição semântica e consistirá num tradutor escrito usando a ferramenta SableCC. O tradutor fará alguma análise estática dos programas de entrada; contudo, os aspectos mais essenciais da nova linguagem serão implementados por recurso a tipificação dinâmica (na mesma linha do Eiffel “clássico”).
Descrição
Dissertação apresentada na Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa para obtenção do grau de Mestre em Engenharia Informática
Palavras-chave
Linguagens de programação Sistema de tipos Covariância Compilação
