Funções sobrecarregadas como objeto de primeira classe

Detalhes bibliográficos
Ano de defesa: 2010
Autor(a) principal: Elton Maximo Cardoso
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Minas Gerais
UFMG
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: http://hdl.handle.net/1843/SLSS-8BFHAY
Resumo: The use of polymorphic abstractions in programmming languages constitutes an important tool for code reuse and for program clarity and conciseness. The basis of most modern languages for the exploitation of polymorphism is Hindley-Milners type system, which has achieved such success due in great part to the relative simplicity of its type inference mechanism. This simplicity is obtained, however, by imposing somerestrictions. A major restriction is the (so-called) no polymorphic abstraction: function parameters must have a monomorphic type (in other words, parameters cannot be used with distinct types inside the functions body). There has been much work on extensions to overcome this restriction, involving so-called higher rank (also called rank-n) type systems, which allow arguments of polymorphic type. This work follows such vein, but is distinguished from all previous related work as follows.Intersection types are used to allow parameters to be used polymorphically inside a functions definition (the type of such polymorphic parameters must be explicitly annotated); this allows such function to receive arguments not only of polymorphic type may also of constrained polymorphic type (i.e. arguments involving the use of overloaded symbols). This promotes overloaded values to first-class.