Inferência de tipos com suporte para sobrecarga baseada no sistema CT
Carregando...
Arquivos
Data
Autor(es)
Título da Revista
ISSN da Revista
Título de Volume
Editor
Universidade Federal de Minas Gerais
Descrição
Tipo
Tese de doutorado
Título alternativo
Primeiro orientador
Membros da banca
André Luis de Medeiros Santos
Lucilia Camarão de Figueiredo
Roberto ierusalimchy
Mariza Andrade da Silva Bigonha
Roberto da Silva Bigonha
Lucilia Camarão de Figueiredo
Roberto ierusalimchy
Mariza Andrade da Silva Bigonha
Roberto da Silva Bigonha
Resumo
Este trabalho aborda o problema da inferência de tipos com definições sobrecarregadas, apresentando uma revisão do sistema de tipos CT. Esse sistema é uma extensão do sistema proposto por Damas-Milner com suporte para sobrecarga de nomes, onde restrições de tipo são usadas em tipos polimórficos para indicar restrições de instanciação desses tipos, de acordo com definições sobrecarregadas existentes. a inferência de tipos nesse sistema envolve a resolução para o problema da satisfazibilidade de restrições, que trata de decidir se um dado conjunto de restrições de um tipo polimórfico é válido ou não, em um determinado contexto de tipos. Políticas para resolução de sobrecarga muito restritirvas têm sido adotadas para garantir a deibilidade deste problemas. O sistema CT adota uma política de resolução de sobrecarga muito menos restritiva que as presentes em sistemas de tipos similares. As principais contribuições desse trabalho são: uma definição formal do problema de satisfazibilidade de restrições independente das regras de derivação do sistema de tipos, apresentação de um algoritmo para a solução desse problema e a implementação de um protótipo que demonstra que a adoção de uma política de sobrecarga menos restritiva pode funcionar bem na prática. Nos testes realizados com a implementação desse algoritmo, usando código similar a programas implemtnados em Haskell, não foi encotnrada nenhuma situação em que a satisfazibilidade das restrições não pode ser decidida. Para estes casos é utilizado um limite de iteração para interromper o processo e rejeitar a expressão, indicando a ocorrência de um erro de tipo.
Abstract
Assunto
Linguagem de programação (Computadores), Computação
Palavras-chave
Sistemas de tipos, Sobrecarga, Polimorfismo, Linguagens de programação, Inferência de tipos