title | geometry | fontsize |
---|---|---|
Exercícios |
margin=1.8cm |
12pt |
@. Por que estudar conceitos de linguagens de programação?
@. O que é ortogonalidade e como ela influência a avaliação de uma linguagem?
@. Discuta a afirmação: a avaliação de linguagens depende do domínio da aplicação.
@. Escolher a linguagem C++ para escrever o backend de um sistema web é uma boa escolha? E Python para um sistema embarcado? Explique.
@. Discute sobre alguns aspectos no projeto de linguagens que estão em conflito.
@. Discuta sobre qual o melhor método de implementação de linguagens, compilação ou interpretação.
@. Escolha uma linguagem de programação que você conheça bem e faça duas avaliações positivas e duas negativas.
@. O que é vinculação? Quais os tipos de vinculação em linguagens de programação?
@. O que é tempo de vida? Como as variável são classificas segundo seu tempo de vida?
@. Fale sobre escopo estático e dinâmico e dê um exemplo que destaque a diferença entre eles.
@. O que é ambiente de referenciamento?
@. Quais as vantagens e desvantagens da vinculação dinâmica de tipo?
@. Quais são as utilidades dos tipos de dados?
@. Por que as strings são imutáveis em Java e Python?
@. Porque é importante o programador saber como um arranjo regular bidimensional é organizado na memória na linguagem que ele esta usando?
@. Como os arranjos associativos podem ser implementados?
@. Considerando que as listas (arranjos dinâmicos) em Python são homogêneos, com é possível armazenar valores inteiros e strings na mesma lista? Explique.
@. O que é união e qual a diferença entre uniões discriminadas e uniões livres?
@. Fala sobre os dois principais problemas com ponteiros e como eles são tratados na linguagem Java.
@. Quais as vantagens e desvantagem do uso de coletor de lixo para gerência de memória?
@. O que significa dizer que uma linguagem é fortemente tipada?
@. É possível uma linguagem com vinculação dinâmica de tipo ser fortemente tipada? Explique.
@. Considerando que a = 2
, b = 5
e c = 7
, tem como sabermos o
resultado da expressão a + b * c
sem sabermos a linguagem de programação
que ela foi escrita? Explique.
@. Em que situações a operação de adição não é associativa?
@. A ordem de avaliação dos operandos pode influenciar o resultado de uma expressão? Explique e dê exemplos.
@. Explique o que é efeito colateral e transparência referencial.
@. Como as regras de coerção influenciam nos benefícios da verificação de tipos?
@. Quais são as vantagens e desvantagens da sobrecarga de operadores?
@. Quais as vantagens e desvantagens da avaliação em curto circuito utilizando de expressões booleanas?
@. Quais as vantagens e desvantagens de permitir apenas expressões booleanas na expressão de controle de sentenças de seleção de duas vias?
@. Por que C requer que a expressão de controle do if
seja parentizada e
Rust não?
@. Escolha duas linguagens e explique como elas determinam a qual cláusula
if
uma determinado else
está associado no caso de if
aninhados.
@. Fale sobre os tipos de sentença de iteração mais comuns nas linguagens de programação.