Ambiguity and constrained polymorphism.
dc.contributor.author | Figueiredo, Carlos Camarão de | |
dc.contributor.author | Figueiredo, Lucília Camarão de | |
dc.contributor.author | Ribeiro, Rodrigo Geraldo | |
dc.date.accessioned | 2018-01-18T13:38:50Z | |
dc.date.available | 2018-01-18T13:38:50Z | |
dc.date.issued | 2016 | |
dc.description.abstract | This paper considers the problem of ambiguity in Haskell-like languages. Overloading resolution is characterized in the context of constrained polymorphism by the presence of unreachable variables in constraints on the type of the expression. A new definition of ambiguity is presented, where existence of more than one instance for the constraints on an expression type is considered only after overloading resolution. This introduces a clear distinction between ambiguity and overloading resolution, makes ambiguity more intuitive and independent from extra concepts, such as functional dependencies, and enables more programs to type-check as fewer ambiguities arise. The paper presents a type system and a type inference algorithm that includes: a constraint-set satisfiability function, that determines whether a given set of constraints is entailed or not in a given context, focusing on issues related to decidability, a constraint-set improvement function, for filtering out constraints for which overloading has been resolved, and a context-reduction function, for reducing constraint sets according to matching instances. A standard dictionary-style semantics for core Haskell is also presented. | pt_BR |
dc.identifier.citation | FIGUEIREDO, C. C. de; FIGUEIREDO, L. C. de; RIBEIRO, R. G. Ambiguity and constrained polymorphism. Science of Computer Programming, v. 124, p.1-19, 2016. Disponível em: <http://www.sciencedirect.com/science/article/pii/S0167642316000836>. Acesso em: 02 out. 2017. | pt_BR |
dc.identifier.doi | https://doi.org/10.1016/j.scico.2016.03.007 | |
dc.identifier.issn | 0167-6423 | |
dc.identifier.uri | http://www.repositorio.ufop.br/handle/123456789/9269 | |
dc.language.iso | en_US | pt_BR |
dc.rights | aberto | pt_BR |
dc.rights.license | O periódico Science of Computer Programming concede permissão para depósito deste artigo no Repositório Institucional da UFOP. Número da licença: 4230720311201. | pt_BR |
dc.subject | Ambiguity | pt_BR |
dc.subject | Context-dependent overloading | pt_BR |
dc.subject | Haskell | pt_BR |
dc.title | Ambiguity and constrained polymorphism. | pt_BR |
dc.type | Artigo publicado em periodico | pt_BR |
Arquivos
Pacote original
1 - 1 de 1
Nenhuma Miniatura Disponível
- Nome:
- ARTIGO_AmbiguityConstrainedPolymorphism.pdf
- Tamanho:
- 502.18 KB
- Formato:
- Adobe Portable Document Format
Licença do pacote
1 - 1 de 1
Nenhuma Miniatura Disponível
- Nome:
- license.txt
- Tamanho:
- 924 B
- Formato:
- Item-specific license agreed upon to submission
- Descrição: