(1.0 ponto) Qual a relação entre o número de chamadas das funções
expr, termo e fator, na calculadora recursiva
descendente?
(3.5 pontos) Escreva um programa (curto) que tenha um ``bug'' tal
que ele tenha um comportamento diferente cada vez que for rodado.
Justifique.
De quantos modos você consegue imaginar que isso pode ser feito?
(3.0 pontos) Escreva uma expressão regular para cada uma das
seguintes condições:
Reconheça cadeias que tenha todas as vogais pelo menos uma vez
e em ordem.
Reconheça cadeias cujas vogais estejam em ordem.
Reconheça exatamente 100 cadeias diferentes.
Reconheça 101 cadeias diferentes.
(2.0 Pontos) Explique quais alterações você faria na calculadora recursiva para
implementar os operadores >> e << (bit-shift-right e
bit-shift-left) com precedência maior que qualquer outro operador.
(3.0 pontos) Escreva um programa em awk que lê um arquivo da
entrada padrão e gera uma tabela de todas as palavras de comprimento
maior do que 3 caracteres, onde cada linha contém a palavra na
primeira posição, seguida por um `:' seguido pelos números das
linhas onde a palavra
ocorre. Por palavra entenda uma seqüência de letras
Depois, responda as perguntas abaixo:
As linhas aparecerão em ordem?
As palavras aparecerão em ordem?
Não se esqueça de justificar as suas respostas.
(2.0 pontos) Escreva uma especificação em flex para um
filtro que copia um texto, com a diferença que todos os números
contidos na entrada são apresentados na saída divididos por .
É importante a organização do código.1
(1.0 ponto) Por que existe a preocupação em se `esconder' a
estrutura de dados e a implementação das funções dentro de módulos
de programa?