A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

COMPILADORES 04 Prof. Marcos.

Apresentações semelhantes


Apresentação em tema: "COMPILADORES 04 Prof. Marcos."— Transcrição da apresentação:

1 COMPILADORES 04 Prof. Marcos

2 COMPILADORES Analise Sintática
Os Tokens são agrupados hierarquicamente em “frases gramaticais” que serão utilizadas pelo compilador para sintetizar a saída do programa. As operações do código-fonte são reconhecidas e armazenadas em uma estrutura hierárquica chamada “árvore sintática” Cada nó representa uma operação; Cada nó-filho representa os argumentos da operação.

3 COMPILADORES Analise Sintática
Regras recursivas expressam a estrutura hierárquica do programa. Exemplo: Um identificador é uma expressão Um número é uma expressão Se expr1 e expr2 são expressões, então também o serão: expr1 + expr2 expr1 * expr2 (expr1)

4 COMPILADORES Analise Sintática
Exemplo: Montante = Inicial + Taxa * 60; = Montante Inicial * Taxa

5 COMPILADORES Gramáticas
Um conjunto de regras de produção, é um símbolo de partida. Uma regra de produção tem o formato   , onde  representa o nome da construção sintática e  representa uma forma possível dessa construção: <expressão>  <expressão> + <expressão>

6 COMPILADORES Derivação
A verificação se uma frase faz parte da linguagem gerada pela gramática, envolve sucessivas substituições da cadeia de símbolos que ocorre do lado esquerdo da produção pela sua construção sintática correspondente, partindo do símbolo inicial. Essa substituição é chamada derivação sendo normalmente denotada pelo símbolo .

7 COMPILADORES Derivação
<expressão>  <expr> + <expr>  (<expr>) + <expr>  (<expr> - <expr>) + <expr>  (<const> - <expr>) + <expr>  (<const><const> - <expr>) + <expr>  (1<const> - <expr>) + <expr>  (10 - <expr>) + <expr>  (10 - <const>) + <expr> ...  (10 - 2) + 3

8 COMPILADORES Árvore Sintática
(10 – 2) + 3 <expr> <expr> <expr> (<expr>) <const> <expr> - <expr> <const> <const>

9 COMPILADORES Gramáticas Ambíguas
10 – 2 + 3 <expr> <expr> <expr> <expr> <expr> <expr> <expr> - <expr> <expr> + <expr>

10 COMPILADORES Gramáticas Ambíguas
Exemplo: A análise sintática analisa uma string, mas uma string pode possuir várias possibilidades de árvore sintática, se a gramática for ambígua. Solução: Usar sempre gramáticas não ambíguas, ou gramáticas ambíguas com informações adicionais sobre como resolver ambiguidades.

11 COMPILADORES Gramáticas Ambíguas
Programa Fonte Analisador Léxico Tabela de Símbolos ... token Solicita token Analisador Sintático Analisador Semântico Código Intermediário

12 Tratamento de Erros de Sintaxe
COMPILADORES Tratamento de Erros de Sintaxe Relatar presença de erros claramente e com Precisão; Recuperar-se do erro rapidamente, para possibilitar a detecção de erros subsequentes; Não deve gerar overhead significativo para programas corretos.


Carregar ppt "COMPILADORES 04 Prof. Marcos."

Apresentações semelhantes


Anúncios Google