Funções sobrecarregadas como objeto de primeira classe

Detalhes bibliográficos
Autor(a) principal: Elton Maximo Cardoso
Data de Publicação: 2010
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFMG
Texto Completo: http://hdl.handle.net/1843/SLSS-8BFHAY
Resumo: O uso de polimorfismo em linguagens de programação constitui um importante recurso para reuso de código e para clareza e concisão de programas. A base para implementação de polimorfismo em linguagens de programação modernas é o sistema de tipos de Hindley-Milner (HM) e uma extensão bastante útil desse sistema é a possibilidade de definição de símbolos sobrecarregados (com tipo polimórfico restrito). No sistema HM a inferência de tipos é relativamente simples, em razão de sua restrição de que parâmetros de funções devem ter tipo monomórfico. Esse requerimento pode entretanto ser um inconveniente em diversas aplicações. Este trabalho propõe uma extensão ao sistema de tipos de Hindley-Milner + sobrecarga, a qual possibilita a definição de funções com parâmetros de tipo polimórfico, mediante anotação explícita do tipo de tais funções pelo programador, sendo esses tipos especificados na forma de tipos interseção. No sistema proposto, funções com parâmetros polimórficos podem tanto ser aplicadas a argumentos de tipo polimórfico paramétrico (como em sistemas de polimorfismo de rank superior), como a argumentos de tipo polimórfico restrito, promovendo valores sobrecarregados a objetos de primeira classe .
id UFMG_9aef11ecb17a4b699e24bea19cec5cfa
oai_identifier_str oai:repositorio.ufmg.br:1843/SLSS-8BFHAY
network_acronym_str UFMG
network_name_str Repositório Institucional da UFMG
repository_id_str
spelling Carlos Camarao de FigueiredoLucilia Camarão de FigueiredoAtze DjisktraMariza Andrade da Silva BigonhaElton Maximo Cardoso2019-08-09T15:18:22Z2019-08-09T15:18:22Z2010-11-19http://hdl.handle.net/1843/SLSS-8BFHAYO uso de polimorfismo em linguagens de programação constitui um importante recurso para reuso de código e para clareza e concisão de programas. A base para implementação de polimorfismo em linguagens de programação modernas é o sistema de tipos de Hindley-Milner (HM) e uma extensão bastante útil desse sistema é a possibilidade de definição de símbolos sobrecarregados (com tipo polimórfico restrito). No sistema HM a inferência de tipos é relativamente simples, em razão de sua restrição de que parâmetros de funções devem ter tipo monomórfico. Esse requerimento pode entretanto ser um inconveniente em diversas aplicações. Este trabalho propõe uma extensão ao sistema de tipos de Hindley-Milner + sobrecarga, a qual possibilita a definição de funções com parâmetros de tipo polimórfico, mediante anotação explícita do tipo de tais funções pelo programador, sendo esses tipos especificados na forma de tipos interseção. No sistema proposto, funções com parâmetros polimórficos podem tanto ser aplicadas a argumentos de tipo polimórfico paramétrico (como em sistemas de polimorfismo de rank superior), como a argumentos de tipo polimórfico restrito, promovendo valores sobrecarregados a objetos de primeira classe .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.Universidade Federal de Minas GeraisUFMGLinguagem de programação (Computadores)ComputaçãoProgramação (Computadores)computaçãoLinguagem de programaçãoFunções sobrecarregadas como objeto de primeira classeinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UFMGinstname:Universidade Federal de Minas Gerais (UFMG)instacron:UFMGORIGINALfun__es_sobrecarregadas_como_objeto_de_primeira_classe.pdfapplication/pdf1865606https://repositorio.ufmg.br/bitstream/1843/SLSS-8BFHAY/1/fun__es_sobrecarregadas_como_objeto_de_primeira_classe.pdff2f00e1339f0eb7b04230fc8f6a079d1MD51eltonmaximocardoso.pdfapplication/pdf1776225https://repositorio.ufmg.br/bitstream/1843/SLSS-8BFHAY/2/eltonmaximocardoso.pdf1f4e8f6a73a1a1087865cda8cdb579acMD52TEXTfun__es_sobrecarregadas_como_objeto_de_primeira_classe.pdf.txtfun__es_sobrecarregadas_como_objeto_de_primeira_classe.pdf.txtExtracted texttext/plain139468https://repositorio.ufmg.br/bitstream/1843/SLSS-8BFHAY/3/fun__es_sobrecarregadas_como_objeto_de_primeira_classe.pdf.txt12b6c669a6f52d76f3b935c4582a7c88MD53eltonmaximocardoso.pdf.txteltonmaximocardoso.pdf.txtExtracted texttext/plain139468https://repositorio.ufmg.br/bitstream/1843/SLSS-8BFHAY/4/eltonmaximocardoso.pdf.txt12b6c669a6f52d76f3b935c4582a7c88MD541843/SLSS-8BFHAY2019-11-14 05:30:22.497oai:repositorio.ufmg.br:1843/SLSS-8BFHAYRepositório de PublicaçõesPUBhttps://repositorio.ufmg.br/oaiopendoar:2019-11-14T08:30:22Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)false
dc.title.pt_BR.fl_str_mv Funções sobrecarregadas como objeto de primeira classe
title Funções sobrecarregadas como objeto de primeira classe
spellingShingle Funções sobrecarregadas como objeto de primeira classe
Elton Maximo Cardoso
computação
Linguagem de programação
Linguagem de programação (Computadores)
Computação
Programação (Computadores)
title_short Funções sobrecarregadas como objeto de primeira classe
title_full Funções sobrecarregadas como objeto de primeira classe
title_fullStr Funções sobrecarregadas como objeto de primeira classe
title_full_unstemmed Funções sobrecarregadas como objeto de primeira classe
title_sort Funções sobrecarregadas como objeto de primeira classe
author Elton Maximo Cardoso
author_facet Elton Maximo Cardoso
author_role author
dc.contributor.advisor1.fl_str_mv Carlos Camarao de Figueiredo
dc.contributor.advisor-co1.fl_str_mv Lucilia Camarão de Figueiredo
dc.contributor.referee1.fl_str_mv Atze Djisktra
dc.contributor.referee2.fl_str_mv Mariza Andrade da Silva Bigonha
dc.contributor.author.fl_str_mv Elton Maximo Cardoso
contributor_str_mv Carlos Camarao de Figueiredo
Lucilia Camarão de Figueiredo
Atze Djisktra
Mariza Andrade da Silva Bigonha
dc.subject.por.fl_str_mv computação
Linguagem de programação
topic computação
Linguagem de programação
Linguagem de programação (Computadores)
Computação
Programação (Computadores)
dc.subject.other.pt_BR.fl_str_mv Linguagem de programação (Computadores)
Computação
Programação (Computadores)
description O uso de polimorfismo em linguagens de programação constitui um importante recurso para reuso de código e para clareza e concisão de programas. A base para implementação de polimorfismo em linguagens de programação modernas é o sistema de tipos de Hindley-Milner (HM) e uma extensão bastante útil desse sistema é a possibilidade de definição de símbolos sobrecarregados (com tipo polimórfico restrito). No sistema HM a inferência de tipos é relativamente simples, em razão de sua restrição de que parâmetros de funções devem ter tipo monomórfico. Esse requerimento pode entretanto ser um inconveniente em diversas aplicações. Este trabalho propõe uma extensão ao sistema de tipos de Hindley-Milner + sobrecarga, a qual possibilita a definição de funções com parâmetros de tipo polimórfico, mediante anotação explícita do tipo de tais funções pelo programador, sendo esses tipos especificados na forma de tipos interseção. No sistema proposto, funções com parâmetros polimórficos podem tanto ser aplicadas a argumentos de tipo polimórfico paramétrico (como em sistemas de polimorfismo de rank superior), como a argumentos de tipo polimórfico restrito, promovendo valores sobrecarregados a objetos de primeira classe .
publishDate 2010
dc.date.issued.fl_str_mv 2010-11-19
dc.date.accessioned.fl_str_mv 2019-08-09T15:18:22Z
dc.date.available.fl_str_mv 2019-08-09T15:18:22Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/1843/SLSS-8BFHAY
url http://hdl.handle.net/1843/SLSS-8BFHAY
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Minas Gerais
dc.publisher.initials.fl_str_mv UFMG
publisher.none.fl_str_mv Universidade Federal de Minas Gerais
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFMG
instname:Universidade Federal de Minas Gerais (UFMG)
instacron:UFMG
instname_str Universidade Federal de Minas Gerais (UFMG)
instacron_str UFMG
institution UFMG
reponame_str Repositório Institucional da UFMG
collection Repositório Institucional da UFMG
bitstream.url.fl_str_mv https://repositorio.ufmg.br/bitstream/1843/SLSS-8BFHAY/1/fun__es_sobrecarregadas_como_objeto_de_primeira_classe.pdf
https://repositorio.ufmg.br/bitstream/1843/SLSS-8BFHAY/2/eltonmaximocardoso.pdf
https://repositorio.ufmg.br/bitstream/1843/SLSS-8BFHAY/3/fun__es_sobrecarregadas_como_objeto_de_primeira_classe.pdf.txt
https://repositorio.ufmg.br/bitstream/1843/SLSS-8BFHAY/4/eltonmaximocardoso.pdf.txt
bitstream.checksum.fl_str_mv f2f00e1339f0eb7b04230fc8f6a079d1
1f4e8f6a73a1a1087865cda8cdb579ac
12b6c669a6f52d76f3b935c4582a7c88
12b6c669a6f52d76f3b935c4582a7c88
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)
repository.mail.fl_str_mv
_version_ 1803589339881406464