Codegs: um tipo especial de metaobjetos em Cyan
| Ano de defesa: | 2017 |
|---|---|
| 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 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 |