Trabalho Sobre Sistemas de Tipos
Por: ignokoohii • 21/10/2019 • Relatório de pesquisa • 257 Palavras (2 Páginas) • 268 Visualizações
Tipos:
• Inferência de Tipos: Em Scala não precisamos declarar explicitamente o tipo das
ariáveis, pois o próprio compilador infere os tipos no momento do uso delas, o que traz grande
exibilidade na programação. “Scala tem tipagem dinâmica mas é fortemente tipado. Logo não é
ossivel trocar o tipo da variavel após a inicialização. Ainda é possivel declarar variaveis da
eguinte forma: var nomeVariavelMutavel e val nomeVariavelImutavel, assim é possivel criar
bjetos imutaves de forma simples na propria inicialização.
• Pattern Matching: Funciona mais ou menos como um Switch/Case, mas é muito
ais poderoso, permitindo a comparação utilizando expressões regulares;
• Traits: É um conceito de várias linguagens de programação OO, que foi
dicionado em Scala também, e é mais ou menos como uma interface Java, mas que permite que
s métodos sejam implementados, e não apenas declarados;
• Funções de Alta Ordem: Em Scala funções são objetos, por isso podemos
lizá-las de muitas formas, como por exemplo, passá-las como parâmetros para outras funções.
• Objetos: Em Scala tudo é um objeto, inclusive os tipos básicos, como Integers e
oats, e até funções.
Compiladores:
• Javac: Scala utiliza por padrão o proprio compilador do java, e roda na JVM. Apresenta
algumas diferenças na forma como o byte code é gerado, geralmente de forma mais
otimizada para recurcividade, "Em funcões recursivas de um único parametro o
compilador garante que a pilha não sera estourada".
• Dotty: O foco está principalmente na simplificação. Removemos sintaxe estranha (por
exemplo, sem literais XML) e tentamos reduzir os tipos de Scala em um conjunto menor
de construtores mais fundamentais. A teoria por trás desses construtores é pesquisada
em DOT, um cálculo para tipos de objetos dependentes
Referencias:
http://www.scala-lang.org/files/archive/spec/2.12/
Exemplos:
http://docs.scala-lang.org/tutorials/
...