Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porConsuelo Gamino Modificado hace 10 años
2
Historia
3
Historia Su nombre rinde homenaje a:
Haskell Brooks Curry ( ) Lógico y matemático norteamericano Pionero de la lógica matemática moderna. Desarrolló la lógica combinatoria, que es la base de un estilo de programación funcional. Su trabajo ha sido útil en ciencias de la computación y en el diseño de lenguajes.
4
Origen de Haskell En los años 1987 se constituyó un comité cuyo objetivo era crear un lenguaje funcional que reuniera las características de los múltiples lenguajes funcionales de la época, el más notable Miranda, y resolviera la confusión creada por la proliferación de los mismos
5
Desarrollado por: Universidad de Yale Universidad de Glasgow
6
Reúne las característica de:
HASKELL ML SASL KRC MIRANDA ISWIN
7
Primeras versiones de Haskell
8
Influencio a: HASKELL CLEAN CLOS PYTHON
9
Paradigmas
10
Haskell: LP funcional puro
Paradigma principal es la “programación funcional” En lugar de realizar acciones en secuencia, evalúan expresiones. Utiliza la interacción y combinación de las funciones.
11
Cualidades de los LP funcional
Todos los procedimientos son funciones y distinguen claramente los valores de entrada (parámetros) de los de salida (resultados). No existen variables ni asignaciones – las variables han sido reemplazadas por los parámetros. No existen ciclos – éstos han sido reemplazados por las llamadas recursivas.
12
Algunas características:
Funciones de orden superior. Evaluación perezosa. Fuertemente tipado. Los tipos son inferidos
13
Funciones de orden superior
Un lenguaje utiliza funciones de orden superior, permite que las funciones sean tratadas como valores Que sean pasadas como argumentos de funciones y que sean devueltas como resultados.
14
Evaluación perezosa Los lenguajes tradicionales, evalúan todos los argumentos de una función antes de conocer si éstos serán utilizados. Consiste en no evaluar un argumento hasta que no se necesita. La evaluación perezosa nos asegurará que nada más es evaluado innecesariamente.
15
Fuertemente Tipado Se asocia un tipo a toda una expresión.
cualquier expresión a la que no se le pueda asociar un tipo es rechazada como incorrecta antes de la evaluación
16
Tipos Inferidos A diferencia de otros lenguajes fuertemente tipados, en Haskell los tipos son inferidos automáticamente. El programador no está obligado a declarar el tipo de las expresiones. Los sistemas de inferencia de tipos permiten una mayor seguridad evitando errores de tipo en tiempo de ejecución y una mayor eficiencia, evitando realizar comprobaciones de tipos en tiempo de ejecución.
17
Dominios de Aplicación
18
Lenguaje puramente Funcional
No se destaca como un gran tipo de lenguaje potencial para crear programas mas complejos o de carácter de aplicaciones
19
Aplicaciones de Haskell
Fran (Functional Reactive Animations) es una biblioteca para realizar animaciones usando Haskell. Pan es una biblioteca para generar imágenes usando Haskell. Haskore es una biblioteca para generar música usando Haskell.
20
Inteligencia artificial
En haskell unos de los dominios de aplicación es la “inteligencia artificial”
21
Juegos 3D: Frag
22
Implementacion del Lenguaje de Programacion
23
Haskell: Traducción Interpretativa
Lenguajes interpretado: son aquellos en que la traducción a lenguaje maquina se produce durante la ejecución
24
Implementaciones: HUGS GHC NHC 98 HBC HELIUM odas las siguientes implementaciones cumplen en su totalidad, o casi en su totalidad, con los estándares de Haskell 98 y son distribuidas bajo licencias Open Source. No se conocen implementaciones comerciales del lenguaje. Hugs ([1]) es un intérprete. Ofrece una compilación rápida de los programas y un tiempo razonable de ejecución. GHC ([2]): "Glasgow Haskell Compiler" compila a código nativo en una variedad de arquitecturas y puede también compilar a C. Es, probablemente, uno de los compiladores más populares e incluso tiene unas cuantas librerías (por ejemplo OpenGL) que, aunque muy útiles, sólo funcionan bajo GHC. nhc98 ([3]) es otro compilador con un mejor tiempo de ejecución que Hugs. Esta implementación se enfocó a minimizar la utilización de la memoria convirtiéndola en una buena opción para arquitecturas lentas o antiguas. HBC ([4]) es otro compilador a código nativo de Haskell. Si bien no ha sido actualizado en el último tiempo sigue siendo bastante útil. Helium ([5]) es un nuevo dialecto de Haskell. Se centró en ser muy fácil de aprender; por ello, no incluye soporte para todo el estándar de Haskell, haciendo que no sea totalmente compatible.
25
GHCi
26
WinHugs
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.