É 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.
Uma aplicação prática de validação cruzada em aprendizado de máquinas é na seleção de modelos e ajuste de hiperparâmetros durante o desenvolvimento de um modelo de previsão, como na predição de preços de imóveis. Suponha que você tenha um conjunto de dados contendo informações sobre imóveis (como área, número de quartos, localização, etc.) e deseja criar um modelo para prever os preços de venda dos imóveis com base nessas características. A validação cruzada é uma prática recomendada para este tipo de aplicação comercial.Nesse sentido, assinale a alternativa que recorda o critério comumente usado para validar o desempenho de modelos preditivos em aprendizado de máquina.
A seleção no algoritmo genético privilegia as soluções com melhor desempenho na função de fitness. Indivíduos bem avaliados são mais propensos a contribuir geneticamente para a próxima geração. Esse mecanismo promove a melhoria contínua das soluções ao longo do tempo.De acordo com os assuntos estudados sobre os algoritmos genéticos, assinale a alternativa que contém o método que é usado para buscar novas soluções no espaço de busca e garantir a diversidade da população.
O cruzamento em algoritmos genéticos combina partes de duas soluções para gerar novas possibilidades. Esse operador aumenta a diversidade da população, permitindo a exploração de novas áreas no espaço de soluções. Assim, as gerações evoluem de forma mais robusta e adaptativa.Diante do apresentado sobre problema do caixeiro viajante (TSP, Traveling Salesman Problem), compreenda as afirmativas a seguir:I. O objetivo do TSP é encontrar o caminho mais curto que passe por todas as cidades exatamente uma vez e retorne à cidade inicial.II. No contexto de algoritmos genéticos, as soluções para o TSP são representadas como populações de matrizes de adjacência.III. O cruzamento e mutação são métodos essenciais nos algoritmos genéticos para explorar diferentes rotas no TSP.É correto o que se afirma em:
Apesar de seu potencial, algoritmos genéticos podem ser computacionalmente caros devido à necessidade de avaliar múltiplas soluções. Contudo, seu paralelismo inerente os torna adequados para arquiteturas distribuídas. Em aprendizado de máquina, seu uso pode ser decisivo em problemas altamente não lineares.Com relação a este contexto e sobre o conteúdo estudado, examine as asserções a seguir e a relação proposta entre elas.I. Tanto os algoritmos genéticos quanto a busca em feixe estocástica utilizam populações de candidatos para explorar o espaço de busca em busca de soluções otimizadas.PORQUE II. A semelhança entre os algoritmos genéticos e a busca em feixe estocástica ocorre porque ambos os métodos mantêm apenas os indivíduos com maior diversidade em cada geração, descartando os demais.A respeito dessas asserções, assinale a alternativa correta.
Os algoritmos genéticos são úteis em problemas onde métodos tradicionais de aprendizado supervisionado ou não supervisionado têm dificuldades. Eles não exigem gradientes ou suposições específicas sobre os dados. Assim, são eficazes em otimizações difíceis ou de múltiplos objetivos.Diante disso, compreenda e associe os conceitos às descrições correspondentes sobre o operador de cruzamento (crossover).| | | | --- | --- | | Conceito | Descrição | | I. Definição do cruzamento | a. Combina partes de dois indivíduos para criar novos indivíduos, promovendo a exploração do espaço de busca. | | II. Tipos de cruzamento e sua aplicabilidade | b. Métodos como cruzamento de um ponto e de dois pontos são aplicáveis também em problemas de otimização contínua. | | III. Eficiência do cruzamento | c. Depende da seleção adequada dos indivíduos, geralmente baseada na função de aptidão. |Assinale a alternativa que apresenta a associação correta.