Exercícios de Compiladores

Expressões regulares

  1. Que linguagem as expressões abaixo representam?
  1. Escreva uma expressão regular para as linguagens definidas abaixo:

Autômatos

  1. A seguir estão os diagramas de estado de dois AFDs, M1 e M2. Responda às seguintes questões sobre cada uma dessas máquinas.
  1. Dê a descrição formal das Máquinas M1 e M2 desenhadas no Exercício anterior.

  2. Explique os elementos que definem a 5-upla de um:
  1. Diferencie Autômato Finito determinístico de não-determinístico e de pilha

  2. Explique qual é a linguagem definida pela expressão regular (0 + 1) * 1(0 + 1) e faça um autômato finito que reconheça esta linguagem
  1. Faça um autômato que reconheça as linguagens:
  1. Explique os elementos que formam a 6-upla de um autômato de pilha

  2. Diferencie autômato de pilha com autômato finito não-determinístico

  3. Faça um autômato de pilha que reconheça a linguagem { w w^R | w {0,1}* }$

GLC

  1. Defina o conceito de GLC ( e o que significa este acrônimo?)

  2. Defina os elementos que formam a 4-upla de uma gramática livre do contexto.

  3. Dada a GLC abaixo:

E -> E + T | T
T -> T x F | F
F -> (E) | a

Dê árvores sintáticas e derivações para cada cadeia abaixo.

  1. Responda cada item para a seguinte gramática livre-do-contexto G
R -> XRX | S
S -> aTb | bTa
T -> XTX | X | \epsilon
X -> a | b
  1. Seja G = (V, Σ, R,  < STMT > ) a seguinte gramática
<STMT> -> <ASSIGN> | <IF-THEN> | <IF-THEN-ELSE>
<IF-THEN> -> if condition then <STMT>
<IF-THEN-ELSE> -> if condition then <STMT> else <STMT>
<ASSIGN> -> a:=1
  1. Resolva os exercícios do capítulo 5 do livro do Thomaz, página 74 e 75 (pdf 44)