Diapositiva 1 - PowerPoint PPT Presentation

About This Presentation
Title:

Diapositiva 1

Description:

Lenguaje de programaci n Manuel David Romero Guerrero Uxio Prego Mont n Francisco Tom s L pez de las Huertas Arance Programaci n declarativa avanzada – PowerPoint PPT presentation

Number of Views:39
Avg rating:3.0/5.0
Slides: 50
Provided by: jokantaro
Category:

less

Transcript and Presenter's Notes

Title: Diapositiva 1


1
Lenguaje de programación
Manuel David Romero Guerrero Uxio Prego
Montón Francisco Tomás López de las Huertas Arance
Programación declarativa avanzada
2
ÍNDICE
  • QUÉ ES SCALA?
  • HISTORIA
  • DEMOSTRACIÓN
  • CARACTERÍSTICAS
  • SINTAXIS
  • CONCURRENCIA
  • PRESENTE
  • FUTURO
  • BIBLIOGRAFÍA SOBRE SCALA

Programación declarativa avanzada
3
QUÉ ES SCALA?
  • Es un lenguaje de programación de propósito
    general diseñado para expresar patrones comunes
    de programación de forma concisa y elegante.
  • Se integran las características de los lenguajes
    orientados
  • a objetos y funcional.
  • Scala no es una extensión de Java, pero es
    totalmente interoperable con él.
  • Scala se traduce a bytecodes Java y la eficiencia
    de los programas compilados por lo general es
    igual que Java.

Programación declarativa avanzada
4
HISTORIA
  • Scala fue diseñado por Martin Odersky y su grupo
    de la Escuela Politécnica Federal de Lausana
    (Suiza).
  • Odersky tenía como objetivo combinar
  • la programación funcional y la
  • programación orientada a objetos.
  • Se inició en 2001 y la primera
  • versión que se hizo pública fue en
  • 2003. En 2006, se lanzó una segunda
  • versión conocida como Scala v2.0.

Programación declarativa avanzada
5
DEMOSTRACIÓN (I)
Java
Máquina Virtual
Plataforma .Net
Programación declarativa avanzada
6
DEMOSTRACIÓN (II)
  • Directa
  • Plugins
  • Frameworks
  • Eclipse
  • Intellij
  • Netbeans

Programación declarativa avanzada
7
DEMOSTRACIÓN (III)
Programación declarativa avanzada
8
CARACTERÍSTICAS DEL LENGUAJE (I)
  • Declarativo
  • Perezoso
  • No puro
  • Aplicación parcial
  • Plegado
  • Filtrado
  • Mapeado
  • Patrones
  • A varios niveles

Programación declarativa avanzada
9
CARACTERÍSTICAS DEL LENGUAJE (II)
  • Orientado a Objetos puro
  • Objeto null
  • Objeto Unit
  • Tipificación
  • Estático
  • Fuerte

Programación declarativa avanzada
10
CARACTERÍSTICAS DEL LENGUAJE (III)
  • Lenguaje de alto nivel
  • Expresividad
  • Patrones
  • Sentencia for comprensiva
  • Yield
  • Soporte nativo de expresiones regulares
  • Ligereza
  • Concisión
  • Inteligencia

Programación declarativa avanzada
11
CARACTERÍSTICAS DEL LENGUAJE (IV)
  • Eficiente
  • Integrable con XML
  • Interoperabilidad
  • Java
  • .NET

Programación declarativa avanzada
12
ALGO DE SINTAXIS (I)
  • Tipos por defecto
  • Byte, de -27 a 27-1
  • Char, de 0 a 216-1
  • Short, de -215 a 215-1
  • Int, de -231 a 231-1
  • Long, de -263 a 263-1
  • Float y Double, según el estándar IEEE754

Programación declarativa avanzada
13
ALGO DE SINTAXIS (II)
  • Tuplas
  • Hasta de 22 elementos

Programación declarativa avanzada
14
ALGO DE SINTAXIS (III)
  • Perezoso
  • Pero no puro!

Programación declarativa avanzada
15
ALGO DE SINTAXIS (IV)
  • Aplicación parcial
  • modN se aplica parcialmente

Programación declarativa avanzada
16
ALGO DE SINTAXIS (V)
  • Mapeado
  • Se presupone fib declarado previamente

Programación declarativa avanzada
17
ALGO DE SINTAXIS (VI)
  • Patrones
  • Tradicionales
  • Tipos existenciales

Programación declarativa avanzada
18
ALGO DE SINTAXIS (VII)
  • Orientación a objetos pura
  • null

Programación declarativa avanzada
19
ALGO DE SINTAXIS (VIII)
  • Orientación a objetos pura
  • null

Programación declarativa avanzada
20
ALGO DE SINTAXIS (IX)
  • Orientación a objetos pura
  • Unit

Programación declarativa avanzada
21
ALGO DE SINTAXIS (X)
  • Lenguaje de alto nivel
  • Expresividad
  • Patrones
  • Sentencia for comprensiva
  • Para empezar
  • Compliquemoslo un poco más con un filtrado

Programación declarativa avanzada
22
ALGO DE SINTAXIS (XI)
  • Sentencia for comprensiva
  • Permanencia yield
  • Ámbito expandido
  • for generativo

Programación declarativa avanzada
23
ALGO DE SINTAXIS (XII)
  • Lenguaje de alto nivel
  • Ligereza
  • Concisión

Programación declarativa avanzada
24
ALGO DE SINTAXIS (XIII)
  • Lenguaje de alto nivel
  • Concisión
  • Parámetros con valores por defecto

Programación declarativa avanzada
25
ALGO DE SINTAXIS (XIV)
  • Lenguaje de alto nivel
  • Concisión
  • Lambda

Programación declarativa avanzada
26
ALGO DE SINTAXIS (XV)
  • Lenguaje de alto nivel
  • Inteligencia
  • Integración con XML

Programación declarativa avanzada
27
ALGO DE SINTAXIS (XVI)
  • Interoperabilidad
  • Java
  • .NET

Programación declarativa avanzada
28
ALGO DE SINTAXIS (XVII)
  • Más cosas importantes
  • Sentencia Selectiva
  • Genericidad
  • Tipos parametrizados

Programación declarativa avanzada
29
ALGO DE SINTAXIS (XVIII)
  • Más cosas importantes
  • Genericidad
  • Mejora en las restricciones
  • A, que hereda de B
  • B, del que heredada A

Programación declarativa avanzada
30
ALGO DE SINTAXIS (XIX)
  • Más cosas importantes
  • Genericidad
  • Proyección de tipos

Programación declarativa avanzada
31
ALGO DE SINTAXIS (XX)
  • Más cosas importantes
  • Traits
  • Conjunto de métodos parametrizados
  • Cómo las interfaces de Java?
  • Parecido, pero no
  • Cómo las clases abstractas de Java?
  • Sumamente parecido, pero tampoco
  • Y?
  • Herencia múltiple

Programación declarativa avanzada
32
ALGO DE SINTAXIS (XXI)
  • Más cosas importantes
  • Traits

Programación declarativa avanzada
33
ALGO DE SINTAXIS (XXII)
  • Más cosas importantes
  • Paquetes à la C

Programación declarativa avanzada
34
CONCURRENCIA (I)
  • El instrumento principal que proporciona Scala
    para la concurrencia son los Actores (o actors).
  • Son procesos concurrentes que se comunican a
    través del intercambio de mensajes.
  • La librería de Actors de Scala proporciona envío
    de mensajes tanto asíncronos como síncronos.

Programación declarativa avanzada
35
CONCURRENCIA (II)
  • Las dos operaciones principales que se pueden
    hacer con un actor es enviar y recibir un
    mensaje

Programación declarativa avanzada
36
CONCURRENCIA (III)
Programación declarativa avanzada
37
CONCURRENCIA (IV)
Programación declarativa avanzada
38
CONCURRENCIA (V)
Programación declarativa avanzada
39
SCALA EN LAS EMPRESAS
Électricité de France
Twitter
Sony
Xebia
Reaktor
Siemens
Programación declarativa avanzada
40
PRESENTE (I)
Posición Abril 2010 Lenguaje Programación Índice Abril 2010
1 C 18.058
2 Java 18.051
3 C 9.707
4 PHP 9.662
5 (Visual) Basic 6.392
6 C 4.435
7 Python 4.205
8 Perl 3.553
9 Delphi 2.715
10 JavaScript 2.469

27 Scala 0.433

40 Caml/F 0.280

43 Prolog 0.258
Programación declarativa avanzada
41
PRESENTE (II)
Programación declarativa avanzada
42
FUTURO(I)
  • "Creo que hay un mercado mundial de quizas unos
    cinco ordenadores."
  • THOMAS WATSON, chairman de IBM, 1943.
  • "Pero... para que nos van a servir?"
  • Ingeniero de la Advanced Computing Systems
    Division de IBM, 1968, hablando de los
    microchips.
  • "Quien demonios va a querer oir hablar a los
    actores?"
  • H.M. WARNER, Warner Brothers, 1927.
  • Muchas veces la gente no sabe lo que quiere hasta
    que se lo enseñas.
  • Steve Jobs

Programación declarativa avanzada
43
FUTURO (II)
  • The New Big Thing

Funcional
Seguro
Alto Nivel
Multiparadigmático
Elegante
Orientado a Objetos
Concurrente
JVM y .Net
Xquery y XPath
Integrable con Java y XML
Ligero
Tipos estáticos
Inferencia de tipos
Programación declarativa avanzada
44
FUTURO (II)
  • The New Big Thing
  • Escasa Documentación
  • No está preparado para la producción
  • Librerías estándar
  • Sintaxis Compleja
  • No tiene Patrocinador Corporativo

Programación declarativa avanzada
45
FUTURO (III)
  • Imperativo o Funcional?
  • El Creador
  • Los Usuarios
  • El continuador de Java
  • Productividad
  • Incorpora vacíos de Java
  • Proyectos con varios lenguajes
  • Concurrencia

Programación declarativa avanzada
46
FUTURO (IV)
  • Enseñanza y Aprendizaje
  • Puristas
  • Funcional Haskell / F
  • Imperativo C / C
  • Orientado a Objetos Java / C
  • Constructivistas
  • Programación como un todo
  • Se recomienda por ser Interesante la combinación
    de paradigmas

Programación declarativa avanzada
47
LIBROS SOBRE SCALA (I)
Programming in Scala (Martin Odersky, Lex Spoon
y Bill Venners Noviembre 2008)
Beginning Scala (David Pollak Mayo 2009)
Programación declarativa avanzada
48
LIBROS SOBRE SCALA (II)
Programming Scala Tackle Multi-Core Complexity
on the Java Virtual Machine (Venkat Subramaniam
Julio 2009)
Programming Scala (Alex Payne y Dean Wampler
Septiembre 2009)
Programación declarativa avanzada
49
LIBROS SOBRE SCALA (III)
Steps in Scala (Christos KK Loverdos y Apostolos
Syropoulos Septiembre 2010)
Programación declarativa avanzada
Write a Comment
User Comments (0)
About PowerShow.com