Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Considere a seguinte especificação de tokens com sua descrição informal: 
 
SE fosse submetida ao Analisador a seguinte expressão: 
A3R = 35 + D; 
Podemos afirmar que não será gerado um erro léxico apesar de A3R não ser um 
identificador válido 
Porque 
Ao reconhecer os lexemas tanto A, como 3 como R são associados a tokens e o 
analisador léxico não leva em conta a gramática 
 
Como base nas afirmativas acima podemos concluir que: 
 
 
As duas afirmativas são falsas 
 As duas são corretas e a segunda justifica a primeira 
 
As duas são corretas e a segunda não justifica a primeira 
 
A primeira é falsa e a segunda correta 
 
A primeira é verdadeira e a segunda falsa 
 
 
 2. Ref.: 7807490 Pontos: 0,00 / 1,00 
 
(Unoesc/2022 - Adaptada) Dado o autômato Finito abaixo, assinale a alternativa onde a 
expressão regular (ER) o representa: 
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%207807490.');
 
 
 
 aab*c*ba*b 
 a*b(cb)*a 
 
a*b*c*b*a* 
 
a*b(bc)a* 
 
aba(cb) 
 
 
 
 
ENSINEME: ANÁLISE SEMÂNTICA 
 
 
 3. Ref.: 7808675 Pontos: 1,00 / 1,00 
 
(FCC/2019) Um compilador está verificando se uma variável foi declarada somente uma 
vez, se foi declarada antes do seu primeiro uso, se foi declarada e nunca foi usada e se 
os tipos de dados em uma expressão aritmética são compatíveis. Essas verificações 
são realizadas na fase de: 
 
 
geração do código. 
 análise semântica. 
 
análise léxica. 
 
análise sintática. 
 
otimização do código. 
 
 
 4. Ref.: 7808676 Pontos: 1,00 / 1,00 
 
(ABIN/2018 - Adaptada) Com relação a linguagens de programação e compiladores, 
avalie as assertivas a seguir: 
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%207808675.');
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%207808676.');
I. A análise semântica, por ser a primeira etapa do processo de compilação, não verifica 
a sintaxe do código-fonte. 
II. A análise semântica é responsável apenas por identificar erros de lógica no código-
fonte. A falta de indentação em um código é verificada nessa etapa. 
III. A etapa de análise semântica de um compilador tem como objetivo verificar os inter-
relacionamentos de um programa, validando tipologias, fluxos de controle e unicidade 
na declaração de variáveis. 
Marque a alternativa correta. 
 
 
I e II, apenas. 
 
I, apenas. 
 III, apenas. 
 
II, apenas. 
 
I, II e III. 
 
 
 
 
ENSINEME: ANÁLISE SINTÁTICA 
 
 
 5. Ref.: 7807516 Pontos: 1,00 / 1,00 
 
(IBADE/2018) Algumas linguagens exigem que o código fonte seja previamente 
traduzido para linguagem de máquina antes de ser executado. Chama-se esta fase de: 
 
 
Tradução. 
 Compilação. 
 
Edição. 
 
Interpretação. 
 
Linkedição. 
 
 
 6. Ref.: 7807517 Pontos: 0,00 / 1,00 
 
(FCC/2016) A compilação é o processo de tradução de um programa escrito em uma 
linguagem fonte em um programa equivalente em linguagem de máquina. Nesse 
processo, o programa fonte normalmente passa pelas fases: 
I. Identificação de sequências de caracteres de entrada e produção de uma sequência 
de elementos de saída, os tokens. Nesta fase, verifica-se se cada caractere do 
programa fonte pertence ao alfabeto da linguagem, identificando os tokens e 
desprezando comentários e espaços em branco. Os tokens constituem classes de 
símbolos, tais como palavras reservadas, delimitadores, identificadores etc. 
II. Identificação de sequências de símbolos que constituem estruturas como expressões 
e comandos, através de uma varredura, ou parsing, da representação interna do 
programa fonte, produzindo uma estrutura em árvore, chamada árvore de derivação. 
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%207807516.');
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%207807517.');
III. Verificação das estruturas quanto ao sentido, ou seja, se o programa não possui 
erros de significado. Por exemplo, verifica se um identificador declarado como variável é 
utilizado como tal, se existe compatibilidade entre operandos e operadores em 
expressões etc. 
Os itens I, II e III referem-se, correta e respectivamente, às fases: 
 
 Análise Léxica - Análise Sintática - Análise Semântica. 
 
Classificação - Análise Léxica - Montagem. 
 
Interpretação - Análise Sintática - Montagem. 
 Identificação Inicial - Análise Estrutural - Geração de Código. 
 
Busca Binária - Montagem Léxica - Análise Semântica. 
 
 
 
 
ENSINEME: GERAÇÃO DE CÓDIGO 
 
 
 7. Ref.: 3993004 Pontos: 1,00 / 1,00 
 
A alocação adequada de memória para a execução do programa é fundamental para 
que ele tenha um bom desempenho. 
A memória utilizada pelo programa é dividida em várias parte sendo cada uma delas 
mais adequada para um determinado uso. 
As áreas em que um programa é normalmente divido são 
I Área de Código Objeto 
II Área de Dados Estática 
III Heap 
IV Pilha 
Dentre estas a alocação estática é utilizada nas áreas: 
 
 
I e III 
 
III e IV 
 I e II 
 
II e III 
 
II e IV 
 
 
 8. Ref.: 3993121 Pontos: 1,00 / 1,00 
 
O produto final da etapa de síntese do compilador é o código de montagem que será 
submetido ao montador para gerar o módulo objeto. 
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%203993004.');
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%203993121.');
Em seu trabalho o montador deve, entre outras coisas, determinar os endereços em 
memória das instruções , dos rótulos e das variáveis. 
Considere o trecho de código abaixo: 
 
Sabendo-se que VALOR e RESULTADO tiveram seus endereços determinados nesta 
ordem, na tabela de símbolos seus endereços seriam respectivamente 
 
 
$1001 e $1000 
 $3000 e $3001 
 
$1000 e $1001 
 
$1000 e $3000 
 
$3001 e $3000 
 
 
 
 
ENSINEME: O COMPILADOR 
 
 
 9. Ref.: 3990558 Pontos: 1,00 / 1,00 
 
Considere o extrato abaixo referente a especificação de um linguagem de 
programação 
::= inteiro | real | string 
 
declaração_variavel::= [ {, } ]; 
::= inteiro | real | string 
::= + |- | * | / 
::= {L} + {L}|{D} 
::= {D}+ 
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%203990558.');
::= {D} + [.{D}+] | .{D} 
::= ´{C}´ 
L ::= A..Z a..z 
D ::= 0..9 
 
Se a seguinte declaração fosse escrita que tipo de erro seria gerado 
Inteiro AB+, B, C 
 
 Sintático 
 
Semântico 
 
Execução 
 
Léxico 
 
Lógico 
 
 
 10. Ref.: 3990551 Pontos: 1,00 / 1,00 
 
Atualmente o JAVA passou a utilizar uma segunda fase de compilação para 
acelerar a execução. Está técnica é denominada: 
 
 JIT 
 
JVM 
 
Bytecode 
 
Montagem 
 
Linkedição 
 
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%203990551.');

Mais conteúdos dessa disciplina