Linguagens multiparadigma 2: F#, JavaScript, Python
1. Em linguagens de programação, um objeto imutável é aquele cujo status não pode
ser modificado no decorrer do programa após sua definição, sendo que F# é uma
linguagem com
suporte a dados imutáveis e mutáveis.
Indique a opção que apresente uma declaração, respectivamente, de um dado mutável e
um dado não mutável em F#.
R: A. “let mutable x = 10” e “let x = x + 2”
A expressão "mutable"é utilizada para indicar que a declaração em questão é
mutável, uma vez, que por padrão, F# é uma linguagem de programação imutável. A
declaração "immutable"
não existe na linguagem de programação F#, bem como “int x = 10” e “const int x =
12” seria a resposta caso a linguagem de programação fosse C#, por exemplo. "let" é
de uso obrigatório
em qualquer declaração da linguagem F#.
2. A orientação a objetos é um paradigma de programação muito importante, uma vez
que é possível transferir as características de algo real para um objeto e, assim,
trabalhar com ele.
Indique qual das opções representa a declaração utilizada para declarar uma classe
em F#.
R: B. type.
F# tem suporte a tipos complexos, e por meio destes são desenvolvidos objetos
previstos no paradigma orientado a objeto. Dessa maneira, um objeto é declarado por
meio da declaração
"type". "let" é utilizado na declaração de expressões, funções, etc., já "abstract"
é utilizado na declaração de métodos abstratos de um tipo complexo, por exemplo,
bem como "inherit" é
empregado na criação de herança entre tipos. "class" não realiza nenhuma função
especial em um código F#.
3. A linguagem de programação JavaScript tem suporte a diversos paradigmas de
programação. Dessa forma, temos recursos importantes disponíveis que facilitam a
vida do desenvolver de
aplicativos, como a possibilidade de utilizar funções de alta ordem. Indique a
opção que representa a descrição de funções de alta ordem:
R: E. Capacidade das funções de receber e retornar valores ou funções.
Funções de alta ordem têm a capacidade de criar funções que recebem como parâmetros
funções e valores e podem retornar funções ou valores. A possibilidade de uso
opcional do ponto
e vírgula é uma questão de boas práticas de programação. Suporte a herança,
polimorfismo, encapsulamento e abstração pertencem ao paradigma de orientação a
objetos. As funções
“while”, “if” e “for” pertencem ao paradigma imperativo, e a diferenciação de
maiúsculo e minúsculo nas declarações significa que o JavaScript é case sensitive.
4. O JavaScript, na condição de linguagem de programação multiparadigma, é uma
linguagem que tem suporte ao paradigma de orientação a objetos, sendo capaz de
criar objetos com
atributos e métodos. Indique a opção que representa a criação de um método para uma
classe qualquer em JavaScript:
R: C. Banco.prototype.boasVindas = function() { alert(‘Olá Cliente!’); }
Banco.prototype.boasVindas = function() { alert(‘Olá Cliente!’); } é a opção
correta, uma vez que está criando um método chamado de “boasVindas“ por meio da
funcionalidade “prototype”
para o objeto “Banco”. function boasVindas() { alert(‘Olá Cliente!’); } e function
boasVindas() { console.log(‘Olá Cliente!’); } são funções simples declaradas em
JavaScript, porém não
pertencem a um objeto. def boasVindas: (quebra de linha) print(“Olá Cliente”) é uma
funções escrita em Python, e let boasVindas = printfn "Olá Cliente!" é uma função
desenvolvida com
F#.
5. Python é uma linguagem de programação amplamente utilizada no meio científico
por ser capaz de criar soluções robustas e ter suporte a paradigmas importantes,
como paradigma
imperativo, funcional e orientado a objetos. Indique qual opção representa a
funcionalidade da expressão “self” presente na linguagem Python:
R:A. Disponibiliza acesso aos atributos e aos métodos de um objeto.
Por meio da declaração "self", temos acesso aos atributos e aos métodos de um
objeto Python. Por meio da declaração "class", as classes Python são definidas, e
um construtor é criado por
meio da declaração "__init__". Funções de alta ordem, bem como recursividade, são
recursos da programação funcional presentes na linguagem Python.