Codegs: um tipo especial de metaobjetos em Cyan

Detalhes bibliográficos
Ano de defesa: 2017
Autor(a) principal: Souza, André Cassulino Araújo
Orientador(a): Guimarães, José de Oliveira lattes
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 São Carlos
Câmpus Sorocaba
Programa de Pós-Graduação: Programa de Pós-Graduação em Ciência da Computação - PPGCC-So
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Palavras-chave em Inglês:
Área do conhecimento CNPq:
Link de acesso: https://repositorio.ufscar.br/handle/20.500.14289/9440
Resumo: Metaprogramming is widely supported by several programming languages. There exist metaprogramming at time of editing, compilation, and execution. In many languages metaprogramming is defined by a protocol that determines in what time and what can be done. Metaprogramming allows a programmer to "participate" in the build process. One of the ways to do this is through meta-objects built by ordinary users that are loaded by the compiler. Meta-objects can make conferences, modifications, and code generation either in the source code or in the Abstract Syntax Tree. However, to use metaprogramming it is necessary to have an in-depth knowledge of the programming language, thus making it tedious and costly to use. On the other hand, we have the visual generation of code. For example, several IDEs support code generation for GUI (Graphical User Interface) in several programming languages although they do not interact directly with the compiler. In this work, we present a plugin for the Eclipse IDE and a Codegs library. Codegs are a special type of compile-time metaobject in Cyan supported by the plugin to the Eclipse IDE, providing visual resources at edit time. The plugin communicates with the compiler through the of Cyan Metaobject Protocol.
id SCAR_5dda7e6dd95cbc98df4a4cfca6dcf212
oai_identifier_str oai:repositorio.ufscar.br:20.500.14289/9440
network_acronym_str SCAR
network_name_str Repositório Institucional da UFSCAR
repository_id_str
spelling Souza, André Cassulino AraújoGuimarães, José de Oliveirahttp://lattes.cnpq.br/1861719424612392http://lattes.cnpq.br/531114862587680383604b69-afc8-4c8a-9cc2-eeefb1756a3c2018-02-19T15:50:26Z2018-02-19T15:50:26Z2017-12-01SOUZA, André Cassulino Araújo. Codegs: um tipo especial de metaobjetos em Cyan. 2017. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de São Carlos, Sorocaba, 2017. Disponível em: https://repositorio.ufscar.br/handle/20.500.14289/9440.https://repositorio.ufscar.br/handle/20.500.14289/9440Metaprogramming is widely supported by several programming languages. There exist metaprogramming at time of editing, compilation, and execution. In many languages metaprogramming is defined by a protocol that determines in what time and what can be done. Metaprogramming allows a programmer to "participate" in the build process. One of the ways to do this is through meta-objects built by ordinary users that are loaded by the compiler. Meta-objects can make conferences, modifications, and code generation either in the source code or in the Abstract Syntax Tree. However, to use metaprogramming it is necessary to have an in-depth knowledge of the programming language, thus making it tedious and costly to use. On the other hand, we have the visual generation of code. For example, several IDEs support code generation for GUI (Graphical User Interface) in several programming languages although they do not interact directly with the compiler. In this work, we present a plugin for the Eclipse IDE and a Codegs library. Codegs are a special type of compile-time metaobject in Cyan supported by the plugin to the Eclipse IDE, providing visual resources at edit time. The plugin communicates with the compiler through the of Cyan Metaobject Protocol.Metaprogramação é amplamente suportada por diversas linguagens de programação. Existe metaprogramação em tempo de edição, compilação e execução. Em muitas linguagens de programação a metaprogramação é definida por um protocolo de metaobjetos que determinam em qual tempo e o que poderá ser feito. A metaprogramação permite ao programador ``participar'' do processo de compilação. Uma das maneiras de se fazer isto é através de metaobjetos construídos por usuários comuns e que são carregados pelo compilador. Os metaobjetos podem fazer conferências, modificações e geração de código tanto no código-fonte como na Árvore de Sintaxe Abstrata. No entanto, para usar a metaprogramação é necessário ter um conhecimento aprofundado em relação à linguagem tornando tedioso e custoso o seu uso. Por outro lado temos as ferramentas visuais de geração de código. Por exemplo, vários IDEs dão suporte à geração de código para GUI (Graphical User Interface) em várias linguagens de programação, embora não interagindo com o compilador. Neste trabalho é apresentado um plugin para o IDE Eclipse e uma biblioteca de Codegs. Codeg é um tipo especial de metaobjetos de tempo de compilação de Cyan suportado pelo IDE Eclipse, fornecendo recursos de visuais em tempo de edição. O plugin se comunica com o compilador através do Protocolo de Metaobjetos de Cyan.Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP)2014/01817-3porUniversidade Federal de São CarlosCâmpus SorocabaPrograma de Pós-Graduação em Ciência da Computação - PPGCC-SoUFSCarMetaprogramaçãoFerramentas visuais de geração de códigoIntegração metaprogramação e ferramentas visuaisMetaprogrammingVisual code generation toolsMetaprogramming integration with visual toolsCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAOCodegs: um tipo especial de metaobjetos em CyanCodegs: a special type of metaobjects in Cyaninfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisOnline60060022f707a3-dc98-4346-b548-be854c062742info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFSCARinstname:Universidade Federal de São Carlos (UFSCAR)instacron:UFSCARORIGINALSouza ACA - Dissertação.pdfSouza ACA - Dissertação.pdfDissertaçãoapplication/pdf3045302https://repositorio.ufscar.br/bitstreams/17a65458-aa9c-43f1-9ee1-7e0aeb2280d8/download03f607488009b7babd6a5cb4a83f71f1MD51trueAnonymousREADSouza ACA - Carta Comprovante Dissertação.pdfSouza ACA - Carta Comprovante Dissertação.pdfCarta comprovante da submissãoapplication/pdf1333350https://repositorio.ufscar.br/bitstreams/0e67e0d1-f13f-49d5-ba7c-09303a7ede39/download83e48380df88b3e9408822b530593517MD52falseAnonymousREADLICENSElicense.txtlicense.txttext/plain; charset=utf-81957https://repositorio.ufscar.br/bitstreams/a4d12076-c032-4e01-ab6a-743e65a468b4/downloadae0398b6f8b235e40ad82cba6c50031dMD53falseAnonymousREADTEXTSouza ACA - Dissertação.pdf.txtSouza ACA - Dissertação.pdf.txtExtracted texttext/plain158500https://repositorio.ufscar.br/bitstreams/408b21e2-a0a5-435e-a279-d986bd642ebb/downloadb57a0a8369bba4e1c09bfb4fbeeed9a3MD58falseAnonymousREADSouza ACA - Carta Comprovante Dissertação.pdf.txtSouza ACA - Carta Comprovante Dissertação.pdf.txtExtracted texttext/plain1https://repositorio.ufscar.br/bitstreams/d1c08846-d59a-4c4d-b217-208188dfd91d/download68b329da9893e34099c7d8ad5cb9c940MD510falseAnonymousREADTHUMBNAILSouza ACA - Dissertação.pdf.jpgSouza ACA - Dissertação.pdf.jpgIM Thumbnailimage/jpeg5146https://repositorio.ufscar.br/bitstreams/416755e0-a04e-4a08-a67c-8b01b23a9290/download04929b427092be1f7f491d76278ce836MD59falseAnonymousREADSouza ACA - Carta Comprovante Dissertação.pdf.jpgSouza ACA - Carta Comprovante Dissertação.pdf.jpgIM Thumbnailimage/jpeg9681https://repositorio.ufscar.br/bitstreams/45be1c5a-eb97-46e5-8ba0-16d1b3d53de8/downloadc2e339a25d152eeaa65390f5f5f9e75cMD511falseAnonymousREAD20.500.14289/94402025-02-05 17:46:50.227Acesso abertoopen.accessoai:repositorio.ufscar.br:20.500.14289/9440https://repositorio.ufscar.brRepositório InstitucionalPUBhttps://repositorio.ufscar.br/oai/requestrepositorio.sibi@ufscar.bropendoar:43222025-02-05T20:46:50Repositório Institucional da UFSCAR - Universidade Federal de São Carlos (UFSCAR)falseTElDRU7Dh0EgREUgRElTVFJJQlVJw4fDg08gTsODTy1FWENMVVNJVkEKCkNvbSBhIGFwcmVzZW50YcOnw6NvIGRlc3RhIGxpY2Vuw6dhLCB2b2PDqiAobyBhdXRvciAoZXMpIG91IG8gdGl0dWxhciBkb3MgZGlyZWl0b3MgZGUgYXV0b3IpIGNvbmNlZGUgw6AgVW5pdmVyc2lkYWRlCkZlZGVyYWwgZGUgU8OjbyBDYXJsb3MgbyBkaXJlaXRvIG7Do28tZXhjbHVzaXZvIGRlIHJlcHJvZHV6aXIsICB0cmFkdXppciAoY29uZm9ybWUgZGVmaW5pZG8gYWJhaXhvKSwgZS9vdQpkaXN0cmlidWlyIGEgc3VhIHRlc2Ugb3UgZGlzc2VydGHDp8OjbyAoaW5jbHVpbmRvIG8gcmVzdW1vKSBwb3IgdG9kbyBvIG11bmRvIG5vIGZvcm1hdG8gaW1wcmVzc28gZSBlbGV0csO0bmljbyBlCmVtIHF1YWxxdWVyIG1laW8sIGluY2x1aW5kbyBvcyBmb3JtYXRvcyDDoXVkaW8gb3UgdsOtZGVvLgoKVm9jw6ogY29uY29yZGEgcXVlIGEgVUZTQ2FyIHBvZGUsIHNlbSBhbHRlcmFyIG8gY29udGXDumRvLCB0cmFuc3BvciBhIHN1YSB0ZXNlIG91IGRpc3NlcnRhw6fDo28KcGFyYSBxdWFscXVlciBtZWlvIG91IGZvcm1hdG8gcGFyYSBmaW5zIGRlIHByZXNlcnZhw6fDo28uCgpWb2PDqiB0YW1iw6ltIGNvbmNvcmRhIHF1ZSBhIFVGU0NhciBwb2RlIG1hbnRlciBtYWlzIGRlIHVtYSBjw7NwaWEgYSBzdWEgdGVzZSBvdQpkaXNzZXJ0YcOnw6NvIHBhcmEgZmlucyBkZSBzZWd1cmFuw6dhLCBiYWNrLXVwIGUgcHJlc2VydmHDp8Ojby4KClZvY8OqIGRlY2xhcmEgcXVlIGEgc3VhIHRlc2Ugb3UgZGlzc2VydGHDp8OjbyDDqSBvcmlnaW5hbCBlIHF1ZSB2b2PDqiB0ZW0gbyBwb2RlciBkZSBjb25jZWRlciBvcyBkaXJlaXRvcyBjb250aWRvcwpuZXN0YSBsaWNlbsOnYS4gVm9jw6ogdGFtYsOpbSBkZWNsYXJhIHF1ZSBvIGRlcMOzc2l0byBkYSBzdWEgdGVzZSBvdSBkaXNzZXJ0YcOnw6NvIG7Do28sIHF1ZSBzZWphIGRlIHNldQpjb25oZWNpbWVudG8sIGluZnJpbmdlIGRpcmVpdG9zIGF1dG9yYWlzIGRlIG5pbmd1w6ltLgoKQ2FzbyBhIHN1YSB0ZXNlIG91IGRpc3NlcnRhw6fDo28gY29udGVuaGEgbWF0ZXJpYWwgcXVlIHZvY8OqIG7Do28gcG9zc3VpIGEgdGl0dWxhcmlkYWRlIGRvcyBkaXJlaXRvcyBhdXRvcmFpcywgdm9jw6oKZGVjbGFyYSBxdWUgb2J0ZXZlIGEgcGVybWlzc8OjbyBpcnJlc3RyaXRhIGRvIGRldGVudG9yIGRvcyBkaXJlaXRvcyBhdXRvcmFpcyBwYXJhIGNvbmNlZGVyIMOgIFVGU0NhcgpvcyBkaXJlaXRvcyBhcHJlc2VudGFkb3MgbmVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgZGUgcHJvcHJpZWRhZGUgZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUKaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3Ugbm8gY29udGXDumRvIGRhIHRlc2Ugb3UgZGlzc2VydGHDp8OjbyBvcmEgZGVwb3NpdGFkYS4KCkNBU08gQSBURVNFIE9VIERJU1NFUlRBw4fDg08gT1JBIERFUE9TSVRBREEgVEVOSEEgU0lETyBSRVNVTFRBRE8gREUgVU0gUEFUUk9Dw41OSU8gT1UKQVBPSU8gREUgVU1BIEFHw4pOQ0lBIERFIEZPTUVOVE8gT1UgT1VUUk8gT1JHQU5JU01PIFFVRSBOw4NPIFNFSkEgQSBVRlNDYXIsClZPQ8OKIERFQ0xBUkEgUVVFIFJFU1BFSVRPVSBUT0RPUyBFIFFVQUlTUVVFUiBESVJFSVRPUyBERSBSRVZJU8ODTyBDT01PClRBTULDiU0gQVMgREVNQUlTIE9CUklHQcOHw5VFUyBFWElHSURBUyBQT1IgQ09OVFJBVE8gT1UgQUNPUkRPLgoKQSBVRlNDYXIgc2UgY29tcHJvbWV0ZSBhIGlkZW50aWZpY2FyIGNsYXJhbWVudGUgbyBzZXUgbm9tZSAocykgb3UgbyhzKSBub21lKHMpIGRvKHMpCmRldGVudG9yKGVzKSBkb3MgZGlyZWl0b3MgYXV0b3JhaXMgZGEgdGVzZSBvdSBkaXNzZXJ0YcOnw6NvLCBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIGFsw6ltIGRhcXVlbGFzCmNvbmNlZGlkYXMgcG9yIGVzdGEgbGljZW7Dp2EuCg==
dc.title.por.fl_str_mv Codegs: um tipo especial de metaobjetos em Cyan
dc.title.alternative.por.fl_str_mv Codegs: a special type of metaobjects in Cyan
title Codegs: um tipo especial de metaobjetos em Cyan
spellingShingle Codegs: um tipo especial de metaobjetos em Cyan
Souza, André Cassulino Araújo
Metaprogramação
Ferramentas visuais de geração de código
Integração metaprogramação e ferramentas visuais
Metaprogramming
Visual code generation tools
Metaprogramming integration with visual tools
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO
title_short Codegs: um tipo especial de metaobjetos em Cyan
title_full Codegs: um tipo especial de metaobjetos em Cyan
title_fullStr Codegs: um tipo especial de metaobjetos em Cyan
title_full_unstemmed Codegs: um tipo especial de metaobjetos em Cyan
title_sort Codegs: um tipo especial de metaobjetos em Cyan
author Souza, André Cassulino Araújo
author_facet Souza, André Cassulino Araújo
author_role author
dc.contributor.authorlattes.por.fl_str_mv http://lattes.cnpq.br/5311148625876803
dc.contributor.author.fl_str_mv Souza, André Cassulino Araújo
dc.contributor.advisor1.fl_str_mv Guimarães, José de Oliveira
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/1861719424612392
dc.contributor.authorID.fl_str_mv 83604b69-afc8-4c8a-9cc2-eeefb1756a3c
contributor_str_mv Guimarães, José de Oliveira
dc.subject.por.fl_str_mv Metaprogramação
Ferramentas visuais de geração de código
Integração metaprogramação e ferramentas visuais
topic Metaprogramação
Ferramentas visuais de geração de código
Integração metaprogramação e ferramentas visuais
Metaprogramming
Visual code generation tools
Metaprogramming integration with visual tools
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO
dc.subject.eng.fl_str_mv Metaprogramming
Visual code generation tools
Metaprogramming integration with visual tools
dc.subject.cnpq.fl_str_mv CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO
description Metaprogramming is widely supported by several programming languages. There exist metaprogramming at time of editing, compilation, and execution. In many languages metaprogramming is defined by a protocol that determines in what time and what can be done. Metaprogramming allows a programmer to "participate" in the build process. One of the ways to do this is through meta-objects built by ordinary users that are loaded by the compiler. Meta-objects can make conferences, modifications, and code generation either in the source code or in the Abstract Syntax Tree. However, to use metaprogramming it is necessary to have an in-depth knowledge of the programming language, thus making it tedious and costly to use. On the other hand, we have the visual generation of code. For example, several IDEs support code generation for GUI (Graphical User Interface) in several programming languages although they do not interact directly with the compiler. In this work, we present a plugin for the Eclipse IDE and a Codegs library. Codegs are a special type of compile-time metaobject in Cyan supported by the plugin to the Eclipse IDE, providing visual resources at edit time. The plugin communicates with the compiler through the of Cyan Metaobject Protocol.
publishDate 2017
dc.date.issued.fl_str_mv 2017-12-01
dc.date.accessioned.fl_str_mv 2018-02-19T15:50:26Z
dc.date.available.fl_str_mv 2018-02-19T15:50:26Z
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 SOUZA, André Cassulino Araújo. Codegs: um tipo especial de metaobjetos em Cyan. 2017. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de São Carlos, Sorocaba, 2017. Disponível em: https://repositorio.ufscar.br/handle/20.500.14289/9440.
dc.identifier.uri.fl_str_mv https://repositorio.ufscar.br/handle/20.500.14289/9440
identifier_str_mv SOUZA, André Cassulino Araújo. Codegs: um tipo especial de metaobjetos em Cyan. 2017. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de São Carlos, Sorocaba, 2017. Disponível em: https://repositorio.ufscar.br/handle/20.500.14289/9440.
url https://repositorio.ufscar.br/handle/20.500.14289/9440
dc.language.iso.fl_str_mv por
language por
dc.relation.confidence.fl_str_mv 600
600
dc.relation.authority.fl_str_mv 22f707a3-dc98-4346-b548-be854c062742
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 São Carlos
Câmpus Sorocaba
dc.publisher.program.fl_str_mv Programa de Pós-Graduação em Ciência da Computação - PPGCC-So
dc.publisher.initials.fl_str_mv UFSCar
publisher.none.fl_str_mv Universidade Federal de São Carlos
Câmpus Sorocaba
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFSCAR
instname:Universidade Federal de São Carlos (UFSCAR)
instacron:UFSCAR
instname_str Universidade Federal de São Carlos (UFSCAR)
instacron_str UFSCAR
institution UFSCAR
reponame_str Repositório Institucional da UFSCAR
collection Repositório Institucional da UFSCAR
bitstream.url.fl_str_mv https://repositorio.ufscar.br/bitstreams/17a65458-aa9c-43f1-9ee1-7e0aeb2280d8/download
https://repositorio.ufscar.br/bitstreams/0e67e0d1-f13f-49d5-ba7c-09303a7ede39/download
https://repositorio.ufscar.br/bitstreams/a4d12076-c032-4e01-ab6a-743e65a468b4/download
https://repositorio.ufscar.br/bitstreams/408b21e2-a0a5-435e-a279-d986bd642ebb/download
https://repositorio.ufscar.br/bitstreams/d1c08846-d59a-4c4d-b217-208188dfd91d/download
https://repositorio.ufscar.br/bitstreams/416755e0-a04e-4a08-a67c-8b01b23a9290/download
https://repositorio.ufscar.br/bitstreams/45be1c5a-eb97-46e5-8ba0-16d1b3d53de8/download
bitstream.checksum.fl_str_mv 03f607488009b7babd6a5cb4a83f71f1
83e48380df88b3e9408822b530593517
ae0398b6f8b235e40ad82cba6c50031d
b57a0a8369bba4e1c09bfb4fbeeed9a3
68b329da9893e34099c7d8ad5cb9c940
04929b427092be1f7f491d76278ce836
c2e339a25d152eeaa65390f5f5f9e75c
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFSCAR - Universidade Federal de São Carlos (UFSCAR)
repository.mail.fl_str_mv repositorio.sibi@ufscar.br
_version_ 1851688842444144640