El Lenguaje ML Programación Declarativa Avanzada

Slides:



Advertisements
Presentaciones similares
¿PARA QUE ESTAMOS AQUÍ? LOS OBJETIVOS DE LA ENCARNACIÓN.
Advertisements

SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
1 Datos sobre webloggers Datos extraidos de la encuesta a webloggers disponibles en la web de los autores.
el 1, el 4 y el 9 tres cuadrados perfectos autosuficientes
Revisión Nº:Descripción:Fecha: 00Elaboración de la documentación30/06/11 Copia Controlada :Nº: F /REV. 00 ACCESO A LA WEB DEL CPR DE TARAZONA Cód.:
© Eliseo Andrade.
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA la storia la historia lhistoire the history strada calle rue street.
Paso 1 Portada YO SOY EUROPEO Comisión Europea.
DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
INTELIGENCIA ARTIFICIAL
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS ( Resumen PYMES ) Noviembre de 2004.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS (MICROEMPRESAS, resultados provisionales) 29 de julio de 2004.
1 LA UTILIZACION DE LAS TIC EN LAS PYMES GALLEGAS AÑO Resumen. 24 de Junio de 2005.
Aranda Fernández, Miguel Ángel García Redondo, Luis Miguel
03- PREINSCRIPCIÓN v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
Articles Carosel.
Cuestiones y problemas
Los números.
ANALISIS DE IMÁGENES A PARTIR DE LA PRESENTACIÓN DE ALGUNAS IMÁGENES, PEDIR A LOS NIÑOS QUE OBSERVEN LAS ILUSTRACIONES Y QUE DESCRIBAN EN SU CUADERNO LAS.
Dr. José Roberto Martínez Abarca
A la izquierda A la derecha Todo recto
Los Objetos de la Clase Escriban la palabra (the word) en español para los objetos de la clase (#1-20).
CASTELLANO 8º “A” “C” OBJ. 1.1 TRABAJO ESCRITO 15% 06/10 Al 10/10
Los números.
Funciones Continuas. Contenidos Definición de Continuidad Funciones Discontinuas Teoremas Ejemplos.
Funciones Excel. Parte 1. Introducción 2 Una función Excel es una fórmula o un procedimiento que se realiza en el ambiente de Visual Basic, fuera de.
Cuenta Pública Ministerio de Agricultura 18 de diciembre de 2013.
Capítulo 6-2 Vocabulario Describing people and things in the past, Talking about an emotional reaction 1.
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
DIPLOMADO EN COMPETENCIAS DOCENTES
Proyecto ProMéxico Plasmas abril SECCIONES NOTICIAS PROYECTOS UNIDAD ACTÚA EVENTUALES secciones ProMéxico.
Proyecto ProMéxico Plasmas mayo SECCIONES NOTICIAS PROYECTOS UNIDAD ACTÚA EVENTUALES secciones ProMéxico.
Proyecto ProMéxico Plasmas marzo SECCIONES NOTICIAS PROYECTOS UNIDAD ACTÚA EVENTUALES secciones ProMéxico.
RETIRO DE COMALCALCO DIC. 2012
Ecuaciones y Resolución de Ecuaciones Lineales
Expresiones Racionales
Exponentes Racionales y Radicales
Ignacio García Delgado Unidad de PRL Hospital Regional de Málaga
Sintaxis básica del lenguaje
Curso de Java Estructura del Lenguaje
Comité Nacional de Información Bogotá, Mayo 30 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE GAS.
Comité Nacional de Información Bogotá, Octubre 24 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE.
Comité Nacional de Información Bogotá, Julio 21 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE GAS.
Comité Nacional de Información Bogotá, Julio 27 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE GAS.
INFORME PIPADI HOSPITAL VALL DHEBRON JUNIO 2012 – JUNIO
INTRODUCCIÓN A LA PROGRAMACIÓN
Aqui está Señoras y Señores !!!!!
JORNADA 1 DEL 24 DE MARZO AL 30 DE MARZO EQUIPO 01 VS EQUIPO 02 EQUIPO 03 VS EQUIPO 06 EQUIPO 05 VS EQUIPO 10 EQUIPO 07 DESCANSA EQUIPO 08 VS EQUIPO 13.
CULENDARIO 2007 Para los Patanes.
Números enteros.
BEATRIZ LAFONT VILLODRE
SI QUIERES VERLO DALE AL CLICK
ESTADOS FINANCIEROS A DICIEMBRE DE 2013.
GUIÓN GRÁFICO VALORES EN LA USB
* Fuente: Sondeo del Consumidor de la Comisión de la UE, GfK. Expectativas sobre la situación.
Marzo 2007 Lenguajes Visuales Clase III.
MAPA DE ESPAÑA nombre y apellido ______________
Conceptos Básicos de Java
Programación I Teoría VI: Recursividad
EL RETO DE UN GRANDE Y PROFUNDO LEGADO
POO Java Módulo 3 Elementos de programas Identificadores
Los números De 0 (cero) a 30 (treinta).
Numbers.
Slide 7-1 Copyright © 2003 Pearson Education, Inc. Figure: Estructuras de datos.
Ubicación de Isla de Pascua en Sudamérica Kms.
ESCUELA PROFESIONAL DE INGENIERIA INDUSTRIAL CURSO: GESTION DE LA CALIDAD ING.ELIZABETH FERG 1.
 2003 Prentice Hall, Inc. All rights reserved. 1 Capítulo 6: Clases y Abstracción de Datos Índice del capítulo 6.1 Introducción 6.2 Estructuras 6.3 Clases.
Un lenguaje funcional avanzado:
Transcripción de la presentación:

El Lenguaje ML Programación Declarativa Avanzada Realizado por: Peláez Hidalgo, Jesús Martín Bautista, David

El Lenguaje ML Introducción a ML. Definición de TAD’s . Ejemplos. Comparativa entre ML y Haskell. ML y Haskell en compiladores Uso de ambos lenguajes en universidades Bibliografía.

Introducción a ML Introducción Definición de TAD’s Ejemplos Características Lenguajes familia ML Definición de TAD’s Ejemplos Comparativa entre ML y Haskell Bibliografía

Introducción a ML ML (Metalenguaje). Lenguaje declarativo de propósito general. Robert Milner (1970, Edimburgo). Lenguaje declarativo impuro.

Introducción a ML Características: Lenguajes familia ML. Evaluación por valor. Recolección de basura Tipos de datos algebraicos Manejo de excepciones. Reconocimiento de patrones. Lenguajes familia ML. SML OCAML

Definición de TAD’s Introducción Ejemplos Primeros pasos en ML Tipos básicos TAD’s Procesado de listas Sentencias condicionales Patrones recursivos comunes Creando nuestros propios tipos Ejemplos Comparativa entre ML y Haskell Bibliografía

Primeros pasos en ML Manejando cadenas de caractéres: - "Hola Mundo"; val it = " Hola Mundo " : string Operando enteros: - 3+4; it = 7 : int Creación de funciones: fun <nombre> <parámetros> = <expresión>; fun doble x = 2*x; fun incremento x = x+1;

Tipos básicos Tipos básicos: integer, real, string, char, boolean. Listas de enteros: [1,2,3] : int list Lista de cadenas de caracteres: [“David",“Jesús“,“Blas"] : string list Listas compuestas: [(2,3),(2,2),(9,1)] : (int * int) list Listas de listas: [[],[1],[1,2]] : int list list

TAD´s Polimorfismo de datos. length : 'a list -> int Asignaciones. - val a = 12; val a = 12 : int - 15 + a; val it = 27 : int Reconocimiento de patrones. - val (d,e) = (2,"two"); val d = 2 : int val e = "two" : string

TAD´s Listas. nil [] 1::nil [1] 2::(1::nil) [2,1] Curry - fun add(x,y)= x+y : int; val add = fn int * int -> int - add 2 3; it = 5 : int

TAD´s Recursion fun factorial 0 = 1 | factorial n = n * factorial(n-1); factorial 2 = 2 * factorial(2-1) = 2*factorial(1)

Procesado de listas Suma de los elementos de una lista. fun suma nil = 0 | suma(h::t) = h + suma t; suma [2,3,1] = 2 + 3 + 1 = 6 Concatenando dos listas. fun nil @ x = x | (h::t) @ x = h::(t @ x); [1,2,3] @ [4,5,6] = [1,2,3,4,5,6]

Procesado de listas Doble de una lista. El operador @. doublist(h::t) = 2*h :: doublist t doublist [5,3,1] = [10,6,2] El operador @. infixr 5 :: @ fun nil @ l = l | (h::t)@ l = h::(t@l)

Sentencias condicionales if.. then.. else.. if 1 = 0 then "Me llamo David" else "Alguien más se llama David"; fun pali s = if explode s = rev(explode s) then s ^ " es un palíndromo." else s ^ " no es un palíndromo."; - rev; val it = fn : 'a list -> 'a list - explode; val it = fn : string -> char list

Patrones recursivos comunes Map fun map f nil = nil | map f (h::t) = (f h)::(map f t); Reduce fun reduce f b nil = b | reduce f b (h::t) = f(h,reduce f b t); Zip fun zip f nil nil = nil | zip f (h::t) (i::u) = f(h,i)::zip f t u; Filter filter even [1,2,3,4,5,6] = [2,4,6]

Creando nuestros propios tipos Tipo enumerado datatype dirección= norte| este| sur| oeste; fun derecha norte= este | right este= sur | right sur= oeste | right oeste= norte;

Creando nuestros propios tipos Queues "ivan" ++ "tanya" ++ "boris" ++ P "ivan" ++ ("tanya" ++ ("boris" ++ P)) Front fun front(x++P) = x | front(x++q) = front q; Remove fun remove(x++P) = P | remove(x++q) = x++(remove q);

Comparativa entre ML y Haskell Introducción Definición de TAD’s Ejemplos Comparativa entre ML y Haskell ML y Haskell en compiladores Uso de ambos lenguajes en universidades Bibliografía

Comparativa entre ML y Haskell ML y Haskell en compiladores ML Analizador Léxico: ML-Lex Analizador Sintáctico: ML-Yacc Lenguajes influenciados por ML Alice Nemerle Cyclone

Comparativa entre ML y Haskell ML y Haskell en compiladores Haskell Analizador Léxico: Alex Analizador Sintáctico: Happy Lenguajes influenciados por Haskell F# Python Scala

Comparativa entre ML y Haskell Uso de ambos lenguajes en universidades ML University of Edinburgh (Scotland) University of Cambridge (England) Carnegie Mellon University (Pensilvania-USA) University of Princeton (New Jersey-USA) University of Copenhagen (Denmark) Haskell Universidad de Sevilla Universidad Politécnica de Madrid Universidad Politécnica de Cataluña Universidad Politécnica de Valencia Universidad de Málaga

Comparativa entre ML y Haskell Lenguaje más utilizado según índice TIOBE

Bibliografía Introducción Definición de TAD’s Ejemplos Comparativa entre ML y Haskell Bibliografía

Bibliografía http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html http://en.wikipedia.org/wiki/Haskell_%28programming_language%29 http://www.scholarpedia.org/article/Standard_ML_language http://bloggingmath.wordpress.com/2010/01/20/writing-a-compiler-in-haskell-compiler-series-part-i/ http://bloggingmath.wordpress.com/2010/04/06/having-fun-with-happy-compiler-series-part-iii/ http://en.wikipedia.org/wiki/ML_%28programming_language%29