Integrando Haskell à Plataforma .NET

Detalhes bibliográficos
Ano de defesa: 2006
Autor(a) principal: Louise de Barros Monteiro, Monique
Orientador(a): Luís de Medeiros Santos, Andre
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 Pernambuco
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: https://repositorio.ufpe.br/handle/123456789/2618
Resumo: Tradicionalmente, linguagens funcionais fornecem um grau de abstração superior ao encontrado em outros paradigmas (imperativo, orientado a objetos), o que se manifesta por meio de construções de alto nível como funções de alta ordem, aplicações parciais, polimorfismo paramétrico e, em algumas linguagens, avaliação sob demanda. Entretanto, a utilização do paradigma funcional tem-se restringido basicamente a aplicações acadêmicas. Essa restrição é em parte explicada pela ausência de ambientes de desenvolvimento e APIs que melhorem a produtividade do desenvolvedor na construção de aplicações que fazem uso das tecnologias mais recentes de desenvolvimento Web, computação distribuída, arquitetura orientada a serviços, entre outras. Por outro lado, plataformas como a Java Virtual Machine e, mais recentemente, a Plataforma .NET, disponibilizam uma amplagama de serviços e bibliotecas que satisfazem aos tipos de aplicações supracitados. O ambiente .NET, em particular, destaca-se por suportar múltiplas linguagens, apesar do suporte ser mais amplo a linguagens orientadas a objeto. Dentro desse contexto, surge a oportunidade de portar linguagens funcionais para essa plataforma, permitindo não apenas o acesso aos serviços por ela fornecidos como também uma interoperabilidade natural com outras linguagens. O objetivo deste trabalho é o desenvolvimento de uma implementação da linguagem funcional Hask ell para a Plataforma .NET. Tal implementaçãonão é trivial devido ao g a p semântico que existe entre uma linguagem funcional com avaliação sob demanda e um ambiente como o .NET. F oi desenvolvido um gerador de código capaz de gerar, a partir de um programa Hask ell, código em IL - linguagem assembly suportada pela máquina virtual. Paralelamente, foram conduzidas medições de desempenho do código gerado. Tais medições demonstraram performance razoável para váriosprogramas. Entretanto, a principal contribuição deste trabalho está na disponibilizaçãode uma implementação Hask ell que serve como principal passo rumo µa interoperabilidade com a Plataforma .NET. Além disso, a solução desenvolvida serve como um ambiente de teste e validação de diferentes alternativas de tradução de uma linguagem funcional para as construções encontradas em uma plataforma como .NET
id UFPE_ecc053c4c8077861a1ebd683dc7e3c70
oai_identifier_str oai:repositorio.ufpe.br:123456789/2618
network_acronym_str UFPE
network_name_str Repositório Institucional da UFPE
repository_id_str
spelling Louise de Barros Monteiro, MoniqueLuís de Medeiros Santos, Andre 2014-06-12T15:59:41Z2014-06-12T15:59:41Z2006Louise de Barros Monteiro, Monique; Luís de Medeiros Santos, Andre. Integrando Haskell à Plataforma .NET. 2006. Dissertação (Mestrado). Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2006.https://repositorio.ufpe.br/handle/123456789/2618Tradicionalmente, linguagens funcionais fornecem um grau de abstração superior ao encontrado em outros paradigmas (imperativo, orientado a objetos), o que se manifesta por meio de construções de alto nível como funções de alta ordem, aplicações parciais, polimorfismo paramétrico e, em algumas linguagens, avaliação sob demanda. Entretanto, a utilização do paradigma funcional tem-se restringido basicamente a aplicações acadêmicas. Essa restrição é em parte explicada pela ausência de ambientes de desenvolvimento e APIs que melhorem a produtividade do desenvolvedor na construção de aplicações que fazem uso das tecnologias mais recentes de desenvolvimento Web, computação distribuída, arquitetura orientada a serviços, entre outras. Por outro lado, plataformas como a Java Virtual Machine e, mais recentemente, a Plataforma .NET, disponibilizam uma amplagama de serviços e bibliotecas que satisfazem aos tipos de aplicações supracitados. O ambiente .NET, em particular, destaca-se por suportar múltiplas linguagens, apesar do suporte ser mais amplo a linguagens orientadas a objeto. Dentro desse contexto, surge a oportunidade de portar linguagens funcionais para essa plataforma, permitindo não apenas o acesso aos serviços por ela fornecidos como também uma interoperabilidade natural com outras linguagens. O objetivo deste trabalho é o desenvolvimento de uma implementação da linguagem funcional Hask ell para a Plataforma .NET. Tal implementaçãonão é trivial devido ao g a p semântico que existe entre uma linguagem funcional com avaliação sob demanda e um ambiente como o .NET. F oi desenvolvido um gerador de código capaz de gerar, a partir de um programa Hask ell, código em IL - linguagem assembly suportada pela máquina virtual. Paralelamente, foram conduzidas medições de desempenho do código gerado. Tais medições demonstraram performance razoável para váriosprogramas. Entretanto, a principal contribuição deste trabalho está na disponibilizaçãode uma implementação Hask ell que serve como principal passo rumo µa interoperabilidade com a Plataforma .NET. Além disso, a solução desenvolvida serve como um ambiente de teste e validação de diferentes alternativas de tradução de uma linguagem funcional para as construções encontradas em uma plataforma como .NETporUniversidade Federal de PernambucoAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessCompiladoresLinguagens funcionaisHask ell.NETMáquinas virtuaisIntegrando Haskell à Plataforma .NETinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPETHUMBNAILarquivo5500_1.pdf.jpgarquivo5500_1.pdf.jpgGenerated Thumbnailimage/jpeg1227https://repositorio.ufpe.br/bitstream/123456789/2618/4/arquivo5500_1.pdf.jpg9e348ab268c7d23c68412aa586e781b5MD54ORIGINALarquivo5500_1.pdfapplication/pdf3962680https://repositorio.ufpe.br/bitstream/123456789/2618/1/arquivo5500_1.pdf4dba3d9b94bbd26eb1eec27b1083b622MD51LICENSElicense.txttext/plain1748https://repositorio.ufpe.br/bitstream/123456789/2618/2/license.txt8a4605be74aa9ea9d79846c1fba20a33MD52TEXTarquivo5500_1.pdf.txtarquivo5500_1.pdf.txtExtracted texttext/plain299519https://repositorio.ufpe.br/bitstream/123456789/2618/3/arquivo5500_1.pdf.txt5c576a406479a2497071e761ba31f485MD53123456789/26182019-10-25 12:56:15.079oai:repositorio.ufpe.br:123456789/2618Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=Repositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212019-10-25T15:56:15Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false
dc.title.pt_BR.fl_str_mv Integrando Haskell à Plataforma .NET
title Integrando Haskell à Plataforma .NET
spellingShingle Integrando Haskell à Plataforma .NET
Louise de Barros Monteiro, Monique
Compiladores
Linguagens funcionais
Hask ell
.NET
Máquinas virtuais
title_short Integrando Haskell à Plataforma .NET
title_full Integrando Haskell à Plataforma .NET
title_fullStr Integrando Haskell à Plataforma .NET
title_full_unstemmed Integrando Haskell à Plataforma .NET
title_sort Integrando Haskell à Plataforma .NET
author Louise de Barros Monteiro, Monique
author_facet Louise de Barros Monteiro, Monique
author_role author
dc.contributor.author.fl_str_mv Louise de Barros Monteiro, Monique
dc.contributor.advisor1.fl_str_mv Luís de Medeiros Santos, Andre
contributor_str_mv Luís de Medeiros Santos, Andre
dc.subject.por.fl_str_mv Compiladores
Linguagens funcionais
Hask ell
.NET
Máquinas virtuais
topic Compiladores
Linguagens funcionais
Hask ell
.NET
Máquinas virtuais
description Tradicionalmente, linguagens funcionais fornecem um grau de abstração superior ao encontrado em outros paradigmas (imperativo, orientado a objetos), o que se manifesta por meio de construções de alto nível como funções de alta ordem, aplicações parciais, polimorfismo paramétrico e, em algumas linguagens, avaliação sob demanda. Entretanto, a utilização do paradigma funcional tem-se restringido basicamente a aplicações acadêmicas. Essa restrição é em parte explicada pela ausência de ambientes de desenvolvimento e APIs que melhorem a produtividade do desenvolvedor na construção de aplicações que fazem uso das tecnologias mais recentes de desenvolvimento Web, computação distribuída, arquitetura orientada a serviços, entre outras. Por outro lado, plataformas como a Java Virtual Machine e, mais recentemente, a Plataforma .NET, disponibilizam uma amplagama de serviços e bibliotecas que satisfazem aos tipos de aplicações supracitados. O ambiente .NET, em particular, destaca-se por suportar múltiplas linguagens, apesar do suporte ser mais amplo a linguagens orientadas a objeto. Dentro desse contexto, surge a oportunidade de portar linguagens funcionais para essa plataforma, permitindo não apenas o acesso aos serviços por ela fornecidos como também uma interoperabilidade natural com outras linguagens. O objetivo deste trabalho é o desenvolvimento de uma implementação da linguagem funcional Hask ell para a Plataforma .NET. Tal implementaçãonão é trivial devido ao g a p semântico que existe entre uma linguagem funcional com avaliação sob demanda e um ambiente como o .NET. F oi desenvolvido um gerador de código capaz de gerar, a partir de um programa Hask ell, código em IL - linguagem assembly suportada pela máquina virtual. Paralelamente, foram conduzidas medições de desempenho do código gerado. Tais medições demonstraram performance razoável para váriosprogramas. Entretanto, a principal contribuição deste trabalho está na disponibilizaçãode uma implementação Hask ell que serve como principal passo rumo µa interoperabilidade com a Plataforma .NET. Além disso, a solução desenvolvida serve como um ambiente de teste e validação de diferentes alternativas de tradução de uma linguagem funcional para as construções encontradas em uma plataforma como .NET
publishDate 2006
dc.date.issued.fl_str_mv 2006
dc.date.accessioned.fl_str_mv 2014-06-12T15:59:41Z
dc.date.available.fl_str_mv 2014-06-12T15:59:41Z
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.citation.fl_str_mv Louise de Barros Monteiro, Monique; Luís de Medeiros Santos, Andre. Integrando Haskell à Plataforma .NET. 2006. Dissertação (Mestrado). Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2006.
dc.identifier.uri.fl_str_mv https://repositorio.ufpe.br/handle/123456789/2618
identifier_str_mv Louise de Barros Monteiro, Monique; Luís de Medeiros Santos, Andre. Integrando Haskell à Plataforma .NET. 2006. Dissertação (Mestrado). Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2006.
url https://repositorio.ufpe.br/handle/123456789/2618
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Pernambuco
publisher.none.fl_str_mv Universidade Federal de Pernambuco
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFPE
instname:Universidade Federal de Pernambuco (UFPE)
instacron:UFPE
instname_str Universidade Federal de Pernambuco (UFPE)
instacron_str UFPE
institution UFPE
reponame_str Repositório Institucional da UFPE
collection Repositório Institucional da UFPE
bitstream.url.fl_str_mv https://repositorio.ufpe.br/bitstream/123456789/2618/4/arquivo5500_1.pdf.jpg
https://repositorio.ufpe.br/bitstream/123456789/2618/1/arquivo5500_1.pdf
https://repositorio.ufpe.br/bitstream/123456789/2618/2/license.txt
https://repositorio.ufpe.br/bitstream/123456789/2618/3/arquivo5500_1.pdf.txt
bitstream.checksum.fl_str_mv 9e348ab268c7d23c68412aa586e781b5
4dba3d9b94bbd26eb1eec27b1083b622
8a4605be74aa9ea9d79846c1fba20a33
5c576a406479a2497071e761ba31f485
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)
repository.mail.fl_str_mv attena@ufpe.br
_version_ 1862741758005215232