Em computação escalável, um elemento muito importante para que os processos de paralelismo, concorrência e escalabilidade ocorram de maneira satisfatória está relacionado à memória dos equipamentos que estão sendo utilizados.Identifique se são (V) verdadeiras ou (F) falsas as afirmativas a seguir relacionadas à memória.I. ( ) Múltiplos processadores compartilham diferentes recursos de memória em um espaço de endereçamento global.II. ( ) Modificações efetuadas em uma região de memória por um processador são visíveis a todos os outros processadores;III. ( ) As memórias se dividem em duas classes denominadas: UMA e NUMA.Assinale a alternativa que apresenta a sequência correta.
Um outro tipo de memória compartilhada utilizada na computação escalável denomina-se _______________________________ (lacuna 1), na qual os ________________ (lacuna 2) são conectados por canais de comunicação e o espaço de endereçamento ainda é _____________ (lacuna 3).Assinale a alternativa que possui a sequência correta das lacunas.
Os modelos de programação paralela não são específicos para um determinado tipo de arquitetura e qualquer modelo pode, teoricamente, ser implementado em qualquer hardware.Com relação às características do modelo de programação de memória distribuída, avalie as afirmações a seguir:I. Tarefas utilizam endereço comum para leitura e gravação simultâneas.II. Há um conjunto de tarefas que utilizam a memória local durante a computação.III. Não existe a necessidade de comunicação explícita de dados entre as tarefas.IV. Várias tarefas podem residir na mesma máquina.Está correto o que se afirma em:
São vantagens dos processadores multicore:I. Maior desempenho.II. Funcionar apenas em servidores de data center.III. Poder executar mais de um processo por ciclo de clock.IV. Poder executar mais de uma tarefa por ciclo de clock e cada tarefa executar mais de um processo por vez.
Os sistemas de memória distribuída possuem uma rede de comunicação para interconectar os processadores, e cada processador tem a sua própria memória local, não existindo um espaço de endereçamento global, pois cada processador tem acesso somente à sua memória. O programador determina quando e como um dado é propagado de um processador para o outro. Assim como na memória compartilhada, a memória distribuída apresenta vantagens e desvantagens para o modelo.Correlacione, adequadamente, os elementos a seguir, que se demonstram como desvantagem ou vantagem para a memória distribuída.
Desvantagem
Vantagem
I. Comunicação de dados.II. Escalabilidade.III. Memória global.IV. Comportamento dos processadores.V. Acesso à memória.Assinale a alternativa que correlaciona, adequadamente, os dois grupos de informação.
É conhecido como um modelo de programação no contexto do paralelismo em que não há a comunicação explícita de dados entre as tarefas e o espaço de endereçamento global permite um modelo de programação mais amigável. Esse modelo recebe o nome de:
Um processador equipado com paralelismo no nível de threads pode executar processos ______ do código, sendo possível rodar dois processos de um mesmo aplicativo ao mesmo tempo.
Uma outra forma de atender às premissas da computação escalável é utilizando a computação distribuída. A computação distribuída representa uma coleção de computadores independentes aparentando ser um único computador, com as seguintes características: o hardware possuindo capacidade autônoma, o software sendo visto pelos usuários como uma única máquina e utilizando um conceito-chave: a transparência.Considerando a transparência como conceito-chave da computação distribuída, assinale a alternativa que descreve, corretamente, como a transparência pode ser entendida.
Para atender às premissas da computação escalável, dois processos computacionais são utilizados: a computação paralela e a distribuída. Explorando a computação paralela, verifica-se que, nesse tipo de computação, ocorre a utilização simultânea de múltiplos recursos computacionais para que uma determinada tarefa seja concluída. Assim, para que possa ser executada em diversas ______________ (lacuna 1), uma atividade é subdividida em partes ____________________ (lacuna 2), que podem ser executadas _________________________ (lacuna 3), pois o programa é dividido em conjuntos de ____________________________ (lacuna 4).Assinale a alternativa que possui a sequência correta das lacunas.
Na computação, podemos construir aplicações e executá-las explorando muitos recursos computacionais existentes nos seus processadores, independentemente do seu porte e da sua finalidade, sendo que, para os desenvolvedores e os usuários finais dos ambientes computacionais, essa percepção da escalabilidade dos sistemas fica oculta.Em termos computacionais, a escalabilidade pode ser definida como:
Ao lidar com o desenvolvimento de um compilador, o programador quer aplicar a otimização “Eliminação de Código Morto” em um código intermediário. Qual é o principal objetivo dessa otimização e como o programador aplicaria a técnica ao código intermediário abaixo?1. x = 5 2. y = x + 3 3. z = 2 * y 4. w = z - 5 5. v = z * 2
Considere o seguinte código:1. x = 5 2. y = 3 3. z = x + y 4. w = z - 2 5. resultado = w * 4Considere que um desenvolvedor deseja aplicar a técnica “Reordenação de Instruções" para otimizar esse código intermediário. Qual seria a ordem das instruções após a otimização?
Ao gerar código intermediário para uma expressão aritmética em um compilador, qual das seguintes alternativas apresenta uma técnica comum para lidar com a ordem das operações?
Considere o seguinte trecho de código em uma linguagem de programação de alto nível:x = 10 y = 20 z = x + ySuponha que estamos gerando código intermediário para essa parte do programa. Qual das seguintes opções representa corretamente o código intermediário para a operação de adição?
Sobre a tabela de símbolos no processo de estruturação de um compilador, avalie as seguintes assertivas e classifique-as em verdadeiras (V) ou falsas (F):(I) A tabela de símbolos é uma estrutura de dados que armazena informações sobre variáveis, funções e outros identificadores em um programa. (II) Cada entrada na tabela de símbolos geralmente contém informações como o nome do identificador, seu tipo, seu escopo e seu endereço de memória (caso aplicável). (III) A tabela de símbolos é usada apenas durante a análise sintática para verificar a corretude sintática do código-fonte. (IV) Em linguagens de programação, o escopo de um identificador pode afetar sua visibilidade e acessibilidade em diferentes partes do código. (V) Uma tabela de símbolos bem implementada deve garantir que não haja conflitos de nome entre diferentes identificadores.Assinale a alternativa com a ordem correta:
Considere que você está escrevendo um compilador para uma linguagem de programação. Durante a análise semântica, qual é uma das principais tarefas relacionadas à verificação de tipos?
Considere o trecho de código de uma linguagem de programação a seguir:x = 10 y = "20" z = x + ySobre a análise semântica desse código, avalie as seguintes assertivas e classifique-as em verdadeiras (V) ou falsas (F):I. Não há erros de tipo no código, pois a linguagem permite operações entre inteiros e strings. II. A variável z terá o valor "1020" após a execução do código. III. O código possui um erro de tipo, pois não é permitida a operação de adição entre um inteiro e uma string. IV. A variável yé usada antes de ser inicializada, o que resulta em um erro semântico. V. A atribuição z = x + yé uma operação válida e não gera erros semânticos.Assinale a alternativa com a ordem correta:
A você foi dada a incumbência de escrever um compilador para uma linguagem de programação que permite a declaração de variáveis com o mesmo nome em diferentes escopos. Sobre essa situação, avalie as seguintes assertivas:I. Nesse caso, a tabela de símbolos pode conter várias entradas com o mesmo nome, mas em diferentes escopos. II. Quando uma variável é referenciada em um programa, o compilador deve usar a regra de "escopo mais próximo" para determinar qual variável com o mesmo nome é acessada. III. A ordem de declaração das variáveis não afeta o resultado, já que o compilador usa apenas o escopo mais próximo para determinar a variável a ser acessada. IV. Em linguagens que permitem sombreamento de variáveis (variáveis com o mesmo nome em escopos diferentes), a tabela de símbolos deve manter informações sobre os escopos em que cada variável foi declarada. V. O uso de variáveis com o mesmo nome em diferentes escopos pode causar ambiguidades e erros semânticos, e o compilador deve tratá-los adequadamente.Assinale a alternativa com a ordem correta:
Dado o seguinte trecho de código em uma linguagem de programação:int main() { int x = 5; x = x + 1; return x; }Suponha que você está construindo um analisador sintático ascendente LR(1) para essa linguagem. Qual é o próximo passo de análise após reconhecer o seguinte símbolo: int x = 5;?
Suponha que você está construindo um analisador sintático descendente LL(1) para uma linguagem de programação. Quando ocorre um conflito de parsing na tabela LL(1), qual ação é tomada?
Considere uma gramática livre de contexto para uma linguagem de programação. Você está construindo um analisador sintático descendente LL(1) para essa gramática. Qual das seguintes afirmações é verdadeira sobre a análise LL(1)?
Dado o seguinte trecho de código na linguagem de programação Python:if (x > 0) then y = x + 1; else y = x – 1;Suponha que você está construindo um analisador sintático descendente LL(1) para essa linguagem. Qual é o próximo passo de análise após reconhecer a produção if (x > 0) then?
Considere a seguinte gramática para expressões matemáticas simples:<expr> ::= <term> + <expr> | <term> - <expr> | <term><term> ::= <factor> * <term> | <factor> / <term> | <factor><factor> ::= <number> | (<expr>)<number> ::= [0-9]+Qual das seguintes expressões é sintaticamente válida de acordo com essa gramática?
Dado o seguinte trecho de código em uma linguagem de programação:if (x > 5) {y = 10;}Qual regra gramatical representa a estrutura condicional "if" no código acima?
Analise o seguinte trecho de código em uma linguagem de programação fictícia e responda corretamente à pergunta:if (x > 5) {y = 10;} else {y = 20;}Qual é otoken gerado pelo analisador léxico para o operador "else"?
Considere o seguinte trecho de código em uma linguagem de programação fictícia:int x = 42Qual é o token gerado pelo analisador léxico para a palavra-chave "int"?
Comparar modelos requer uma análise além da acurácia, considerando métricas como área sob a curva ROC (AUC-ROC) e matriz de confusão. Essas métricas fornecem uma visão mais detalhada do desempenho em diferentes classes. Modelos com alta acurácia podem ter desempenho desequilibrado em classes minoritárias.Diante do apresentado sobre o uso do algoritmo K-Nearest Neighbors (KNN), interprete as afirmativas a seguir:I. O KNN pode ser usado tanto para classificação quanto para regressão.II. O valor de k (número de vizinhos) sempre deve ser ímpar para que o algoritmo funcione corretamente.III. O KNN é sensível à escolha da métrica de distância.É correto o que se afirma em:
A escolha do modelo ideal depende não apenas da acurácia, mas também de outros critérios, como complexidade e tempo de execução. Modelos mais simples podem ser preferidos em casos de restrições de recursos. Assim, a comparação deve considerar eficiência, interpretabilidade e escalabilidade.Com relação a este contexto e sobre o conteúdo estudado, avalie as asserções a seguir e a relação proposta entre elas.I. Os critérios internos avaliam a qualidade do modelo com base nos próprios dados de treinamento, sem levar em consideração informações externas.PORQUEII. O erro de treinamento nos critérios internos é a métrica mais complexa, que mede o erro entre as previsões do modelo e os valores reais no conjunto de treinamento.A respeito dessas asserções, assinale a alternativa correta.