DEPARTAMENTO DE ENGENHARIA DE COMPUTAO CURSO DE ENGENHARIA DE COMPUTAO Dissertao: Proesso !e o"#i$ao No"e: Hailton Felisberto De Carvalho Junior T%r"a: Ecomp Mo&tes C$aros' MG A(osto)*+,-
FUNDAO EDUCACIONAL DE MONTES CLAROS FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS DEPARTAMENTO DE ENGENHARIA DE COMPUTAO CURSO DE ENGENHARIA DE COMPUTAO Proesso !e o"#i$ao Um compilador uma ferramenta que traduz um programa de uma lngua para outra lngua !rocessos de compila"#o composto de an$lise e sntese % an$lise tem como ob&etivo entender o c'digo fonte e represent$(lo em uma estrutura intermedi$ria % sntese constr'i o c'digo ob&eto a partir desta representa"#o intermedi$ria %n$lise pode ser subdividida ainda em an$lise l)ica* an$lise sint$tica* an$lise sem+ntica e* gera"#o de c'digo intermedi$rio , tambm conhecida como front end % sntese pode ter mais varia"-es de um compilador a outro* podendo ser composta pelas etapas de optimiza"#o de c'digo e gera"#o de c'digo final ou c'digo de m$quina* sendo somente esta .ltima etapa obrigat'ria , tambm conhecida como bac/ end % figura abai)o ilustra estes processos0 % primeira fase de compila"#o an$lise l)ica % fun"#o do analisador l)ico* analisar todo o c'digo fonte e produzir smbolos 1to/ens2 que podem ser manipulados na etapa seguinte nesta etapa* s#o eliminados os espa"os em branco e coment$rios Um e)emplo da analise l)ica considerando o e)emplo do c'digo em C abai)o0 3s elementos reconhecidos nessa primeira etapa da compila"#o s#o denominados itens l)icos ou to/ens !ara o e)emplo acima* a seguinte lista de tokens seria reconhecidas na forma0 3 analisador sint$tico 1parsing2 quem d$ significado 4s sequ5ncias de to/ens criadas anteriormente % an$lise sem+ntica respons$vel por analisar o significado* de cada elemento do c'digo 6a gera"#o de c'digo intermedi$rio ocorre a convers#o da $rvore sint$tica* criada na etapa 7* em uma representa"#o intermedi$rio do c'digo fonte % pr')ima etapa o c'digo otimizado para uma determinada arquitetura hard8are e sistema operacional especifico conhecida como otimiza"#o E por fim tem se a gera"#o de c'digo final onde o arquivo e)ecut$vel 1e)e2 criado* otimizado para determinada arquitetura