Buscar

Apol 1 - Gabarito

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Dado o alfabeto identifique, nas opções a seguir, a máquina de estados finitos capaz de identificar stringsΣ = {1,0}
binárias que representam números múltiplos de 2 e não de 4.
N o t a : 2 0 .0
A
Você acertou!�
estamos falando dos números binários que terminam 10. Uma análise detalhada dos estados e transições da
máquina representada no enunciado permite perceber que: uma string que comece com qualquer números de zeros
irá manter a máquina no estado ; o primeiro um da string de entrada colocará a máquina no estado neste ponto, todos
os próximos uns manterão a máquina no estado ; O primeiro zero colocará a máquina no estado , em accepting state;
Neste estado um zero levará ao estado caso contrário a máquina irá para o estado . Ou seja, a única forma de atingir
o accepting state é receber um em e zero em
B
Marcelo
Highlight
C
D
E
Q u e s t ã o 2 / 5 ­ C o m p i l a d o r e s
O processo de compilação é diferente de linguagem para linguagem. Notadamente por que cada um dos módulos
envolvidos no processo está intimamente ligado as características específicas da linguagem que está sendo convertida
em linguagem de máquina. Sendo assim, marque a alternativa correta entre as alternativas abaixo.
N o t a : 0 .0
A Não existe nenhuma forma de compilar códigos escritos em Python;
B A linguagem C pode ser compilada para a arquitetura ARM;
� Qualquer linguagem pode ser compilada para qualquer arquitetura.
Marcelo
Highlight
C Uso de interpretadores de C++ não é possível graças a orientação a objetos desta linguagem;
D A linguagem Assembly é a própria linguagem de máquina;
E A execução do Javascript, em páginas web não necessita de códigos de máquina, já que ele roda em um
ambiente controlado.
Q u e s t ã o 3 / 5 ­ C o m p i l a d o r e s
O código ASCII usado com frequência em computação e o Unicode, contendo mais de 100.000 caracteres de diversas
linguagens naturais são exemplos de alfabetos. Com isso em mente e considerando a definição de alfabeto marque,
entre as opções a seguir, qual definição não corresponde a um alfabeto do ponto de vista do estudo das linguagens
formais.
N o t a : 2 0 .0
A 
B 
C 
D 
E 
Σ = {0,1}
ΣI = {1,2,a,b}
Σv = {a,e,i,o,u}
ΣM = {abba}
ΣI = {0,1,2,3,4,...}
Você acertou!�
o conjunto é infinito não atendendo a definição de alfabeto.
Q u e s t ã o 4 / 5 ­ C o m p i l a d o r e s
As cadeias de caracteres, ou strings são artefatos de linguagens utilizados com frequência pelas linguagens de
programação já que, na maior parte das vezes, se referem a textos que desejamos ler, guardar ou imprimir. Contudo, sua
definição formal é mais elucidativa se consideramos sua relação com o alfabeto. Sendo assim, dadas as opções a seguir
assinale a alternativa falsa.
N o t a : 0 .0
A Uma string é uma sequência ordenada de símbolos que existem em um determinado alfabeto;
B Considerando a string “ 110110011” podemos dizer que ela faz parte de um alfabeto de números binários;
C A string vazia faz parte de todos os alfabetos possíveis;
D Podemos usar símbolos que não façam parte de um alfabeto para marcar o começo e o fim de uma string;
Marcelo
Highlight
E Dado um alfabeto qualquer, em linguagens formais, não é possível identificar uma string utilizando
uma máquina de estados finitos.
Em linguagens formais, as máquinas de estados finitos e as expressões regulares são duas formas eficientes de�
identificar strings de um alfabeto dado.
Q u e s t ã o 5 / 5 ­ C o m p i l a d o r e s
Em busca da eficiência na execução dos programas, ao longo do tempo, o processo de compilação ficou complexo e
sujeito a erros e a tempos muito longos. Uma forma de tornar o processo de compilação mais eficiente foi a divisão deste
processo em módulos dedicados. Assim, temos um módulo apenas para fazer a análise sintática do texto e outro apenas
para entender o conteúdo semântico e assim sucessivamente. Quanto ao analisador sintático é verdadeiro dizer que:
Marque a alternativa correta
N o t a : 2 0 .0
A O analisador sintático, apesar de fazer parte do processo de compilação, é totalmente dispensável e não
altera o resultado final;
B A principal função do analisador sintático é enviar os tokens necessários ao funcionamento do analisador
Léxico;
C O analisador sintático, para efetuar sua tarefa, organiza os tokens, enviados pelo analisador léxico em
uma árvore;
Você acertou!�
a resposta correta é a letra C e pode ser encontrada no primeiro capítulo do livro texto.
D A análise sintática só pode ser realizada depois que o seu código­ fonte esteja convertido em linguagem de
máquina;
E A maior parte de todas as linguagens formais, utilizadas para a programação de computadores dispensa o
uso de analisadores sintáticos.
Marcelo
Highlight
Marcelo
Highlight

Outros materiais