Está en la página 1de 31

INTEGRANTES:

Crespo
INTROODUCCI
ÓN
¿QUE ES?

Lenguaje de programación Haskell. Es un


lenguaje de programación puramente
funcional, de propósito general. El nombre
proviene del matemático y lógico
estadounidense Haskell Curry.
HISTORIA

A principios del 2006 comenzó el proceso de d


efinición de un sucesor del estándar deHaskell
98, llamado informalmente Haskell′ ("Haskell P
rime")

A finales de 1997, en el estándar conocido como


Haskell 98

La primera versión de Haskell ("Haskell 1.0") se


definió en 1990
CARACTERÍSTI
CAS
CARACTERÍSTICAS

Evaluación perezosa
Esto significa que no se evalúa nada mientras no sea necesario. Así,
por ejemplo, se puede definir una lista infinita de primos sin caer en
un cálculo infinito que bloquea la máquina.

Una cuestión de tamaño


Los lenguajes funcionales son más intuitivos y ofrecen más formas y
formas más fáciles de hacer las cosas, y como resultado los
programas funcionales tienden a ser más cortos

La ausencia de efectos colaterales


Pero la pureza de esta idea va más allá de las funciones, en un
lenguaje funcional puro (como Haskell) las variables no modifican su
valor, son inmutables.
CARACTERÍSTICAS

Funciones de orden superior


Permite que las funciones sean tratadas como valores de primera clase,
permitiendo que sean almacenadas en estructuras de datos, que sean
pasadas como argumentos de funciones y que sean devueltas como
resultados errores.

Sistemas de inferencia de tipos y polimorfismo


El programador no está obligado a declarar el tipo de las expresiones, El
compilador contiene un algoritmo que infiere el tipo de las expresiones, Si el
programador declara el tipo de alguna expresión, el sistema chequea que el
tipo declarado coincide con el tipo inferido.

Modelo Funcional
Tiene como objetivo la utilización de funciones matemáticas puras sin
efectos laterales y, por tanto, sin asignaciones destructivas.
CARACTERÍSTICAS

Un tipo duro
fuertemente tipado, lo que significa que es imposible
convertir, si no es explícitamente con funciones de
conversión, entre tipos de datos distintos, por lo que no
podremos convertir sin querer un tipo Double a un tipo Int, o
seguir un puntero nulo, lo que conlleva también tener
menos errores

Elegante
Aun cuando no signifique mucho en términos de estabilidad
o rendimiento, es la elegancia, lo que significa en pocas
palabras que las cosas funcionan como te lo imaginas y
además siguen un criterio que se agrada nuestros conceptos
estéticos de belleza.
CONCEPTOS BÁSICOS

Conceptos básicos a conocer de Haskell


son:

• Sistema potente de tipos Alonzo Jiménez,


• Listas por comprensión 1998
• Funciones recursivas
• Funciones de orden superior
• Razonamiento sobre programas
• Evaluación perezosa
• Efectos monódicos
CONCEPTOS BÁSICOS

Algunas cosas básicas de saber serian:


• Bool (Valores lógicos)
• Char (Caracteres) Peña Mari, 1995
• String (Cadena de caracteres)
• Int (Enteros de precisión fija)
• Integer (Enteros de precisión arbitraria)
• Float (Reales de precisión arbitraria)
• Double (Reales de precisión doble)
ENTORNOS DE
DESARROLLO

• Open surce
• IntelliJ plugin for Haskell
• EclipseFP plugin for Eclipse IDE
• Colorer plugin for Eclipse IDE
• Leksah
• KDevelop
• Vim
• Emacs
• Atom
TIPOS
SIMPLES PREDEFINIDOS

FLOAT

BOOL CHAR
INTEGE
R

INT TUPLA
S
DOUBL
E
¿Por qué usar Haskell?

“Los lenguajes funcionales son idóneos para escribir


especificaciones que actualmente son ejecutadas (y, por lo
tanto, probadas y depuradas). Tal especificación es, por
tanto, el primer prototipo del programa final. Los programas
funcionales son también relativamente fáciles de mantener
porque el código es más corto, más claro y el control
riguroso de los efectos laterales elimina gran cantidad de
interacciones imprevistas.”
EJEMPLOS
RECOLECCION
DE DATOS

• Hipótesis
• Objetivos
• Resultados
• Conclusion
es
HIPÓTESIS

• La investigación presente hará ver que el Lenguaje de


programación funcional Haskell de un mejor
rendimiento entre los docentes y estudiantes de la
Carrera de Ingeniería de Sistemas, esto facilitará el
trabajo de los programadores y de los nuevos
programadores.
• También tiene que hacer que el lenguaje de
programación funcional Haskell sea conocido en la
universidad y tenga mayor aceptación por parte de la
comunidad estudiantil.
OBJETIVOS

Proponer el uso del lenguaje de


OBJETIVO programación Haskell en la carrera de
GENERAL Ingeniería de Sistemas.

• Investigar y aprender las características del lenguaje


de programación Haskell.
OBJETIVOS • Describir el uso funcional del lenguaje de
ESPECÍFIC programación Haskell.
• Identificar la opinión de los estudiantes de la carrera
OS de Ingeniería de Sistemas.
• Determinar la utilidad del lenguaje de programación
Haskell para los estudiantes de Ingeniería de
Sistemas.
RECOLECCION DE DATOS

• 35 Entrevistas
• 70 Encuestas
MÉTODO

• Estudiantes de
Ingeniería de
POBLACIÓ Sistemas de la
N UMSS
REPRESENTACIÓN
GRÁFICA

¿En que semestre estas?

16%
37%

47%

1-3 Semestre 4-6 Semestre 7-9 Semestre


REPRESENTACIÓN
GRÁFICA

¿Qué piensas que es un lenguaje funcional?

21%

10%
69%

Un lenguaje de programacion Un lenguaje de comunicación


Un lenguaje codificado
REPRESENTACIÓN
GRÁFICA

¿Cuál es la característica que diferencia a


un lenguaje funcional?

26%
46%

28%

Que esta basado en funciones matemeticas.


Que cumple todo tipo de funciones.
El nombre.
REPRESENTACIÓN
GRÁFICA

¿Alguna vez has usado “Haskell”?

19%

81%

Si No
REPRESENTACIÓN
GRÁFICA

¿Cuál es el objetivo de un lenguaje


funcional como “Haskell”?

38% 36%

26%

Realizar calculos matematicos Resolver problemas matematicos


Resolver problemas
REPRESENTACIÓN
GRÁFICA
¿Crees que es beneficioso utilizar el
lenguaje Haskell?

33%

67%

Si No
REPRESENTACIÓN
GRÁFICA

¿Crees que este lenguaje es útil?

26%

74%

Si No
REPRESENTACIÓN
GRÁFICA

¿Conoces las características del lenguaje


de programación “Haskell”?

24%

76%

Si No
REPRESENTACIÓN
GRÁFICA

¿Crees que el lenguaje “Haskell” tiene


más ventajas o desventajas?

33%

67%

Mas ventajas Mas desventajas


CONCLUSIONES

Haskell es un lenguaje que por las características que


presenta, estudiantes de primer a quinto semestre lo ven
como una forma de expandir su semántica en lenguajes
que lo componen, creen que debería de aprenderse en
los primeros semestres. En cambio los estudiantes de
sexto a noveno semestre los vieron como una forma de
complementar sus conocimientos y creen que deberían
de implementarlo a media carrera.
RECOMENDACIONES

• Como consecuencia de la investigación lo que creemos


más adecuado es que los directores de la carrera
deberían considerar el hecho de agregar este lenguaje
a la Carrera de Ingeniería de Sistemas, de preferencia
sin profundizarlo, solo viéndolo de pasada.
BIBLIOGRAFÍA
• Albani, F. (2006). Teoría de Lenguajes Haskell.
• Alonzo Jiménez, J. A. (1998). Introducción al lenguaje
Haskell . Oviedo, Uniovi.
• Castillo, J. J. (2011). Paradigmas de programación, Haskell
un
• lenguaje de programación funcional UTN. Córdova.
• Jiménez, J. A. (2010). Temas de “Programación funcional”.
• Labra G., J. E. (1998). Introducción al lenguaje haskell
Oviedo. Uniovi.
• Maldonado, J., Romina , D., & Delaware , B. (2014).
Estructtura de los lenguajes.
• Peña Marí, R. (1995). La programación funcional en
Haskell. Madrid.

También podría gustarte