1 / 26

Historia

Historia. Historia. Su nombre rinde homenaje a:. 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.

pooky
Download Presentation

Historia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Historia

  2. Historia Su nombre rinde homenaje a: • 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. Haskell Brooks Curry (1900 - 1982)

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

  4. Desarrollado por:

  5. Reúne las característica de:

  6. Primeras versiones de Haskell

  7. Influencio a:

  8. Paradigmas

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

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

  11. Algunas características: • Funciones de orden superior. • Evaluación perezosa. • Fuertemente tipado. • Los tipos son inferidos

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

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

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

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

  16. Dominios de Aplicación

  17. Lenguaje puramente Funcional • No se destaca como un gran tipo de lenguaje potencial para crear programas mas complejos o de carácter de aplicaciones

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

  19. Inteligencia artificial En haskell unos de los dominios de aplicación es la “inteligencia artificial”

  20. Juegos 3D: Frag

  21. Implementacion del Lenguaje de Programacion

  22. Haskell: Traducción Interpretativa Lenguajes interpretado: son aquellos en que la traducción a lenguaje maquina se produce durante la ejecución

  23. Implementaciones:

  24. GHCi

  25. WinHugs

More Related