Escriturário Informática Parte 15 Prof. Márcio Hunecke
Informática SCALA 2.12 O projeto do Scala começou em 2001 por Martin Odersky e tinha como objetivo criar uma linguagem de programação que combinava Java com ideias da programação funcional. Em 2006 foi lançada a versão 2.0. Scala é uma linguagem de programação de propósito geral fornecendo suporte para programação Funcional e mantendo a Orientação a do Java (multiparadigma). É um sistema de tipagem estático forte e foi projetado para tratar os principais problemas do Java. O nome Scala é uma junção de Scalable e Language, significando que é projetado para crescer com as demandas de seus usuários. O código-fonte Scala é compilado para bytecode Java, de modo que o código executável resultante é executado em uma máquina virtual Java (JVM). Scala fornece interoperabilidade linguística com Java, de modo que as bibliotecas escritas em ambas as linguagens podem ser referenciadas diretamente no Scala ou no código Java. Ao contrário de Java, o Scala tem muitas características de linguagens de programação funcionais como código reduzido, maior produtividade, código concorrente e simplicidade. Scala é executado na plataforma Java (Java Virtual Machine) e é compatível com os programas Java existentes. O processo para gerar um aplicativo em Scala é idêntico ao processo na linguagem Java. Compilar o arquivo texto (arquivo.scala) usando compilador scalac.exe e então gerar o ByteCode (arquivo.class). Também existe Scala para a plataforma.net, mas a plataforma base é mesmo para Java. De qualquer forma, o suporte a.net foi criado para deixá-la portátil entre duas plataformas (Java e.net) A distribuição de software de referência Scala, incluindo compilador e bibliotecas, é lançada uma licença BSD (licença de código aberto - Berkeley Software Distribution BSD) Características de Linguagem Scala Em geral é semelhante ao Java. As variáveis nunca podem mudar de tipo (String para Boolean, por exemplo), pois a linguagem é de tipagem estática. Atribuição de variáveis var nome = Banco do Brasil. Atribuição de constantes val nome = Concurso www.acasadoconcurseiro.com.br 3
Todo programa deve ter def main(args: Array[String]) { }. No site www.scala-lang.org há três downloads principais: IntelliJ Community (IDE gráfica), SBT (IDE em modo texto) e Binários da linguagem (scala.exe e scalac.exe). Scala Macros Macros são funções que são chamadas pelo compilador durante a compilação. Dentro dessas funções o programador tem acesso a APIs do compilador. Por exemplo, é possível gerar, analisar e avaliar código. As macros são nativas no compilador Scala a partir da versão 2.10.0. As macros são boas para geração de código e verificações estáticas e linguagens específicas do domínio. Cenários que tradicionalmente envolvem escrita e manutenção podem ser abordados com macros de forma concisa e sustentável. Uma definição que vem sendo utilizada para o uso de macros é Meta Programação em tempo de compilação. Tabela Comparativa em as linguagens de programação. Paradigma Java Phyton JavaScript Scala Estruturada Genérica Reflectiva Concorrente Baseada em protótipos Scripts Surgimento 1995 1991 1995 2001 Criador Proprietário James Gosling (Sun) Oracle Guido van Rossum Fundação Phyton (PSF) Brendan Eich (Netscape) ECMA Martin Odersky Comunidade Estilo Estática e forte Dinâmica e fraca Dinâmica e fraca Estática e forte Linguagem influenciadora C++, C#, Generic Java e outras. ABC, Java e outras. PERL, Phyton, Java, C e outras. Java, C e outras. 4 www.acasadoconcurseiro.com.br
Banco do Brasil - TI (Escriturário) Informática Márcio Henecke Extensão do arquivo Interpretada / Compilável IDEs além do Bloco de Notas jar, java e class PY, PY* JS sc, scala e class Compilável Interpretada Interpretada Compilável Eclipse e NetBeans Idle, PyCharm Eclipse IntelliJ, Sbt Linguagens fortemente tipadas são aquelas em que a declaração do tipo é obrigatória. Todas as variáveis têm um tipo específico que tem que ser explicitado. Java e Scala são um exemplo deste tipo de linguagem. Linguagens fracamente tipadas ou dinamicamente tipadas são aquelas em que durante a execução do programa podem alterar o tipo de dados contido em uma variável. Exemplos destas linguagens são Javascript e Python. Programação imperativa é um paradigma de programação que descreve a computação como ações, enunciados ou comandos que mudam o estado (variáveis) de um programa. www.acasadoconcurseiro.com.br 5