4) { while ($ads2 == $ads1) { $ads2 = rand(1, $slides); } } $ads3 = rand(1, $slides); if ($slides > 4) { while (($ads3 == $ads2) || ($ads3 == $ads1)) { $ads3 = rand(1, $slides); } } ?>
IPRJ CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO  
LISTA DE EXERCÍCIOS 02  
1
) Considere a seguinte gramática em notação BNF:  
<
<
<
<
palavra> <sílaba> <sílaba>  
sílaba> <vogal> <consoante> | <consoante> <vogal>  
vogal> a | e | i | o | u  
consoante> b | c | d | f | g | h | j | l | m | n | p  
|
q | r | s | t | v | x | z  
(
a) Indique os símbolos terminais e os símbolos não-terminais da gramática.  
b) Indique quais das expressões seguintes correspondem a palavras da  
(
linguagem definida pela gramática. Justifique a sua resposta apresentado a derivação  
da sentença.  
1
2
3
4
5
6
7
. lobo  
. cria  
. gato  
. leao  
. ovos  
. vaca  
. macaco  
2
) Considere a seguinte gramática em notação BNF:  
<
<
<
<
operação> (<argumento> <operador> <argumento>)  
operador> + | - | * | /  
argumento> <dígito>  
dígito> 2 | 4 | 6 | 8 | 0  
(a) Indique os símbolos terminais e os símbolos não terminais da gramática.  
(b) Indique quais das expressões seguintes pertencem à linguagem definida pela  
gramática. Justifique a sua resposta apresentado a derivação da sentença.  
1
2
3
4
5
. (1+2)  
. (2++)  
. (2*0)  
. (84+)  
. (0/0)  
3
) Escreva uma gramática em notação BNF para uma linguagem que consiste em  
sequências de n cópias da letra “x” seguida do mesmo número de cópias da letra “y”,  
onde n > 0.  
Exemplos de sequências validas para a linguagem: xy, xxxyyy, xxxxxyyyyy  
Exemplos de sequências não-validas para a linguagem: x, yyy, xxy, xxxyyyx,  
xxxyyyy  
4
) Escreva uma gramática em notação BNF para representar programas no seguinte  
formato:  
programa  
inicio  
x = 5 + 8;  
y = 8 * x;  
se (y >= 10)  
inicio  
x = y;  
fim  
fim  
Prove que a gramática é valida apresentando a derivação do programa anterior.