Prévia do material em texto
Exercícios:
1. O linguista Noam Chomsky, em 1958, publicou a obra Estruturas Sintáticas, em
que demonstrou que tanto as linguagens formais como a maioria das naturais,
possuem uma estrutura hierárquica padrão e estão organizadas em classes,
sempre em nível crescente, e a mais complexa contém as mais simples. Devido à
relevância desse trabalho para o estudo das linguagens, essa estrutura passou a
ser conhecida como Hierarquia de Chomsky. Marque a alternativa que apresenta
as classes de linguagens da Hierarquia de Chomsky:
a) Irrestritas, Regulares, Irregulares e as Sensíveis.
b) Regulares, Irregulares, Livres e Sensíveis.
c) Recursivamente-Enumeráveis, Sensíveis ao Contexto, Regulares e Irregulares.
d) Regulares, Livres de Contexto, Recursivamente-Enumeráveis e Sensíveis a
Contexto.
e) Irregulares, Livres de Contexto, Regulares e Programáveis.
2. A etiqueta de identificação de produtos fabricados por uma empresa possui a
seguinte estrutura padrão: xxx.nxnxnx-nome/aa, em que:
• xxx são três letras quaisquer do alfabeto inglês.
• nxnxnx é um número seguido de uma letra, e, nesse caso, pode ter no máximo
3 pares de nx e no mínimo 1 par.
• nome pode ter apenas letras, no mínimo uma, mas sem limite de tamanho.
• aa indica o ano, e os valores válidos devem estar entre 18 e 29.
Sabemos que é possível construir uma gramática que gere etiquetas escritas nesse
formato. Dada a produção
<codigo> ::= <letra><letra><letra>’.’<parte2>’-‘<nome>’/’<ano>,
marque a alternativa que representa uma produção que pertence à gramática
geradora de etiquetas, no formato xxx.nxnxnxnome/aa:
a) <parte2> ::= { <digito><letra> }
b) <parte2> ::= <digito><letra> [<digito><letra>] [<digito><letra>]
c) <parte2> ::= [<digito><letra>] [<digito><letra>] [<digito><letra>]
d) <nome> ::= { <letra> }
e) <ano> ::= <digito><digito>
3. As linguagens de programação, na sua maioria, pertencem à classe das Linguagens
Livres de Contexto (LLC) e são representadas por uma quádrupla do tipo: G = (V, T,
P, S). De acordo com a quádrupla G = (V, T, P, S) qual alternativa descreve
corretamente o significado dos elementos dessa quádrupla?
a) V representa o alfabeto da linguagem.
b) T representa a produção final, ou seja, aquela produção na qual a gramática
termina.
c) P representa o conjunto dos símbolos das produções.
d) S representa a produção inicial, ou seja, aquela produção na qual a gramática
inicia.
e) V representa o conjunto transição, que normalmente é representado por .
4. Quando pensamos na estrutura de um compilador, verificamos duas funções bem
distintas: a função de análise e a de síntese. Cada uma dessas funções é
denominada de fase, subdividida e facilita a construção desse programa.
Compreender a função de cada uma destas fases é importante para seu o
funcionamento e desenvolvimento. Assinale a alternativa que corresponde a uma
sequência lógica das fases do processo de compilação.
a) Análise: semântica, sintática e léxica.
b) Síntese: geração de código → otimização do código.
c) Síntese → Análise.
d) Sintaxe, Semântica, Léxica.
e) Léxica, sintaxe, semântica, geração de código intermediário, otimização do
código, geração do código.
5. A fase da análise está diretamente associada à verificação de se o programa foi
escrito corretamente, isto é, de acordo com as regras da linguagem. A análise está
subdividida em 3 etapas: léxica, sintaxe e semântica. Dessas fases, a mais
complexa é a semântica. A análise semântica é a mais complexa na fase de análise.
Assinale a alternativa que corresponde à sua função.
a) A semântica analisa o significado do seu programa.
b) A semântica analisa se cada linha do programa foi escrita de acordo com as
regras gramáticas corretas da linguagem.
c) A semântica analisa se os valores envolvidos nos comandos são compatíveis.
d) A semântica somente é analisada em tempo de execução, pois não é possível
analisar o sentido do programa antes de serem atribuídos valores as variáveis.
e) A semântica analisa os erros de lógica de programação, por isso é tão
complexa.