Ybadoo - Soluções em Software Livre
Turmas
2º Semestre de 2015

Desenvolva um programa na linguagem de programação SIMPLE, que apresente os n primeiros termos da sequência yk = yk-1 + 2, sendo k = 1, 2, ..., n e y1 = 1. O número de termos será fornecido pelo usuário, devendo ser um valor inteiro e positivo. Por exemplo, caso o número de termos fornecido pelo usuário seja 5, o programa deverá apresentar como resposta a sequência de valores 1 3 5 7 9. Caso o usuário forneça um valor inválido para o número de termos, o programa deverá apresentar como resposta o valor -1.
y1 = 1
y2 = y1 + 2 = 3
y3 = y2 + 2 = 5
y4 = y3 + 2 = 7
y5 = y4 + 2 = 9

Questão 02

Analise as seguintes afirmativas sobre a fase de análise de um compilador/interpretador:

  1. O analisador léxico e o analisador sintático se comunicam pela solicitação e envio de tokens.
  2. Verificar se o número de argumentos passados para uma função está correto ou não é de responsabilidade do analisador semântico.
  3. Verificar se apareceu um else sem antes aparecer um if é de responsabilidade do analisador semântico.

A análise permite concluir que:

  1. apenas a afirmativa I está correta.
  2. apenas a afirmativa II está correta.
  3. apenas a afirmativa III está correta.
  4. apenas as afirmativas I e II estão corretas.
  5. apenas as afirmativas I e III estão corretas.

Questão 03

Analise as seguintes afirmativas sobre a fase de análise de um compilador/interpretador:

  1. Árvores sintáticas podem ser usadas como estruturas intermediárias entre o analisador sintático e o analisador semântico.
  2. Os parses top-down não tem problemas em relação a gramáticas recursivas à esquerda.
  3. O analisador léxico é responsável por verificar se uma determinada sequência de caracteres é ou não um identificador válido.

A análise permite concluir que:

  1. apenas a afirmativa I está correta.
  2. apenas a afirmativa II está correta.
  3. apenas a afirmativa III está correta.
  4. apenas as afirmativas I e II estão corretas.
  5. apenas as afirmativas I e III estão corretas.

Elimine a recursividade à esquerda e apresente a fatoração a esquerda das produções da gramática a seguir, de modo que a gramática se torne LL(1).

G = ({A}, {a, b, c, d}, P, A)
P = {AAc | Acd | bc | bac | ε}

Apresente a Análise Preditiva Tabular da entrada 01012 sobre a gramática a seguir.

G = ({S, A, B}, {0, 1, 2}, P, S)
P = {S → 0A | 1B
     A → 1B | 2
     B → 0A | 2}

FIRST(S) = {0, 1}
FIRST(A) = {1, 2}
FIRST(B) = {0, 2}
FOLLOW(S) = {$}
FOLLOW(A) = {$}
FOLLOW(B) = {$}

Apresente os conjuntos FIRST e FOLLOW das variáveis da gramática a seguir.

G = ({S, A, B, C, D}, {a, b, c, d}, P, S)
P = {SABCD
     A → ε | aA 
     B → ε | Bb
     C → c | AB
     D → d}

Apresente a Análise Recursiva com Retrocesso da palavra abcd sobre a gramática a seguir.

G = ({S, A, B}, {a, b, c, d}, P, S)
P = {SA
     A → a | aB
     B → bB | cB | d}