Codegs: um tipo especial de metaobjetos em Cyan
Autor(a) principal: | |
---|---|
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 |