Escolar Documentos
Profissional Documentos
Cultura Documentos
Parte I
Agenda
Conceitos Processadores de Linguagem Estrutura de um Compilador Anlise Lxica, Sinttica e Semntica Gerao e Otimizao de Cdigo Tabela de Smbolos Linguagens e Compiladores Ferramentas de apoio Evoluo e Tipo de Linguagens Cincia da Criao de um Compilador Fundamentos das Linguagens de Programao
Conceitos
O que linguagem de programao? Processadores de linguagem Programa Fonte e Programa Objeto
Processo de Compilao
programa fonte
Compilador
programa objeto
Execuo
Programa Objeto Executvel
entrada
Programa Objeto
sada
Processo de Interpretao
Compilador Hbrido
programa fonte
Tradutor
Compilador JIT
programa fonte
Tradutor
entrada
cdigo intermedirio
Pr-processador
Programa fonte modificado
Compilador
Montador
Editor de Ligao/Carregador
10
Analisador Lxico
fluxo de tokens
Analisador Sinttico
rvore de sintaxe
Analisador Semntico
rvore de sintaxe
Tabela de Smbolos
Gerador de Cdigo
cdigo da mquina alvo
11
12
Anlise Lxica
Fluxo de Caracteres > Lexemas > Token Estrutura do Token: <nome-token, valor-atributo>
13
Anlise Sinttica
Tokens > rvore de Sintaxe Raiz, Interior, Folha, Pai e Filho Operaes Argumentos
14
Anlise Semntica
rvore de Sintaxe x Tabela de Smbolos Verificao de Tipos Ex.: Arranjos Coeres
15
Tabela de Smbolos
Armazena informaes coletadas Utilizada em toda fase de anlise Informaes de variveis e procedimentos
Prof Wellington Moreira 16
posicao
valor
inicio
Gerao de Cdigo
Gerador de Cdigo Intermedirio cdigo de trs endereos Otimizador de Cdigo rapidez, memria, energia etc. Gerador de Cdigo linguagem objeto
17
Ferramentas
Geradores de analisadores lxicos Geradores de analisadores sintticos Mecanismos de traduo dirigida por sintaxe Geradores de gerador de cdigo Mecanismos de anlise de fluxo de dados Conj. de ferramentas para a construo de comp.
Prof Wellington Moreira 18
19
Tipos de Linguagem
1, 2, 3, 4 e 5 geraes Imperativa como Declarativa qual Funcional funes matemticas Linguagem de von Neumann modelo computacional Linguagem OO Linguagem de scripting
20
21
22
23
Ferramentas de Produtividade de Sw
Verificao de Tipos: tipos de variveis e parmetros Verificao de Limites: limite de arranjos em C Gerenciamento de Memria: coleta de lixo Java
24