Questões de Concurso
Para if-mg
Foram encontradas 1.422 questões
Resolva questões gratuitamente!
Junte-se a mais de 4 milhões de concurseiros!
Em relação a fase de geração de código de um compilador, considere as afirmativas abaixo:
I - O problema de gerar código objeto ótimo para determinado programa fonte é indecidível.
II - A geração de um programa em linguagem de máquina realocável, frequentemente denominado módulo objeto, permite que os subprogramas sejam compiladores separadamente. Um conjunto de módulos objeto realocáveis podem ser carregados para execução por um editor de ligação.
III - A arquitetura do conjunto de instruções da máquina alvo tem um impacto significativo sobre a dificuldade de construir um bom gerador de código que produza código de alta qualidade. As arquiteturas de máquina alvo mais comuns são: a RISC (reduced instruction set computer), a CISC (complex instruction set computer) e as baseadas em pilha.
IV - Uma arquitetura RISC (reduced instruction set computer) normalmente possui muitos registradores, instruções de três endereços, modos de endereçamentos simples e uma arquitetura do conjunto de instruções relativamente simples.
Assinale a alternativa que apresenta apenas afirmações corretas:
Uma das fases de um compilador é a geração de código. A respeito dessa fase considere as afirmativas abaixo:
I - Um gerador de código é composto por três tarefas principais, a saber: seleção de instrução, alocação e atribuição de registrador e escalonamento de instruções.
II - A seleção de instruções compreende a escolha de instruções apropriadas da arquitetura alvo para implementar os comandos da representação intermediária. Uma solução para esse problema é realizar a seleção de instruções por reescrita de árvore.
III - O escalonamento de instruções envolve a decisão a respeito da ordem em que a execução das instruções deve ser escalonada. Uma abordagem para resolver esse problema é o uso do algoritmo Sethi–Ullman.
IV - A alocação e atribuição de registrador decidem quais valores devem ser mantidos em registradores e quais registradores usar. Para resolver esse problema pode-se adotar estratégias de alocação de registradores por coloração de grafos.
Assinale a alternativa que apresenta apenas afirmações corretas:
Em relação à etapa de geração e otimização de código intermediário de um compilador, analise as alternativas a seguir, assinalando V, se verdadeiras, ou F, se falsas.
( ) Uma representação intermediária normalmente é alguma combinação de uma notação gráfica e código de três endereços.
( ) Uma representação intermediária pode ser uma linguagem de alto nível ou pode consistir em estruturas de dados internas que são compartilhadas pelas fases do compilador.
( ) Árvores de sintaxe é uma das possíveis representações intermediárias utilizadas por um compilador. As árvores de sintaxe normalmente durante as análises léxica e semântica.
( ) A fase de otimização de código independente das arquiteturas de máquina alvo faz algumas transformações no código intermediário com o objetivo de produzir um código melhor. Em geral, melhor significa mais rápido. Pode-se, também, otimizar outros objetivos, tais como: menor consumo de memória ou de energia.
( ) Uma das desvantagens da aplicação da fase de geração de código intermediário é a possibilidade de realização de otimização e a tradução do código para diversas máquinas.
A ordem correta de preenchimento dos parênteses, de cima para baixo, é:
Em relação às análises léxica e sintática, assinale a alternativa incorreta:
A estrutura de um compilador pode ser dividida em duas partes, a saber: análise e síntese. Em relação a parte de análise assinale a alternativa incorreta:
As expressões regulares são ferramentas poderosas e amplamente utilizadas para a manipulação e busca de padrões em cadeias de texto, sendo essenciais em diversas áreas da computação. Sobre expressões regulares, considere as seguintes afirmações:
I - Expressões regulares são notações utilizadas para representar a classe de linguagens mais simples que se conhece, a classe das linguagens regulares, a mais restrita dentro da Hierarquia de Chomsky.
II - Os parênteses são empregados para modificar localmente a precedência ou a associatividade predefinida dos operadores, assim como ocorre nas expressões aritméticas tradicionais da matemática.
III - A notação das expressões regulares foi desenvolvida na década de 1950 como alternativa para a representação dos conjuntos regulares.
IV - As expressões regulares são utilizadas em áreas que abrangem desde a especificação de linguagens de programação até a entrada de dados em editores de texto e programas de busca.
Assinale a alternativa que apresenta apenas afirmações corretas:
Os autômatos finitos são amplamente utilizados na computação devido à sua simplicidade e eficiência para resolver problemas que envolvem o reconhecimento de padrões e a manipulação de cadeias de caracteres. Sobre autômatos finitos, considere as seguintes afirmações:
I - A máquina de estados de um autômato finito, também denominada controle finito, é definida pelo conjunto de estados e pela função de transição.
II - Uma cadeia de entrada é aceita por um autômato quando, após esgotamento da cadeia, o estado corrente do autômato é do tipo final.
III - Estados inacessíveis são aqueles para os quais não existe no autômato qualquer caminho, formado por transições válidas, que permita atingi-los a partir do estado inicial do autômato.
IV - Uma das características dos autômatos finitos é a existência de memória auxiliar.
Assinale a alternativa que apresenta apenas afirmações corretas:
As linguagens sensíveis ao contexto desempenham um papel importante em aplicações que exigem uma análise mais detalhada e precisa de cadeias, especialmente quando há restrições que dependem do contexto de um símbolo na cadeia. Sobre as linguagens sensíveis ao contexto, considere as seguintes afirmações:
I - Gramáticas sensíveis ao contexto eliminam a restrição de que o lado esquerdo das regras seja formado por um único símbolo, e de que este seja um símbolo não terminal.
II - As gramáticas sensíveis ao contexto são ditas monotônicas, pois o comprimento das formas sentenciais obtidas durante o processo de derivação de uma sentença nunca sofre redução.
III - O conjunto das gramáticas sensíveis ao contexto sobre um alfabeto qualquer não é enumerável.
IV - Toda linguagem livre de contexto é também uma linguagem sensível ao contexto.
Assinale a alternativa que apresenta apenas afirmações corretas:
As linguagens livres de contexto são essenciais nas áreas de Linguagens de Programação e Compiladores, onde desempenham um papel central na definição da sintaxe de linguagens de alto nível. A sua importância reside, principalmente, na capacidade de capturar a estrutura recursiva de linguagens complexas. Sobre as linguagens livres de contexto, considere as seguintes afirmações:
I - A característica que torna as gramáticas livres de contexto especialmente adequadas à formalização sintática das linguagens de programação é a sua capacidade de representação de construções aninhadas, que são frequentemente encontradas em linguagens dessa categoria.
II - Uma linguagem L é dita estritamente livre de contexto se ela for livre de contexto e for regular.
III - Dado o elevado interesse pelas gramáticas livres de contexto, inúmeras notações, denominadas metalinguagens, foram desenvolvidas para facilitar a formalização sintática das linguagens artificiais.
IV - A representação da estrutura de sentenças ou formas sentenciais de linguagens livres de contexto, na forma de árvores bidimensionais, é um recurso muito utilizado, tanto na teoria quanto na prática da implementação de linguagens.
Assinale a alternativa que apresenta apenas afirmações corretas:
As linguagens regulares têm uma aplicação ampla e significativa em diversas áreas da computação, devido à sua simplicidade e capacidade de modelar problemas práticos. Com relação a esse tipo de linguagem, considere as seguintes afirmações:
I - Sejam A e B, duas linguagens regulares quaisquer, a questão A = B não é decidível.
II - A classe das linguagens regulares é fechada em relação às operações de união, concatenação e fechamento reflexivo e transitivo.
III - Nas gramáticas lineares de linguagens regulares, o lado direto das regras possui no máximo um único símbolo não terminal do lado direito das suas regras.
IV - As gramáticas lineares à esquerda ou à direita geram exatamente a mesma classe de linguagens.
Assinale a alternativa que apresenta apenas afirmações corretas:
Sobre o paralelismo de instruções, pipelines e arquiteturas superescalares, assinale a alternativa correta:
Sobre as características da arquitetura de conjunto de instruções, podemos concluir que:
I - A Arquitetura do Conjunto de Instruções de uma máquina corresponde aos níveis de linguagem de montagem e de linguagem de máquina.
II - O compilador traduz uma linguagem de alto nível, que é dependente de arquitetura, na linguagem assembly, que é dependente da arquitetura.
III - O montador traduz programas em linguagem assembly em códigos binários executáveis.
IV - A CPU consiste em uma seção de dados que contém registradores e uma ALU, e uma seção de controle, que interpreta instruções e efetua transferências entre registradores.
Assinale a alternativa correta:
Uma grande variedade de técnicas de endereçamento foi desenvolvida para referenciar um grande intervalo de posições da memória principal ou, em alguns sistemas, da memória virtual. Todas as técnicas de endereçamento envolvem algum tipo de troca entre intervalo de endereços e/ou flexibilidade de endereçamento por um lado e o número de referências de memória dentro da instrução e/ou a complexidade de cálculo de endereços por outro. Cada um dos desenhos abaixo representa um tipo de técnica de endereçamento, onde:
A = conteúdo de um campo de endereço dentro da instrução.
R = conteúdo de um campo de endereço dentro da instrução que se refere a um registrador.
Qual tipo de técnica de endereçamento é respectivamente para cada fluxo:

Sobre as linguagens de montagem, pode-se concluir que:
I - Uma linguagem de montagem e uma representação simbólica da linguagem de máquina de um processador específico, acrescida de tipos de instruções adicionais que facilitam a escrita do programa e que fornecem as instruções para o montador.
II - Os programas escritos nas linguagens de montagem são específicos para cada família de microprocessadores, cujas instruções costumam ser definidas pelo próprio fabricante do microprocessador.
III - O código em linguagem de montagem e mais fácil de modificar e manter porque a linguagem permite código não estruturado sendo fáceis de serem entendidos por outras pessoas.
Assinale a alternativa correta:
De acordo com as arquiteturas RISC e CISC podemos concluir que:
I - Os processadores RISC têm vantagens na velocidade e eficiência, pois a simplificação do conjunto de instruções permite que as operações sejam realizadas mais rapidamente e com maior previsibilidade de desempenho.
II - A arquitetura RISC é mais escalável e adaptável às novas tecnologias, permitindo aprimoramentos contínuos em velocidade e eficiência energética, o que é crucial para dispositivos móveis e servidores de alto desempenho.
III - Embora o conjunto de instruções simplificado facilite a construção do hardware, ele pode exigir que os programadores desenvolvam código mais longo e potencialmente menos eficiente em termos de espaço.
IV - As instruções CISC não podem lidar diretamente com operações de alto nível como estruturas de repetição e operações de manipulação de cadeira de caracteres permitindo compiladores mais complexos.
Assinale a alternativa correta: