Aspecth: uma extensão de Haskell orientada a aspectos

Detalhes bibliográficos
Ano de defesa: 2005
Autor(a) principal: ANDRADE, Carlos Andreazza Rego
Orientador(a): SANTOS, Andre Luís de Medeiros
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/2776
Resumo: Uma das principais técnicas de abstração oferecida pelas linguagens de programação atuais é a possibilidade de dividir um sistema em unidades de código que capturam suas funcionalidades. Esta abstração permite que mudanças em uma unidade em particular não se propaguem por todo sistema. No entanto, isto é apenas aplicável quando tais funcionalidades ou preocupações podem de fato ser classificadas como unidades separadas. Algumas funcionalidades ou preocupações - conhecidas como preocupações entrelaçadas (crosscutting concerns) - repercutem por todo o sistema e não podem ser definidas em módulos tradicionais. Assim, todo o código que as implementa fica espalhado e misturado por diversos módulos. O paradigma de programação orientado a aspectos (AOP) tem sido apresentado na literatura como uma maneira alternativa de implementar os crosscutting concerns de um sistema, disponibilizando construções que permitem separá-los em unidades adequadamente. Um conceito central neste paradigma é o de aspecto, que é sua unidade modular. Uma linguagem de programação orientada a aspectos é usualmente estabelecida como uma extensão de uma linguagem de programação existente, provendo ao programador tanto as unidades modulares desta linguagem (conhecida como linguagem base) quanto os aspectos. Este trabalho apresenta a linguagem AspectH, uma extensão orientada a aspectos de Haskell. AspectH implementa o mecanismo AOP de pointcuts e advice como em AspectJ e foi projetada para atuar em programas Haskell que utilizam mônadas. Por meio de AspectH, investigamos os benefícios que uma abordagem AOP pode oferecer no contexto de uma linguagem puramente funcional. Em outras palavras, pretendemos demonstrar que AOP pode fazer por Haskell e linguagens funcionais o que já faz, como exemplo, por linguagens orientadas a objetos. AspectH oferece ao programador a possibilidade de implementar os crosscutting concerns de programas monádicos em aspectos, ajudando-o a criar programas mais modulares e conseqüentemente mais legíveis, mais fáceis de manter e reusar
id UFPE_4704f5e2e71218bc62d75c1779dfa0ae
oai_identifier_str oai:repositorio.ufpe.br:123456789/2776
network_acronym_str UFPE
network_name_str Repositório Institucional da UFPE
repository_id_str
spelling ANDRADE, Carlos Andreazza RegoSANTOS, Andre Luís de Medeiros2014-06-12T16:01:06Z2014-06-12T16:01:06Z2005Andreazza Rego Andrade, Carlos; Luís de Medeiros Santos, Andre. Aspecth: uma extensão de Haskell orientada a aspectos. 2005. Dissertação (Mestrado). Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2005.https://repositorio.ufpe.br/handle/123456789/2776Uma das principais técnicas de abstração oferecida pelas linguagens de programação atuais é a possibilidade de dividir um sistema em unidades de código que capturam suas funcionalidades. Esta abstração permite que mudanças em uma unidade em particular não se propaguem por todo sistema. No entanto, isto é apenas aplicável quando tais funcionalidades ou preocupações podem de fato ser classificadas como unidades separadas. Algumas funcionalidades ou preocupações - conhecidas como preocupações entrelaçadas (crosscutting concerns) - repercutem por todo o sistema e não podem ser definidas em módulos tradicionais. Assim, todo o código que as implementa fica espalhado e misturado por diversos módulos. O paradigma de programação orientado a aspectos (AOP) tem sido apresentado na literatura como uma maneira alternativa de implementar os crosscutting concerns de um sistema, disponibilizando construções que permitem separá-los em unidades adequadamente. Um conceito central neste paradigma é o de aspecto, que é sua unidade modular. Uma linguagem de programação orientada a aspectos é usualmente estabelecida como uma extensão de uma linguagem de programação existente, provendo ao programador tanto as unidades modulares desta linguagem (conhecida como linguagem base) quanto os aspectos. Este trabalho apresenta a linguagem AspectH, uma extensão orientada a aspectos de Haskell. AspectH implementa o mecanismo AOP de pointcuts e advice como em AspectJ e foi projetada para atuar em programas Haskell que utilizam mônadas. Por meio de AspectH, investigamos os benefícios que uma abordagem AOP pode oferecer no contexto de uma linguagem puramente funcional. Em outras palavras, pretendemos demonstrar que AOP pode fazer por Haskell e linguagens funcionais o que já faz, como exemplo, por linguagens orientadas a objetos. AspectH oferece ao programador a possibilidade de implementar os crosscutting concerns de programas monádicos em aspectos, ajudando-o a criar programas mais modulares e conseqüentemente mais legíveis, mais fáceis de manter e reusarporUniversidade Federal de PernambucoAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessProgramação orientada a aspectosAspecth: uma extensão de Haskell orientada a aspectosinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPETHUMBNAILarquivo7160_1.pdf.jpgarquivo7160_1.pdf.jpgGenerated Thumbnailimage/jpeg1284https://repositorio.ufpe.br/bitstream/123456789/2776/4/arquivo7160_1.pdf.jpg550787d6e660fb0b0974f3df6086f8edMD54ORIGINALarquivo7160_1.pdfapplication/pdf1101431https://repositorio.ufpe.br/bitstream/123456789/2776/1/arquivo7160_1.pdf69c90a543a0c30de3b872aae2a3bb5a2MD51LICENSElicense.txttext/plain1748https://repositorio.ufpe.br/bitstream/123456789/2776/2/license.txt8a4605be74aa9ea9d79846c1fba20a33MD52TEXTarquivo7160_1.pdf.txtarquivo7160_1.pdf.txtExtracted texttext/plain630837https://repositorio.ufpe.br/bitstream/123456789/2776/3/arquivo7160_1.pdf.txtf579f97d350eebf199635089f0910dd1MD53123456789/27762019-10-25 06:34:08.558oai:repositorio.ufpe.br:123456789/2776Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=Repositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212019-10-25T09:34:08Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false
dc.title.pt_BR.fl_str_mv Aspecth: uma extensão de Haskell orientada a aspectos
title Aspecth: uma extensão de Haskell orientada a aspectos
spellingShingle Aspecth: uma extensão de Haskell orientada a aspectos
ANDRADE, Carlos Andreazza Rego
Programação orientada a aspectos
title_short Aspecth: uma extensão de Haskell orientada a aspectos
title_full Aspecth: uma extensão de Haskell orientada a aspectos
title_fullStr Aspecth: uma extensão de Haskell orientada a aspectos
title_full_unstemmed Aspecth: uma extensão de Haskell orientada a aspectos
title_sort Aspecth: uma extensão de Haskell orientada a aspectos
author ANDRADE, Carlos Andreazza Rego
author_facet ANDRADE, Carlos Andreazza Rego
author_role author
dc.contributor.author.fl_str_mv ANDRADE, Carlos Andreazza Rego
dc.contributor.advisor1.fl_str_mv SANTOS, Andre Luís de Medeiros
contributor_str_mv SANTOS, Andre Luís de Medeiros
dc.subject.por.fl_str_mv Programação orientada a aspectos
topic Programação orientada a aspectos
description Uma das principais técnicas de abstração oferecida pelas linguagens de programação atuais é a possibilidade de dividir um sistema em unidades de código que capturam suas funcionalidades. Esta abstração permite que mudanças em uma unidade em particular não se propaguem por todo sistema. No entanto, isto é apenas aplicável quando tais funcionalidades ou preocupações podem de fato ser classificadas como unidades separadas. Algumas funcionalidades ou preocupações - conhecidas como preocupações entrelaçadas (crosscutting concerns) - repercutem por todo o sistema e não podem ser definidas em módulos tradicionais. Assim, todo o código que as implementa fica espalhado e misturado por diversos módulos. O paradigma de programação orientado a aspectos (AOP) tem sido apresentado na literatura como uma maneira alternativa de implementar os crosscutting concerns de um sistema, disponibilizando construções que permitem separá-los em unidades adequadamente. Um conceito central neste paradigma é o de aspecto, que é sua unidade modular. Uma linguagem de programação orientada a aspectos é usualmente estabelecida como uma extensão de uma linguagem de programação existente, provendo ao programador tanto as unidades modulares desta linguagem (conhecida como linguagem base) quanto os aspectos. Este trabalho apresenta a linguagem AspectH, uma extensão orientada a aspectos de Haskell. AspectH implementa o mecanismo AOP de pointcuts e advice como em AspectJ e foi projetada para atuar em programas Haskell que utilizam mônadas. Por meio de AspectH, investigamos os benefícios que uma abordagem AOP pode oferecer no contexto de uma linguagem puramente funcional. Em outras palavras, pretendemos demonstrar que AOP pode fazer por Haskell e linguagens funcionais o que já faz, como exemplo, por linguagens orientadas a objetos. AspectH oferece ao programador a possibilidade de implementar os crosscutting concerns de programas monádicos em aspectos, ajudando-o a criar programas mais modulares e conseqüentemente mais legíveis, mais fáceis de manter e reusar
publishDate 2005
dc.date.issued.fl_str_mv 2005
dc.date.accessioned.fl_str_mv 2014-06-12T16:01:06Z
dc.date.available.fl_str_mv 2014-06-12T16:01:06Z
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 Andreazza Rego Andrade, Carlos; Luís de Medeiros Santos, Andre. Aspecth: uma extensão de Haskell orientada a aspectos. 2005. Dissertação (Mestrado). Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2005.
dc.identifier.uri.fl_str_mv https://repositorio.ufpe.br/handle/123456789/2776
identifier_str_mv Andreazza Rego Andrade, Carlos; Luís de Medeiros Santos, Andre. Aspecth: uma extensão de Haskell orientada a aspectos. 2005. Dissertação (Mestrado). Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2005.
url https://repositorio.ufpe.br/handle/123456789/2776
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/2776/4/arquivo7160_1.pdf.jpg
https://repositorio.ufpe.br/bitstream/123456789/2776/1/arquivo7160_1.pdf
https://repositorio.ufpe.br/bitstream/123456789/2776/2/license.txt
https://repositorio.ufpe.br/bitstream/123456789/2776/3/arquivo7160_1.pdf.txt
bitstream.checksum.fl_str_mv 550787d6e660fb0b0974f3df6086f8ed
69c90a543a0c30de3b872aae2a3bb5a2
8a4605be74aa9ea9d79846c1fba20a33
f579f97d350eebf199635089f0910dd1
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_ 1862741735310884864