Uma Abordagem para Construção das Etapas de Análise de um Compilador.
Submitted by Gustavo Nascimento (gustavo.diniz@ufcg.edu.br) on 2018-02-07T11:57:47Z No. of bitstreams: 1 DANIEL GONDIM ERNESTO DE MÉLO - DISSERTAÇÃO PPGCC 2014.pdf: 1076740 bytes, checksum: 6b8c2f71701a3e6c6fa28f87faaeba62 (MD5) === Made available in DSpace on 2018-02-07T11:57:47Z (GMT). No. of bi...
Main Author: | |
---|---|
Other Authors: | |
Language: | Portuguese |
Published: |
Universidade Federal de Campina Grande
2014
|
Subjects: | |
Online Access: | http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/258 |
id |
ndltd-IBICT-oai-localhost-riufcg-258 |
---|---|
record_format |
oai_dc |
collection |
NDLTD |
language |
Portuguese |
sources |
NDLTD |
topic |
Ciência da Computação. Linguagem de Programação. Ferramentas de Compiladores. Scanners. Parsers. |
spellingShingle |
Ciência da Computação. Linguagem de Programação. Ferramentas de Compiladores. Scanners. Parsers. MÉLO, Daniel Gondim Ernesto de. Uma Abordagem para Construção das Etapas de Análise de um Compilador. |
description |
Submitted by Gustavo Nascimento (gustavo.diniz@ufcg.edu.br) on 2018-02-07T11:57:47Z
No. of bitstreams: 1
DANIEL GONDIM ERNESTO DE MÉLO - DISSERTAÇÃO PPGCC 2014.pdf: 1076740 bytes, checksum: 6b8c2f71701a3e6c6fa28f87faaeba62 (MD5) === Made available in DSpace on 2018-02-07T11:57:47Z (GMT). No. of bitstreams: 1
DANIEL GONDIM ERNESTO DE MÉLO - DISSERTAÇÃO PPGCC 2014.pdf: 1076740 bytes, checksum: 6b8c2f71701a3e6c6fa28f87faaeba62 (MD5)
Previous issue date: 2014-06-20 === Capes === Compiladores são programas que traduzem um código escrito em alguma linguagem, conhecida
como linguagem fonte, para um outro programa semanticamente equivalente em
outra linguagem, conhecida como linguagem destino. Existem compiladores que traduzem
códigos entre linguagens de alto nível. Porém, em geral, a linguagem destino mais utilizada
é a linguagem de máquina ou código de máquina. Várias linguagens e ferramentas
têm sido propostas dentro desse escopo a exemplo de Xtext, Stratego, CUP, ANTLR, etc.
Apesar da grande quantidade, atualmente, os frameworks existentes para a construção de
compiladores são de difícil compreensão e não evidenciam ao programador várias estruturas
importantes, como tabela de símbolos e árvores de derivação. Adicionalmente, são muitos
os detalhes específicos de cada plataforma concebida com esse propósito. Outrossim, em sua
maioria, cada framework concentra-se e provê serviços para apenas uma etapa de um compilador,
muitas vezes para prover serviços para mais de uma etapa se faz necessário o uso de
linguagens de propósito geral, o que eleva o grau de complexidade para o projetista de Compiladores.
Nesse sentido, propomos UCL (Unified Compiler Language), uma linguagem de
domínio específico para o desenvolvimento das etapas de análise de Compiladores, de forma
independente de plataforma e unificada. Com UCL é possível ao projetista do Compilador,
especificar questões de design, tais como escolha de algoritmos a serem utilizados, tipo de
scanner, entre outras características. A avaliação deste trabalho foi realizada por meio da
condução de dois surveys com alunos da disciplina de Compiladores da Universidade Federal
de Campina Grande, durante a execução dos projetos, que consiste no desenvolvimento
de Compiladores. === Compilers are softwares that translate program codes written in some language, known as source language, to another semantically equivalent program in another programming language,
known as target language. There are compilers that translate codes between high level
languages. However, in general, the most widely used target language is the machine language
or machine code. Several languages and tools have been proposed within this escope,
e.g. Xtext, Stratego, CUP, ANTLR, etc. Despite the great quantity, currently, the existing
frameworks for building compilers are difficult to understand and does not show the programmer
several important structures, such as symbol table and syntax tree. Additionally,
there are many specific details of each platform designed for that purpose. Moreover, in
most cases, each framework focuses and provides services for only one module of a compiler.
Often to provide services for more than one step it is necessary to use general purpose
languages, which increases the degree of complexity. In this context, we propose UCL (Unified
Compiler Language), a domain specific language for the development of the analysis
modules, in a unified and platform independent way. With UCL it is possible for the compiler
designer, specify design issues, such as, choice of algorithms to be used, type of scanner,
among other features. The evaluation of this work was conducted through the application of
two surveys with students of the compilers course from the Federal University of Campina
Grande, during project execution, consisting in the development of compilers. |
author2 |
RAMALHO, Franklin de Souza. |
author_facet |
RAMALHO, Franklin de Souza. MÉLO, Daniel Gondim Ernesto de. |
author |
MÉLO, Daniel Gondim Ernesto de. |
author_sort |
MÉLO, Daniel Gondim Ernesto de. |
title |
Uma Abordagem para Construção das Etapas de Análise de um Compilador. |
title_short |
Uma Abordagem para Construção das Etapas de Análise de um Compilador. |
title_full |
Uma Abordagem para Construção das Etapas de Análise de um Compilador. |
title_fullStr |
Uma Abordagem para Construção das Etapas de Análise de um Compilador. |
title_full_unstemmed |
Uma Abordagem para Construção das Etapas de Análise de um Compilador. |
title_sort |
uma abordagem para construção das etapas de análise de um compilador. |
publisher |
Universidade Federal de Campina Grande |
publishDate |
2014 |
url |
http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/258 |
work_keys_str_mv |
AT melodanielgondimernestode umaabordagemparaconstrucaodasetapasdeanalisedeumcompilador |
_version_ |
1718679989485830144 |
spelling |
ndltd-IBICT-oai-localhost-riufcg-2582018-05-28T03:37:07Z Uma Abordagem para Construção das Etapas de Análise de um Compilador. MÉLO, Daniel Gondim Ernesto de. RAMALHO, Franklin de Souza. FARIAS, Adalberto Cajueiro de. Ciência da Computação. Linguagem de Programação. Ferramentas de Compiladores. Scanners. Parsers. Submitted by Gustavo Nascimento (gustavo.diniz@ufcg.edu.br) on 2018-02-07T11:57:47Z No. of bitstreams: 1 DANIEL GONDIM ERNESTO DE MÉLO - DISSERTAÇÃO PPGCC 2014.pdf: 1076740 bytes, checksum: 6b8c2f71701a3e6c6fa28f87faaeba62 (MD5) Made available in DSpace on 2018-02-07T11:57:47Z (GMT). No. of bitstreams: 1 DANIEL GONDIM ERNESTO DE MÉLO - DISSERTAÇÃO PPGCC 2014.pdf: 1076740 bytes, checksum: 6b8c2f71701a3e6c6fa28f87faaeba62 (MD5) Previous issue date: 2014-06-20 Capes Compiladores são programas que traduzem um código escrito em alguma linguagem, conhecida como linguagem fonte, para um outro programa semanticamente equivalente em outra linguagem, conhecida como linguagem destino. Existem compiladores que traduzem códigos entre linguagens de alto nível. Porém, em geral, a linguagem destino mais utilizada é a linguagem de máquina ou código de máquina. Várias linguagens e ferramentas têm sido propostas dentro desse escopo a exemplo de Xtext, Stratego, CUP, ANTLR, etc. Apesar da grande quantidade, atualmente, os frameworks existentes para a construção de compiladores são de difícil compreensão e não evidenciam ao programador várias estruturas importantes, como tabela de símbolos e árvores de derivação. Adicionalmente, são muitos os detalhes específicos de cada plataforma concebida com esse propósito. Outrossim, em sua maioria, cada framework concentra-se e provê serviços para apenas uma etapa de um compilador, muitas vezes para prover serviços para mais de uma etapa se faz necessário o uso de linguagens de propósito geral, o que eleva o grau de complexidade para o projetista de Compiladores. Nesse sentido, propomos UCL (Unified Compiler Language), uma linguagem de domínio específico para o desenvolvimento das etapas de análise de Compiladores, de forma independente de plataforma e unificada. Com UCL é possível ao projetista do Compilador, especificar questões de design, tais como escolha de algoritmos a serem utilizados, tipo de scanner, entre outras características. A avaliação deste trabalho foi realizada por meio da condução de dois surveys com alunos da disciplina de Compiladores da Universidade Federal de Campina Grande, durante a execução dos projetos, que consiste no desenvolvimento de Compiladores. Compilers are softwares that translate program codes written in some language, known as source language, to another semantically equivalent program in another programming language, known as target language. There are compilers that translate codes between high level languages. However, in general, the most widely used target language is the machine language or machine code. Several languages and tools have been proposed within this escope, e.g. Xtext, Stratego, CUP, ANTLR, etc. Despite the great quantity, currently, the existing frameworks for building compilers are difficult to understand and does not show the programmer several important structures, such as symbol table and syntax tree. Additionally, there are many specific details of each platform designed for that purpose. Moreover, in most cases, each framework focuses and provides services for only one module of a compiler. Often to provide services for more than one step it is necessary to use general purpose languages, which increases the degree of complexity. In this context, we propose UCL (Unified Compiler Language), a domain specific language for the development of the analysis modules, in a unified and platform independent way. With UCL it is possible for the compiler designer, specify design issues, such as, choice of algorithms to be used, type of scanner, among other features. The evaluation of this work was conducted through the application of two surveys with students of the compilers course from the Federal University of Campina Grande, during project execution, consisting in the development of compilers. 2014-06-20 2018-02-07T11:57:47Z 2018-02-07 2018-02-07T11:57:47Z info:eu-repo/semantics/publishedVersion info:eu-repo/semantics/masterThesis http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/258 MÉLO, Daniel Gondim Ernesto de. Uma abordagem para construção das etapas de análise de um compilador. 2014. 138 f. Dissertação ( Mestrado em Ciência da Computação) - Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2014. por info:eu-repo/semantics/openAccess Universidade Federal de Campina Grande PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO UFCG Brasil Centro de Engenharia Elétrica e Informática - CEEI reponame:Biblioteca de Teses e Dissertações da UFCG instname:Universidade Federal de Campina Grande instacron:UFCG |