Metaprogramação extensível para a linguagem XAJ (eXtensible AspectJ)
Ano de defesa: | 2013 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Dissertação |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
Universidade Federal de Viçosa
|
Programa de Pós-Graduação: |
Mestrado em Ciência da Computação
|
Departamento: |
Metodologias e técnicas da Computação; Sistemas de Computação
|
País: |
BR
|
Palavras-chave em Português: | |
Palavras-chave em Inglês: | |
Área do conhecimento CNPq: | |
Link de acesso: | http://locus.ufv.br/handle/123456789/2647 |
Resumo: | Domain specific aspect languages (DSALs) are languages specifically designed for a domain with aspect-oriented features, obtaining benefits such as productivity and expressiveness. To embed a DSAL in an aspect-oriented general purpose language may present some advantages. To achieve this, one of the techniques used is language extensibility. XAJ (eXtensible AspectJ ) is an extensible language based on AspectJ, the main aspect-oriented language. The definitions of extensions to the language are modular, being encapsulated in a syntax class. Syntax class allow users define the syntax and semantics of a new construction, and represent it in the abstract syntax tree (AST ). The definition of the semantics of a new construction is given by the translation to already known constructs. At this point, the language can benefit from the advantages of metaprogramming. Metaprogramming is a technique of writing programs that generate or manipulate other programs. Metaprogramming commands are very ease to understand especially when they use a syntax that is very similar to the concrete syntax of the language. With an extensible metaprogramming mechanism, user defined constructs can be used in the definitions of new constructs. This work presents an extensible metaprogramming mechanism for the XAJ language, presenting examples of usage and its advantages. |
id |
UFV_103170ebef04a9a8960be5f544e5569b |
---|---|
oai_identifier_str |
oai:locus.ufv.br:123456789/2647 |
network_acronym_str |
UFV |
network_name_str |
LOCUS Repositório Institucional da UFV |
repository_id_str |
|
spelling |
Pinheiro, Felipe da SilvaOliveira, Alcione de Paivahttp://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4788574J0Ferreira, Ricardo dos Santoshttp://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4723626E5Iorio, Vladimir Oliveira Dihttp://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4784559J9Bastos, Leacir Nogueirahttp://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4788213Z32015-03-26T13:10:34Z2013-06-112015-03-26T13:10:34Z2013-02-26PINHEIRO, Felipe da Silva. Extensible metaprogramming for the XAJ (eXtensible AspectJ) language. 2013. 45 f. Dissertação (Mestrado em Metodologias e técnicas da Computação; Sistemas de Computação) - Universidade Federal de Viçosa, Viçosa, 2013.http://locus.ufv.br/handle/123456789/2647Domain specific aspect languages (DSALs) are languages specifically designed for a domain with aspect-oriented features, obtaining benefits such as productivity and expressiveness. To embed a DSAL in an aspect-oriented general purpose language may present some advantages. To achieve this, one of the techniques used is language extensibility. XAJ (eXtensible AspectJ ) is an extensible language based on AspectJ, the main aspect-oriented language. The definitions of extensions to the language are modular, being encapsulated in a syntax class. Syntax class allow users define the syntax and semantics of a new construction, and represent it in the abstract syntax tree (AST ). The definition of the semantics of a new construction is given by the translation to already known constructs. At this point, the language can benefit from the advantages of metaprogramming. Metaprogramming is a technique of writing programs that generate or manipulate other programs. Metaprogramming commands are very ease to understand especially when they use a syntax that is very similar to the concrete syntax of the language. With an extensible metaprogramming mechanism, user defined constructs can be used in the definitions of new constructs. This work presents an extensible metaprogramming mechanism for the XAJ language, presenting examples of usage and its advantages.Linguagens de domínio específico orientadas a aspectos (DSALs) são linguagens projetadas especificamente para um domínio com funcionalidades orientadas a aspectos, gerando vantagens como produtividade e expressividade. Embarcar uma DSAL em uma linguagem de propósito geral orientada a aspectos pode apresentar algumas vantagens. Para conseguir isso, uma das técnicas utilizadas é a extensibilidade. A linguagem eXtensible AspectJ (XAJ ) é uma linguagem extensível baseada em AspectJ, principal linguagem orientada a aspectos. A definição de extensões para a linguagem é modular, sendo encapsulada em uma classe sintática, que permite definir a sintaxe e a semântica da nova construção, além de representá-la na árvore de sintaxe abstrata (AST ). A definição da semântica de uma nova construção se dá pela tradução para construções já conhecidas. Nesse ponto, a linguagem pode-se beneficiar das vantagens da metaprogramação. A metaprogramação é uma técnica de escrever programas que geram ou manipulam programas. Assim, com uma sintaxe próxima à sintaxe concreta da linguagem, obtém-se maior facilidade de entendimento. Com um mecanismo de metaprogramação extensível, pode-se utilizar construções definidas pelo usuário na definição de novas construções. Este trabalho apresenta um mecanismo de metaprogramação extensível para a linguagem XAJ, apresentando exemplo de uso e suas vantagens.Coordenação de Aperfeiçoamento de Pessoal de Nível Superiorapplication/pdfporUniversidade Federal de ViçosaMestrado em Ciência da ComputaçãoUFVBRMetodologias e técnicas da Computação; Sistemas de ComputaçãoMetaprogramaçãoExtensibilidadeOrientação a aspectosMetaprogrammingExtensibilityAspect orientationCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOMetaprogramação extensível para a linguagem XAJ (eXtensible AspectJ)Extensible metaprogramming for the XAJ (eXtensible AspectJ) languageinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/openAccessreponame:LOCUS Repositório Institucional da UFVinstname:Universidade Federal de Viçosa (UFV)instacron:UFVORIGINALtexto completo.pdfapplication/pdf1989678https://locus.ufv.br//bitstream/123456789/2647/1/texto%20completo.pdf9c6ac595ece584cf8525355aebc85bc5MD51TEXTtexto completo.pdf.txttexto completo.pdf.txtExtracted texttext/plain75401https://locus.ufv.br//bitstream/123456789/2647/2/texto%20completo.pdf.txtc033b8dfe105523fde425cbc06731bb7MD52THUMBNAILtexto completo.pdf.jpgtexto completo.pdf.jpgIM Thumbnailimage/jpeg3622https://locus.ufv.br//bitstream/123456789/2647/3/texto%20completo.pdf.jpg828b53a313ec63396605c3a9ffdeeebfMD53123456789/26472016-04-08 23:12:34.365oai:locus.ufv.br:123456789/2647Repositório InstitucionalPUBhttps://www.locus.ufv.br/oai/requestfabiojreis@ufv.bropendoar:21452016-04-09T02:12:34LOCUS Repositório Institucional da UFV - Universidade Federal de Viçosa (UFV)false |
dc.title.por.fl_str_mv |
Metaprogramação extensível para a linguagem XAJ (eXtensible AspectJ) |
dc.title.alternative.eng.fl_str_mv |
Extensible metaprogramming for the XAJ (eXtensible AspectJ) language |
title |
Metaprogramação extensível para a linguagem XAJ (eXtensible AspectJ) |
spellingShingle |
Metaprogramação extensível para a linguagem XAJ (eXtensible AspectJ) Pinheiro, Felipe da Silva Metaprogramação Extensibilidade Orientação a aspectos Metaprogramming Extensibility Aspect orientation CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
title_short |
Metaprogramação extensível para a linguagem XAJ (eXtensible AspectJ) |
title_full |
Metaprogramação extensível para a linguagem XAJ (eXtensible AspectJ) |
title_fullStr |
Metaprogramação extensível para a linguagem XAJ (eXtensible AspectJ) |
title_full_unstemmed |
Metaprogramação extensível para a linguagem XAJ (eXtensible AspectJ) |
title_sort |
Metaprogramação extensível para a linguagem XAJ (eXtensible AspectJ) |
author |
Pinheiro, Felipe da Silva |
author_facet |
Pinheiro, Felipe da Silva |
author_role |
author |
dc.contributor.author.fl_str_mv |
Pinheiro, Felipe da Silva |
dc.contributor.advisor-co1.fl_str_mv |
Oliveira, Alcione de Paiva |
dc.contributor.advisor-co1Lattes.fl_str_mv |
http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4788574J0 |
dc.contributor.advisor-co2.fl_str_mv |
Ferreira, Ricardo dos Santos |
dc.contributor.advisor-co2Lattes.fl_str_mv |
http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4723626E5 |
dc.contributor.advisor1.fl_str_mv |
Iorio, Vladimir Oliveira Di |
dc.contributor.advisor1Lattes.fl_str_mv |
http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4784559J9 |
dc.contributor.referee1.fl_str_mv |
Bastos, Leacir Nogueira |
dc.contributor.referee1Lattes.fl_str_mv |
http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4788213Z3 |
contributor_str_mv |
Oliveira, Alcione de Paiva Ferreira, Ricardo dos Santos Iorio, Vladimir Oliveira Di Bastos, Leacir Nogueira |
dc.subject.por.fl_str_mv |
Metaprogramação Extensibilidade Orientação a aspectos |
topic |
Metaprogramação Extensibilidade Orientação a aspectos Metaprogramming Extensibility Aspect orientation CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
dc.subject.eng.fl_str_mv |
Metaprogramming Extensibility Aspect orientation |
dc.subject.cnpq.fl_str_mv |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
description |
Domain specific aspect languages (DSALs) are languages specifically designed for a domain with aspect-oriented features, obtaining benefits such as productivity and expressiveness. To embed a DSAL in an aspect-oriented general purpose language may present some advantages. To achieve this, one of the techniques used is language extensibility. XAJ (eXtensible AspectJ ) is an extensible language based on AspectJ, the main aspect-oriented language. The definitions of extensions to the language are modular, being encapsulated in a syntax class. Syntax class allow users define the syntax and semantics of a new construction, and represent it in the abstract syntax tree (AST ). The definition of the semantics of a new construction is given by the translation to already known constructs. At this point, the language can benefit from the advantages of metaprogramming. Metaprogramming is a technique of writing programs that generate or manipulate other programs. Metaprogramming commands are very ease to understand especially when they use a syntax that is very similar to the concrete syntax of the language. With an extensible metaprogramming mechanism, user defined constructs can be used in the definitions of new constructs. This work presents an extensible metaprogramming mechanism for the XAJ language, presenting examples of usage and its advantages. |
publishDate |
2013 |
dc.date.available.fl_str_mv |
2013-06-11 2015-03-26T13:10:34Z |
dc.date.issued.fl_str_mv |
2013-02-26 |
dc.date.accessioned.fl_str_mv |
2015-03-26T13:10:34Z |
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 |
PINHEIRO, Felipe da Silva. Extensible metaprogramming for the XAJ (eXtensible AspectJ) language. 2013. 45 f. Dissertação (Mestrado em Metodologias e técnicas da Computação; Sistemas de Computação) - Universidade Federal de Viçosa, Viçosa, 2013. |
dc.identifier.uri.fl_str_mv |
http://locus.ufv.br/handle/123456789/2647 |
identifier_str_mv |
PINHEIRO, Felipe da Silva. Extensible metaprogramming for the XAJ (eXtensible AspectJ) language. 2013. 45 f. Dissertação (Mestrado em Metodologias e técnicas da Computação; Sistemas de Computação) - Universidade Federal de Viçosa, Viçosa, 2013. |
url |
http://locus.ufv.br/handle/123456789/2647 |
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.format.none.fl_str_mv |
application/pdf |
dc.publisher.none.fl_str_mv |
Universidade Federal de Viçosa |
dc.publisher.program.fl_str_mv |
Mestrado em Ciência da Computação |
dc.publisher.initials.fl_str_mv |
UFV |
dc.publisher.country.fl_str_mv |
BR |
dc.publisher.department.fl_str_mv |
Metodologias e técnicas da Computação; Sistemas de Computação |
publisher.none.fl_str_mv |
Universidade Federal de Viçosa |
dc.source.none.fl_str_mv |
reponame:LOCUS Repositório Institucional da UFV instname:Universidade Federal de Viçosa (UFV) instacron:UFV |
instname_str |
Universidade Federal de Viçosa (UFV) |
instacron_str |
UFV |
institution |
UFV |
reponame_str |
LOCUS Repositório Institucional da UFV |
collection |
LOCUS Repositório Institucional da UFV |
bitstream.url.fl_str_mv |
https://locus.ufv.br//bitstream/123456789/2647/1/texto%20completo.pdf https://locus.ufv.br//bitstream/123456789/2647/2/texto%20completo.pdf.txt https://locus.ufv.br//bitstream/123456789/2647/3/texto%20completo.pdf.jpg |
bitstream.checksum.fl_str_mv |
9c6ac595ece584cf8525355aebc85bc5 c033b8dfe105523fde425cbc06731bb7 828b53a313ec63396605c3a9ffdeeebf |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 |
repository.name.fl_str_mv |
LOCUS Repositório Institucional da UFV - Universidade Federal de Viçosa (UFV) |
repository.mail.fl_str_mv |
fabiojreis@ufv.br |
_version_ |
1794528613660360704 |