SCALA

19
4 2 5 1 0011 0010 1010 1101 0001 0100 1011 SCALA Lenguaje de Programación

description

SCALA. Lenguaje de Programación. Integrantes. Armando Chuto M. Juan José Plua C. Darwin Murillo C. Víctor Zambrano. Scala. 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. - PowerPoint PPT Presentation

Transcript of SCALA

Page 1: SCALA

42510011 0010 1010 1101 0001 0100 1011

SCALALenguaje de Programación

Page 2: SCALA

4251

0011 0010 1010 1101 0001 0100 1011

Integrantes

Armando Chuto M.

Juan José Plua C.

Darwin Murillo C.

Víctor Zambrano

Page 3: SCALA

4251

0011 0010 1010 1101 0001 0100 1011

Scala

• 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.

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

Page 4: SCALA

4251

0011 0010 1010 1101 0001 0100 1011

• 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 Funnel, que es un lenguaje mucho más formal.

• Tampoco hay que olvidar la relación de Scala con Java, claro. Es significativo, por ejemplo, que el propio autor del lenguaje en su libro Programming in Scala haga tantas referencias a Java.

Page 5: SCALA

4251

0011 0010 1010 1101 0001 0100 1011

Algo de Historia

• 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 Junio del mismo año. Una segunda versión del lenguaje fue liberado en Marzo de 2006.

Page 6: SCALA

4251

0011 0010 1010 1101 0001 0100 1011

Sobre su Autor…

• 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.

Page 7: SCALA

4251

0011 0010 1010 1101 0001 0100 1011

Escala es Funcional

• 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.

Page 8: SCALA

4251

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 son útiles para la formulación de consultas. Estas características hacen que Scala sea ideal para el desarrollo de aplicaciones como servicios web.

…………….

Page 9: SCALA

4251

0011 0010 1010 1101 0001 0100 1011

Su Mutua relación con POO

• 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 tiene el lenguaje, presentando la rara oportunidad de una transición aparentemente tranquila.

Page 10: SCALA

4251

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.

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

Page 11: SCALA

4251

0011 0010 1010 1101 0001 0100 1011

Que soporta Scala

• · 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,· referencias automáticas tipeadas de manera explícita,· 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 reutilización segura de abstracciones de programación y para la extensión de la seguridad de tipos de software.

Page 12: SCALA

4251

0011 0010 1010 1101 0001 0100 1011

Funcionamiento de Scala

• 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).

• Un uso conjunto de ambas características facilita la definición de nuevas instrucciones sin extender la sintaxis y sin utilizar instalaciones de programación meta similares a macro.

Page 13: SCALA

4251

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 orientados a objetos como Java y C# es tan suave como sea posible. Scala tiene el mismo modelo de 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.

Page 14: SCALA

4251

0011 0010 1010 1101 0001 0100 1011

“Hola Mundo” en Scala

• object HelloWorld { def Mano(args: Array[String]) = println("Hello, world!") }

• object HelloWorld extends Aplicación { println("Hello world!"); }

Page 15: SCALA

4251

0011 0010 1010 1101 0001 0100 1011

Pagina Oficial

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

Page 16: SCALA

4251

0011 0010 1010 1101 0001 0100 1011

Page 17: SCALA

4251

0011 0010 1010 1101 0001 0100 1011

Page 18: SCALA

4251

0011 0010 1010 1101 0001 0100 1011

Algunas Aplicaciones:

• Twiter esta basado en el lenguaje Scala

Page 19: SCALA

4251

0011 0010 1010 1101 0001 0100 1011