Documente Academic
Documente Profesional
Documente Cultură
COMPILADORES.
Nomes dos integrantes do grupo: Anderson W. C. Pacheco, Camila D.C. Maral,
Daniel R. D. C e Viviane N. Alves.
UNIPAC Lafaiete Fundao Presidente Antnio Carlos, Prof. Orientador Emerson R. A. Tavares
Resumo - Este artigo apresenta uma viso do que um
compilador e as variveis utilizadas no processo de
compilao de forma a entender como so utilizados as
gramticas e linguagens durante este processo. Fizemos uso de
uma metodologia baseada em analogias entre os conceitos de
compiladores e o seu uso visando tornar a ferramenta mais
atuante o processo de aprendizagem.
I. SIGLAS
Token - em computao um conjunto de caracteres (de
um alfabeto, por exemplo) com um significado
coletivo.
Parcing em computao e lingustica: anlise de
sinttica ou
o
processo
de
analisar
uma sequncia de expresso matemtica.
String sequncia de caracteres.
II. INTRODUO
A computao est constantemente presente em nosso dia-adia, e com os avanos e melhorias surgiram inmeras
linguagens de programao, cada linguagem exige o seu
tradutor/compilador. A partir da criao dos compiladores o
ato de programar se tornou uma tarefa mais simples.
Este processo de traduo chamado compilao, que traduz a
notao textual que fcil de ser entendida por pessoas para
instrues em linguagens de mquinas.
III. OBJETIVOS
V. COMPILADORES
A. Compiladores
Um compilador um programa de computador (ou um grupo
de programas) que, a partir de um cdigo fonte escrito em
uma linguagem compilada, cria um programa semanticamente
equivalente, porm escrito em outra linguagem, cdigo objeto.
Ele chamado compilador por razes histricas; nos primeiros
anos da programao automtica, existiam programas que
percorriam bibliotecas de sub-rotinas e as reunia juntas, ou
compilava, as subrotinas necessrias para executar uma
determinada tarefa. [2]
Um compilador tambm pode ser chamado de tradutor que
recebe um dado de entrada em uma linguagem de programao
denominada linguagem fonte e produz aps seu processamento
um programa escrito em uma linguagem de baixo nvel como o
Assembley ou at mesmo linguagem de mquina que
denominada linguagem alvo.
Uma importante parte deste processo a anlise e deteco de
erros no programa fonte como sintaxe e outros gerando
relatrios ao usurio. Com isso o funcionamento bsico de um
compilador pode ser sintetizado no esquema abaixo.
B. Gramticas e Linguagens
O conceito de gramtica ser usado inicialmente como
ferramenta para descrever uma linguagem e
posteriormente como base para a construo dos
analisadores lxico sinttico. Uma gramatica consiste
em um conjunto de regras que definem como derivar
determinada String de uma linguagem. As regras de
produo envolvem smbolos da linguagem e
variveis que representam um conjunto de Strings.
C. O processo de compilao
S
A
B
C
ABC
aA | a
bB | bb
cC |
S = {1,2,3, ... , X}
S = {A, B, C}
Um algoritmo nada mais do que uma receita que
mostra o passo a passo os procedimentos necessrios
para uma determinada tarefa. De forma mais objetiva
um algoritmo uma sequencia logica para se realizar
uma tarefa no se aplica apenas computao, mas
sim qualquer planejamento que seja feito para se
chegar a um determinado objetivo.
Trocar uma lmpada:
1 Comprar uma nova lmpada.
2 Pegar uma escada.
3 Posicionar a escada.
4 Substituir a lmpada pela nova.
5 Descer da escada.
Pode-se definir uma linguagem como sendo um
conjunto de elementos (smbolos) e um conjunto de
mtodos (regras) para combinar estes elementos,
sendo usados e entendidos por uma determinada
comunidade. Sendo assim uma linguagem formal
aquela que pode ser representada de forma finita e
precisa de acordo com sistemas de sustentao
matemtica.
G. Anlise e sntese
Figura 4: Modelo analise sinttica [3]
H. Fases de um compilador
Compiladores de Java:
Tabela 2: Compiladores Java
Nome
Eclipse
Jubile
JEdit
JDeveloper
K. Exemplos de Compiladores
NetBeans
Descrio
Eclipse uma IDE de cdigo aberto
desenvolvido inicialmente pela IBM e
posteriormente doada para a comunidade
do software livre. Utilizada largamente,
tem grandes diferenciais como a
possibilidade de instalao de vrios
plug-ins. Uma verso em portugus
mantida no site oficial que conhecida
como Eclipse Europa.
JBuilder
uma
IDE
para
desenvolvimento de aplicaes mais
grficas, a partir de JFames. O JBuilder
foi desenvolvido pela Borland (a mesma
que produz o C++ Builder) utilizando
tecnologias da comunidade do Eclipse
Europa. O site CodeGear que faz a
distribuio dos softwares da Borland
mantm duas verses: uma Enterprise
(pago) e a verso trial (mais bsica,
porm gratuita). O problema maior do
JBuilder para quem no tem internet de
banda larga, pois os arquivos de
downloads chegam a exagerados 1,8 Gb.
JEdit
um
Ambiente
de
Desenvolvimento Integrado criado pela
Xinox Software com o ncleo
desenvolvido
por
Slava
Pestov.
Atualmente, distribudo sobre a licena
GPL 2.0 (software livre) tem uma
interface mais limpa e simples que outras
IDEs, bom para quem est comeando.
IDE desenvolvido pela Oracle. Cobre
todo processo de produo do software
em java, desde o desenvolvimento do
cdigo at a implantao do software.
Oferece uma tima estrutura de UML
com diagramao do cdigo.
O compilador que faz parte da prpria
gama de produtos da Sun Microsystems.
Com capacidade de programao em
vrios
ambientes
como
C++,
Desenvolvimento para sofwares de
celular (mobile), Ruby on Rails e vrios
outros. Netbeans uma ferramenta de
desenvolvimento Java poderosa, mas
todo este poder requer uma mquina no
muito modesta.
Compiladores de C e C++:
Tabela 3: Compiladores C e C++
Nome
DevC++
GCC
C++
Builder
Visual
C++
Descrio
Criado pela Bloodshed, o melhor para quem
iniciante tanto na linguagem quanto na
programao. Tem suporte a projeto e boa interface
com o usurio. A desvantagem a impossibilidade
de se criar projetos muito extensos. Apesar de
compilar a linguagem C, seu cdigo escrito em
um cdigo totalmente diferente - o Delphi!
Compilador utilizado pelo projeto GNU. padro
ANSI C e nativo do sistema Linux, facilitando
muito a vida de usurios Linux, pois no preciso
instalar compiladores de terceiros. Seu nico
problema a falta de uma interface, que prejudica
quem principiante na linguaguem.
O C++ Builder um dos melhores compiladores
que tem, com possibilidade de criao de projetos
extensos. A Borland mantm no site da Code Gear
duas verses: uma demo e outra paga. Ele segue o
padro ISO ou ANSI C, mas tambm tem muitas
bibliotecas no padro, fazendo muitas vezes com
que o programa perca a portabilidade e o cdigo
escrito no C++ Builder no rode em outros
compiladores, mesmo que a linguagem C seja a
mesma.
O visual C++ um compilador profissional da
Microsoft que compe o pacote Visual Studio,
com vrios recursos, como incremento de cdigo,
depurador de erros avanado e outras ferramentas
que aumentam a produtividade do programador. O
problema que por ser da Microsoft tem o preo
elevado e s compensar se voc for usar esta
linguagem para desenvolvimento profissional em
aplicaes Windows. Tem uma verso trial no site
oficial.
VI. REFERNCIAS
[1] ALFRED V. AHO, Ravi Sethi, Jeffrey D. Ullman,
Compiladores, Princpios, Tcnicas e Ferramentas. (Editora
LTC, p IX).
[5] LOUDEN, Kenneth C. Compiladores Princpios e Prticas.
So Paulo, Cengage Learning, 2004
[2] Wikipdia, a enciclopdia livre.
[3]https://commons.wikimedia.org/wiki/File:Parsingexample.png#/media/File:Parsing-example.png
[4]https://pt.scribd.com/doc/268129330/TeoriaComputacaoNo
vo
[5] IEEE Copyright Form.
VII. CONCLUSES
O objetivo principal do presente artigo a viso e
entendimanto de como so utilizados as gramticas e
linguagens no processo de compilaao.
Os resultados alcanados com a prtica dessa metodologia,
no s confirmam as suposies iniciais, como tambm
apontam para a melhoria do entendimento de compiladores,