Lenguaje_Scala

Download Report

Transcript Lenguaje_Scala

SCALA

0011 0010 1010 1101 0001 0100 1011

Lenguaje de Programación

4

1

2 5 3

0011 0010 1010 1101 0001 0100 1011

4

1

2 5 3

Scala

0011 0010 1010 1101 0001 0100 1011 • Es un lenguaje de programación de alto nivel multi-paradigma diseñado para expresar patrones comunes de programación en forma concisa, elegante y con tipos seguros.

1

• Integra sutilmente características de lenguajes funcionales y orientados a objetos.

4

2 5 3

• Toma muchas ideas de otros lenguajes anteriores (de Smalltalk a Erlang, de Haskell a ML, de Eiffel a Ruby) y las intenta aglutinar en un lenguaje aparentemente amplio pero que esconde un núcleo conciso y compacto. La mayoría de la funcionalidad más visible está implementada en forma de librerías.

• Escala deriva de más formal. Funnel • Tampoco hay que olvidar la relación de Scala con Java, claro. Es significativo, por ejemplo, que el in Scala haga tantas referencias a Java.

4

1

2 5 3

Algo de Historia

0011 0010 1010 1101 0001 0100 1011 • Fue creado en la Escuela Politécnica Federal de Lausanne por Martin Odersky en el año 2001.

• Fue liberada públicamente en la plataforma Java en Enero del 2004, y en la plataforma.NET en lenguaje fue liberado en Marzo de 2006.

1

4

2 5 3

Sobre su Autor…

0011 0010 1010 1101 0001 0100 1011 • Martin Odersky, nacio en Alemania el 5 de Septiembre de 1958 • En el año 2007 se une a la ACM.

• Actualmente es profesor de la cátedra de Métodos de Programación en la EPFL.

4

1

2 5 3

Escala es Funcional

0011 0010 1010 1101 0001 0100 1011 • Scala es también un lenguaje funcional en el sentido de que cada función es un valor. Scala proporciona una sintaxis ligera para definir funciones anónimas, es compatible con las funciones de orden superior, permite que las funciones se aniden y admite currificar. • Las clases de casos de Scala y su compatibilidad integrada para la coincidencia de patrones modelan tipos algebraicos utilizados en muchos lenguajes de programación funcionales.

4

1

2 5 3

…………….

0011 0010 1010 1101 0001 0100 1011 • Además, la noción de coincidencia de patrones de Scala naturalmente amplía al procesamiento de datos XML con la ayuda de patrones de secuencia. En este contexto, las comprensiones de secuencia

1

desarrollo de aplicaciones como servicios web.

4

2 5 3

Su Mutua relación con POO

0011 0010 1010 1101 0001 0100 1011 • Después de pensar que Java era un lenguaje sin mucho futuro, acabo de encontrar un lenguaje que podría salvar a Java y mantenerlo como el lenguaje de máquina de alto nivel de la JVM, cuyo propósito es soportar su próximo lenguaje de alto nivel.

• Parece el mejor lenguaje para la JVM, y tiene una ventaja final: al ser OO podría ser adoptado rápidamente por la comunidad de Java, mientras aprenden a utilizar las capacidades adicionales que de una transición aparentemente tranquila.

4

1

2 5 3

………

0011 0010 1010 1101 0001 0100 1011 • Scala beneficia de la madurez y de la diversidad de las bibliotecas que han hecho la fuerza de Java desde una decena de años. Además, es posible de invocar del código escrito Scala a marchar de programas escritos Java lo que facilita la transición de Java a Scala.

1

• La implementación actual corre en la máquina virtual de Java y es compatible con las aplicaciones Java existentes.

4

2 5 3

Que soporta Scala

0011 0010 1010 1101 0001 0100 1011 • · clases genéricas, · anotaciones de variación, · límites de tipo superior e inferior, · clase interior y tipos abstractos como miembros de objeto, · tipos compuestos, · vistas y · métodos polimórficos.

· Un mecanismo de inferencia de tipo local se encarga de que no se le requiera al usuario anotar el programa con la información de tipo redundante. En combinación, estas características proporcionan una base poderosa para la la extensión de la seguridad de tipos de software.

4

1

2 5 3

Funcionamiento de Scala

0011 0010 1010 1101 0001 0100 1011 • Cualquier método puede utilizarse como un operador de infijo o de sufijo y los cierres se construyen automáticamente en función del tipo esperado (destino escribiendo).

la sintaxis y sin utilizar instalaciones de programación meta similares a macro.

1

la definición de nuevas instrucciones sin extender

4

2 5 3

……………

0011 0010 1010 1101 0001 0100 1011 • Scala está diseñado para interoperar con populares entornos de programación como Java 2 Runtime Environment (JRE) y .NET Framework (CLR). En particular, la interacción con los lenguajes

1

compilación (compilación separada, carga de clase dinámica) como Java y C# y permite el acceso a miles de bibliotecas de alta calidad.

4

2 5 3

“Hola Mundo” en Scala

0011 0010 1010 1101 0001 0100 1011

• •

object

HelloWorld {

def

Mano(args: Array[String]) = println("Hello, world!") }

object

HelloWorld

extends

println("Hello world!"); }

4

2 5 3

Pagina Oficial

0011 0010 1010 1101 0001 0100 1011

• http://www.scala-lang.org/

4

1

2 5 3

0011 0010 1010 1101 0001 0100 1011

4

1

2 5 3

0011 0010 1010 1101 0001 0100 1011

4

1

2 5 3

Algunas Aplicaciones:

0011 0010 1010 1101 0001 0100 1011 • Twiter esta basado en el lenguaje Scala

4

1

2 5 3

0011 0010 1010 1101 0001 0100 1011

4

1

2 5 3