Академический Документы
Профессиональный Документы
Культура Документы
Cristiano Lehrer
http://www.ybadoo.com.br/
Gramáticas Livre do Contexto
Linguagens Formais e Autômatos
http://www.ybadoo.com.br/
terminais
variáveis
Gramáticas Livre do Contexto
Linguagens Formais e Autômatos
http://www.ybadoo.com.br/
| identifier, <ident_list>
Gramáticas Livre do Contexto
Linguagens Formais e Autômatos
http://www.ybadoo.com.br/
<stmt_list> → <stmt>
| <stmt> ; <stmt_list>
<var> → A | B | C
| <var> - <var>
| <var> }
Gramáticas Livre do Contexto
Linguagens Formais e Autômatos
http://www.ybadoo.com.br/
<program>
begin <stmt_list> end
begin <stmt> ; <stmt_list> end
begin <var> = <expression> ; <stmt_list> end
begin A = <expression> ; <stmt_list> end
begin A = <var> + <var> ; <stmt_list> end
begin A = B + <var> ; <stmt_list> end
begin A = B + C ; <stmt_list> end
begin A = B + C ; <stmt> end
begin A = B + C ; <var> = <expression> end
begin A = B + C ; B = <expression> end
begin A = B + C ; B = <var> end
begin A = B + C ; B = C end
Gramáticas Livre do Contexto
Linguagens Formais e Autômatos
http://www.ybadoo.com.br/
Derivação (1/2)
● Um outro exemplo de gramática:
Derivação (2/2)
● Derivação à Extrema Esquerda (DEE): ● Derivação à Extrema Direita (DED):
<assign> <assign>
<id> = <expr> <id> = <expr>
A = <expr> <id> = <id> * <expr>
A = <id> * <expr> <id> = <id> * ( <expr> )
A = B * <expr> <id> = <id> * ( <id> + <expr> )
A = B * ( <expr> ) <id> = <id> * ( <id> + <id> )
A = B * ( <id> + <expr> ) <id> = <id> * ( <id> + C )
A = B * ( A + <expr> ) <id> = <id> * ( A + C )
A = B * ( A + <id> ) <id> = B * ( A + C )
A = B * ( A + C ) A = B * ( A + C )
Árvore de Derivação
● Gramáticas descrevem uma
estrutura hierárquica das
sentenças.
● Essa estrutura hierárquica é
chamada de parse tree.
Gramáticas Livre do Contexto
Linguagens Formais e Autômatos
http://www.ybadoo.com.br/
Ambiguidade (1/2)
● Uma gramática que gera uma sentença para o qual existem duas ou
mais árvores de derivação.
Ambiguidade (2/2)
A := B + C * A