Notas de Aula - MAC 211 - Laboratório de Programação
Aula anterior
Aula 15 - 20/4/2009
Processamento de Linguagens de Programação
-
Analisador Léxico
- responsável por identificar os itens léxicos nos
código-fonte do programa
- itens léxicos são palavras, números, símbolos, etc.
- Analisador Sintático
- responsável por identificar a estrutura sintática do
programa
- e construir uma estrutura de dados (normalmente uma
árvore sintática) para representar este programa em memória
- Análise Semântica
- responsável por definir o que significa cada
comando e gerar o código correspondente
-
Neste curso abordaremos formalmente apenas Análise Léxica
- Processamento de programas é um tema de
- MAC 316 -
Conceitos de Linguagens de Prorgamação - construção de um
interpretador
- MAC 414 -
Linguagens Formais e
Autômatos - análise sintática em profundidade
- MAC 410
- Introdução à Compilação - construção de um compilador
-
Vamos aprender análise léxica inicialmente através de um
exemplo:
- Calculadora HP (notação pós-fixa, também chamada
de notação polonesa)
- Vamos agora a um exemplo mais complexo:
- Calculadora recursiva (notação in-fixa, tradicional)
- Exemplo de utilização:
(2*(3+(5*2)));
k[0] := (2+(4/20))-18.32;
k[1] := 3.1415926538*2;
(123 + k[1])*2 + k[0];
2+(K[3]:=9);
- Essa calculadora implementa a gramática definida informalmente
a seguir.
- programa = expr ; programa
- expr =
termo + termo | termo - termo | combinações
de + e -
- termo = fator *
fator | fator / fator | combinações
de * e /
- fator = NUMERO |
-NUMERO | (expr) | K[expr] | K[expr] := expr
Próxima
aula
Página de MAC211
Página do Fabio
Página do DCC