Buscar

MP01-2014.1-Turma01

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UFCG / CCC / Paradigmas de Linguagens de Programação / 2014.1 / Turma 01 
Nome: _______________________________________________ Matrícula: _______________ 
Mini-Prova 01 – 17/06/2014 
(com esboço de resposta correta abaixo) 
1. Considere o trecho de programa abaixo em Java. 
(a) Classifique a chamada e.filterLongerThan(names,3): comando, expressão ou expressão com efeitos 
colaterais? Justifique. (1.0 pontos) 
A chamada pode ser classificada como expressão, por não haver modificação de variáveis globais. O estado do 
sistema é mantido. 
(b) Que mecanismo de passagem de parâmetros é aplicado na chamada de e.filterLongerThan(names,3)? Como 
é feita a associação entre parâmetro real e parâmetro formal? Justifique. (2.0 pontos) 
Call-by-sharing. O parâmetro real names e o parâmetro formal strings apontam para o mesmo objeto. O parâmetro 
formal length é uma variável local incializada com o argumento 3. 
 
2. Considere a definição em ML abaixo (2.0 pontos). 
fun h x f = f (x+1) 
a) Defina h, incluindo os tipos dos parâmetros envolvidos e do retorno. 
h é uma função que recebe dois parâmetros e possui o seguinte tipo: int -> (int -> ‘a) -> ‘a 
b) h é uma função curry ou uncurry? Justifique. 
 
h é uma função curry, visto que pode retornar uma função a partir da instanciação parcial de seus parâmetros.

Outros materiais