Codegs: um tipo especial de metaobjetos em Cyan

Detalhes bibliográficos
Autor(a) principal: Souza, André Cassulino Araújo
Data de Publicação: 2017
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFSCAR
Texto Completo: https://repositorio.ufscar.br/handle/ufscar/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_7969feae0c8d24dd0728d48f5bf2abeb
oai_identifier_str oai:repositorio.ufscar.br:ufscar/9440
network_acronym_str SCAR
network_name_str Repositório Institucional da UFSCAR
repository_id_str 4322
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/ufscar/9440.https://repositorio.ufscar.br/handle/ufscar/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/bitstream/ufscar/9440/1/Souza%20ACA%20-%20Disserta%c3%a7%c3%a3o.pdf03f607488009b7babd6a5cb4a83f71f1MD51Souza ACA - Carta Comprovante Dissertação.pdfSouza ACA - Carta Comprovante Dissertação.pdfCarta comprovante da submissãoapplication/pdf1333350https://repositorio.ufscar.br/bitstream/ufscar/9440/2/Souza%20ACA%20-%20Carta%20Comprovante%20Disserta%c3%a7%c3%a3o.pdf83e48380df88b3e9408822b530593517MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-81957https://repositorio.ufscar.br/bitstream/ufscar/9440/3/license.txtae0398b6f8b235e40ad82cba6c50031dMD53TEXTSouza ACA - Dissertação.pdf.txtSouza ACA - Dissertação.pdf.txtExtracted texttext/plain158500https://repositorio.ufscar.br/bitstream/ufscar/9440/4/Souza%20ACA%20-%20Disserta%c3%a7%c3%a3o.pdf.txtb57a0a8369bba4e1c09bfb4fbeeed9a3MD54Souza ACA - Carta Comprovante Dissertação.pdf.txtSouza ACA - Carta Comprovante Dissertação.pdf.txtExtracted texttext/plain1https://repositorio.ufscar.br/bitstream/ufscar/9440/5/Souza%20ACA%20-%20Carta%20Comprovante%20Disserta%c3%a7%c3%a3o.pdf.txt68b329da9893e34099c7d8ad5cb9c940MD55THUMBNAILSouza ACA - Dissertação.pdf.jpgSouza ACA - Dissertação.pdf.jpgIM Thumbnailimage/jpeg5138https://repositorio.ufscar.br/bitstream/ufscar/9440/6/Souza%20ACA%20-%20Disserta%c3%a7%c3%a3o.pdf.jpge003d717961434145a78eb4113bdf38bMD56Souza ACA - Carta Comprovante Dissertação.pdf.jpgSouza ACA - Carta Comprovante Dissertação.pdf.jpgIM Thumbnailimage/jpeg11971https://repositorio.ufscar.br/bitstream/ufscar/9440/7/Souza%20ACA%20-%20Carta%20Comprovante%20Disserta%c3%a7%c3%a3o.pdf.jpgfee6575eaceea601654cb6f99c88b1e4MD57ufscar/94402023-09-18 18:31:46.615oai:repositorio.ufscar.br:ufscar/9440TElDRU7Dh0EgREUgRElTVFJJQlVJw4fDg08gTsODTy1FWENMVVNJVkEKCkNvbSBhIGFwcmVzZW50YcOnw6NvIGRlc3RhIGxpY2Vuw6dhLCB2b2PDqiAobyBhdXRvciAoZXMpIG91IG8gdGl0dWxhciBkb3MgZGlyZWl0b3MgZGUgYXV0b3IpIGNvbmNlZGUgw6AgVW5pdmVyc2lkYWRlCkZlZGVyYWwgZGUgU8OjbyBDYXJsb3MgbyBkaXJlaXRvIG7Do28tZXhjbHVzaXZvIGRlIHJlcHJvZHV6aXIsICB0cmFkdXppciAoY29uZm9ybWUgZGVmaW5pZG8gYWJhaXhvKSwgZS9vdQpkaXN0cmlidWlyIGEgc3VhIHRlc2Ugb3UgZGlzc2VydGHDp8OjbyAoaW5jbHVpbmRvIG8gcmVzdW1vKSBwb3IgdG9kbyBvIG11bmRvIG5vIGZvcm1hdG8gaW1wcmVzc28gZSBlbGV0csO0bmljbyBlCmVtIHF1YWxxdWVyIG1laW8sIGluY2x1aW5kbyBvcyBmb3JtYXRvcyDDoXVkaW8gb3UgdsOtZGVvLgoKVm9jw6ogY29uY29yZGEgcXVlIGEgVUZTQ2FyIHBvZGUsIHNlbSBhbHRlcmFyIG8gY29udGXDumRvLCB0cmFuc3BvciBhIHN1YSB0ZXNlIG91IGRpc3NlcnRhw6fDo28KcGFyYSBxdWFscXVlciBtZWlvIG91IGZvcm1hdG8gcGFyYSBmaW5zIGRlIHByZXNlcnZhw6fDo28uCgpWb2PDqiB0YW1iw6ltIGNvbmNvcmRhIHF1ZSBhIFVGU0NhciBwb2RlIG1hbnRlciBtYWlzIGRlIHVtYSBjw7NwaWEgYSBzdWEgdGVzZSBvdQpkaXNzZXJ0YcOnw6NvIHBhcmEgZmlucyBkZSBzZWd1cmFuw6dhLCBiYWNrLXVwIGUgcHJlc2VydmHDp8Ojby4KClZvY8OqIGRlY2xhcmEgcXVlIGEgc3VhIHRlc2Ugb3UgZGlzc2VydGHDp8OjbyDDqSBvcmlnaW5hbCBlIHF1ZSB2b2PDqiB0ZW0gbyBwb2RlciBkZSBjb25jZWRlciBvcyBkaXJlaXRvcyBjb250aWRvcwpuZXN0YSBsaWNlbsOnYS4gVm9jw6ogdGFtYsOpbSBkZWNsYXJhIHF1ZSBvIGRlcMOzc2l0byBkYSBzdWEgdGVzZSBvdSBkaXNzZXJ0YcOnw6NvIG7Do28sIHF1ZSBzZWphIGRlIHNldQpjb25oZWNpbWVudG8sIGluZnJpbmdlIGRpcmVpdG9zIGF1dG9yYWlzIGRlIG5pbmd1w6ltLgoKQ2FzbyBhIHN1YSB0ZXNlIG91IGRpc3NlcnRhw6fDo28gY29udGVuaGEgbWF0ZXJpYWwgcXVlIHZvY8OqIG7Do28gcG9zc3VpIGEgdGl0dWxhcmlkYWRlIGRvcyBkaXJlaXRvcyBhdXRvcmFpcywgdm9jw6oKZGVjbGFyYSBxdWUgb2J0ZXZlIGEgcGVybWlzc8OjbyBpcnJlc3RyaXRhIGRvIGRldGVudG9yIGRvcyBkaXJlaXRvcyBhdXRvcmFpcyBwYXJhIGNvbmNlZGVyIMOgIFVGU0NhcgpvcyBkaXJlaXRvcyBhcHJlc2VudGFkb3MgbmVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgZGUgcHJvcHJpZWRhZGUgZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUKaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3Ugbm8gY29udGXDumRvIGRhIHRlc2Ugb3UgZGlzc2VydGHDp8OjbyBvcmEgZGVwb3NpdGFkYS4KCkNBU08gQSBURVNFIE9VIERJU1NFUlRBw4fDg08gT1JBIERFUE9TSVRBREEgVEVOSEEgU0lETyBSRVNVTFRBRE8gREUgVU0gUEFUUk9Dw41OSU8gT1UKQVBPSU8gREUgVU1BIEFHw4pOQ0lBIERFIEZPTUVOVE8gT1UgT1VUUk8gT1JHQU5JU01PIFFVRSBOw4NPIFNFSkEgQSBVRlNDYXIsClZPQ8OKIERFQ0xBUkEgUVVFIFJFU1BFSVRPVSBUT0RPUyBFIFFVQUlTUVVFUiBESVJFSVRPUyBERSBSRVZJU8ODTyBDT01PClRBTULDiU0gQVMgREVNQUlTIE9CUklHQcOHw5VFUyBFWElHSURBUyBQT1IgQ09OVFJBVE8gT1UgQUNPUkRPLgoKQSBVRlNDYXIgc2UgY29tcHJvbWV0ZSBhIGlkZW50aWZpY2FyIGNsYXJhbWVudGUgbyBzZXUgbm9tZSAocykgb3UgbyhzKSBub21lKHMpIGRvKHMpCmRldGVudG9yKGVzKSBkb3MgZGlyZWl0b3MgYXV0b3JhaXMgZGEgdGVzZSBvdSBkaXNzZXJ0YcOnw6NvLCBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIGFsw6ltIGRhcXVlbGFzCmNvbmNlZGlkYXMgcG9yIGVzdGEgbGljZW7Dp2EuCg==Repositório InstitucionalPUBhttps://repositorio.ufscar.br/oai/requestopendoar:43222023-09-18T18:31:46Repositório Institucional da UFSCAR - Universidade Federal de São Carlos (UFSCAR)false
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/ufscar/9440.
dc.identifier.uri.fl_str_mv https://repositorio.ufscar.br/handle/ufscar/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/ufscar/9440.
url https://repositorio.ufscar.br/handle/ufscar/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/bitstream/ufscar/9440/1/Souza%20ACA%20-%20Disserta%c3%a7%c3%a3o.pdf
https://repositorio.ufscar.br/bitstream/ufscar/9440/2/Souza%20ACA%20-%20Carta%20Comprovante%20Disserta%c3%a7%c3%a3o.pdf
https://repositorio.ufscar.br/bitstream/ufscar/9440/3/license.txt
https://repositorio.ufscar.br/bitstream/ufscar/9440/4/Souza%20ACA%20-%20Disserta%c3%a7%c3%a3o.pdf.txt
https://repositorio.ufscar.br/bitstream/ufscar/9440/5/Souza%20ACA%20-%20Carta%20Comprovante%20Disserta%c3%a7%c3%a3o.pdf.txt
https://repositorio.ufscar.br/bitstream/ufscar/9440/6/Souza%20ACA%20-%20Disserta%c3%a7%c3%a3o.pdf.jpg
https://repositorio.ufscar.br/bitstream/ufscar/9440/7/Souza%20ACA%20-%20Carta%20Comprovante%20Disserta%c3%a7%c3%a3o.pdf.jpg
bitstream.checksum.fl_str_mv 03f607488009b7babd6a5cb4a83f71f1
83e48380df88b3e9408822b530593517
ae0398b6f8b235e40ad82cba6c50031d
b57a0a8369bba4e1c09bfb4fbeeed9a3
68b329da9893e34099c7d8ad5cb9c940
e003d717961434145a78eb4113bdf38b
fee6575eaceea601654cb6f99c88b1e4
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
_version_ 1813715585520893952