Analisador sintático - compiladores

449 palavras 2 páginas
0047COMPILADORES
02/10/2012

Árvore de Análise Sintática
Árvore de Análise Sintática
Análise Semântica
Análise Semântica
Tokens
Tokens
Análise
Léxica
Análise
Léxica
Análise Sintática
Análise Sintática
Gerador de Código
Gerador de Código
Arquivo de Saída
Arquivo de Saída
Arquivo-Fonte
Arquivo-Fonte
COMPILADOR
COMPILADOR

Analisador Sintático de Descendência Recursiva
E TE’
E’+TE’|ɛ
T FT’
T’*FT’| ɛ
F (E)|id

int le_token(); int token; void E(){ T(); E_linha();
}

void E_linha(){ token=le_token(); if(token==”+”){ T(); E_linha(); }else{retrocede();}
}
void T(){ F(); T_linha();
}

void T_linha(){ token=le_token(); if(token==”*”){ F(); T_linha(); }else{ retocede(); }
}

void F(){ token=le_token(); if(token==”(“){ E(); token=le_token(); }else if(token == ID){ }
}

int main(){ E(); return 0;
}

Eliminação de Recursividade à Esquerda Uma gramática é recursiva à esquerda se existe uma derivação de tal forma: A => Aα para alguma cadeia α. Considerando par de produçãoes A->Aα|β , podemos substituí-la pela seguinte produção não-recursiva:
A βA’
A’αA’|ɛ
A mesma regra é aplicada se existirem mais de uma produção A: A Aα1|Aα2|...|Aαn|β1| β2| ...| βn ↓ A β1A’| β2A’|...| βnA’ A’ α1A’| α2A’|...| αnA’| ɛ

Ex.: EE+T|E-T|T TT*F|T/F|F F(E)|id

1) SS(S)S| ɛ 2) SS+S|SS|(S)|S*|α

30/10/2012
Código de Três Endereços
Existe no máximo um operador no lado direito de uma instrução, ou seja, nenhuma expressão aritmética com vários operadores é permitida. Ex.: Expressão Nominal: w = x + y * z t0 = y * z w = x + t0 Como o nome já diz "três endereços" é o máximo de variáveis por instrução por isso a tradução acima.

Endereços podem ser: * Um identificador: variável * Uma constante: um número, caracter, etc;

Relacionados

  • ciencia da computação
    522 palavras | 3 páginas
  • Compiladores
    1051 palavras | 5 páginas
  • Doetion
    1866 palavras | 8 páginas
  • Aula Comp 03
    1746 palavras | 7 páginas
  • Compiladores
    4177 palavras | 17 páginas
  • Analise de Sistemas
    6349 palavras | 26 páginas
  • compiladores
    4026 palavras | 17 páginas
  • Analise Sintatica de Programas
    6402 palavras | 26 páginas
  • linguagem de programação
    6440 palavras | 26 páginas
  • Aula 03 An Lise L Xica
    1002 palavras | 5 páginas