Академический Документы
Профессиональный Документы
Культура Документы
TRUJILLO
SEPTIEMBRE, 2018
1
2
INDICE
1. INTRODUCCION..................................................................................................................... 5
2. RESUMEN ................................................................................................................................. 7
3. ABSTRACT ............................................................................................................................... 7
4. MARCO TEORICO ................................................................................................................. 8
4.1. LENGUAJE DE PROGRAMACION HASKELL ......................................................... 9
Características: ........................................................................................................................ 9
4.2. LENGUAJE DE PROGRAMACION JAVA................................................................ 10
Características: ...................................................................................................................... 11
4.3. ESTUDIO COMPARATIVO ......................................................................................... 12
4.3.1. ANALISIS DE CODIGO .......................................................................................... 12
Java ...................................................................................................................................... 12
Haskell ................................................................................................................................ 13
4.3.2. ESCRITURA DE CODIGO ...................................................................................... 13
FUNCION MATEMATICA ................................................................................................. 14
Lenguaje de programación JAVA .................................................................................. 14
Lenguaje de programación HASKELL ......................................................................... 15
MANEJO DE CARACTERES ............................................................................................ 16
Lenguaje de programación JAVA .................................................................................. 16
Lenguaje de programación HASKELL ......................................................................... 17
5. CONCLUSIONES ................................................................................................................... 18
6. TRABAJOS FUTUROS ......................................................................................................... 19
7. BIBLIOGRAFIA ..................................................................................................................... 19
3
4
1. INTRODUCCION
5
características de los lenguajes en ciclos cortos e incrementales,
proporcionando y siguiendo la lógica de negocio con acceso
seguro, persistencia de datos, comportamiento transaccional, y
otras características avanzadas.
Actualmente, se han documentado más de 2500 lenguajes de
programación diferentes y aún se siguen diseñando otros,
debido a que las necesidades de desarrollo de software
aumentan, cambian, se combinan o mueren.
En el presente trabajo, se compararán los lenguajes de
programación representativos de los paradigmas mencionados:
Java, con respecto al lenguaje de programación Haskell.
Haskell ha sido desarrollado y mantenido por una comunidad
que tiene como miembros a estudiosos de posgrado de las más
prestigiosas universidades del mundo, con la misión de superar
errores y mejorar el diseño de lenguajes de programación
convencionales, como, por ejemplo, presenta soporte para
genéricos, que permite al programador utilizar librerías y
reutilizar funciones que se aplican para cualquier tipo de datos;
consecuencia de ello es la escritura de un programa simple y
conciso. Otra fortaleza de Haskell está reflejada en su sistema
de tipos, el cual es fuertemente tipificado, que conlleva a la
confiabilidad; y la inferencia de tipos, que permite que un
programa se pueda escribir sin declarar los tipos de las
variables.
6
2. RESUMEN
3. ABSTRACT
7
4. MARCO TEORICO
Ilustración 1: Lenguajes de programación que aparecen a lo largo del tiempo a partir de los años 50 y su diferenciación a
través de los diferentes paradigmas de programación.
8
4.1. LENGUAJE DE PROGRAMACION
HASKELL
Haskell es un lenguaje funcional puro, de propósito general,
que incluye muchas de las últimas innovaciones en el
desarrollo de los lenguajes de programación funcional, como
son las funciones de orden superior, evaluación perezosa, tipos
polimórficos estáticos, tipos definidos por el usuario, encaje por
patrones, y definiciones de listas por comprensión.
Se crearon funciones predeterminadas de manera que el
programador pueda utilizar menos código y por ello asignaron
nombres a las funciones de acuerdo al rol que desempeña para
que puedan ser empleadas de manera intuitiva.
Características:
Haskell emplea características de un lenguaje funcional como
la evaluación perezosa, la cual realiza operaciones cuando se
le indique, no antes, ni después.
9
4.2. LENGUAJE DE PROGRAMACION
JAVA
10
Características:
Amplio soporte de fabricantes software, porque los programas
Java no están vinculados a un determinado sistema operativo,
tanto para el caso de entornos de desarrollo o los servidores de
aplicaciones.
Es un lenguaje totalmente orientado a objetos, todos los
conceptos en los que se apoya esta técnica, encapsulación,
herencia, polimorfismo, entre otros; están presentes en Java.
Los programas en Java están organizados en clases, en
archivos de texto con archivo .java. Cada archivo de código
fuente.java puede contener una o varias clases, aunque lo
normal es que haya un archivo por clase.
Aplicaciones multiplataforma, una vez que se ha compilado el
programa, éste puede ser ejecutado en diversos sistemas
operativos sin necesidad de realizar cambios en el código
fuente, sin que haya que volver a compilarse el programa.
Esta independencia se logra con el concepto de máquina
virtual.
11
4.3. ESTUDIO COMPARATIVO
4.3.1.ANALISIS DE CODIGO
Para probar la comprensión de los lenguajes de programación Java
y Haskell, se presenta un mismo programa codificado en los 2
lenguajes de programación.
El programa que calcula el BMI (Body Mass Index o índice de masa
corporal de una persona)
Java
12
Haskell
4.3.2.ESCRITURA DE CODIGO
13
cubos de la misma manera, la variación en líneas y caracteres
empleados, se da con el desarrollo en Haskell.
FUNCION MATEMATICA
14
Lenguaje de programación HASKELL
15
MANEJO DE CARACTERES
Lenguaje de programación JAVA
16
mayúsculas para posteriormente invertirla. Luego se declara una
variable “r” del tipo “BufferedReader” el cual es una clase que
permite leer caracteres de un flujo de datos (consola, un archivo de
texto plano, etc.).
Lenguaje de programación HASKELL
17
5. CONCLUSIONES
18
de tiempo de procesamiento), que en el caso de Java es muy
superior ya que está determinada por la cantidad de objetos creados
y llamadas a métodos generados por el algoritmo, dada la
naturaleza recursiva de la mayoría de los métodos utilizados. A
diferencia de Haskell que hace un uso intensivo de funciones
especializadas en el procesamiento de listas, propio de los lenguajes
funcionales.
6. TRABAJOS FUTUROS
7. BIBLIOGRAFIA
Chiroque, Julita Inca. 2012. Estudio del lenguaje de programación Haskell, ventajas y desventajas.
lima : s.n., 2012.
Hoyos, J. y Puertas, A. 2015. La programación funcional y las arquitecturas multicore : Estado del
Arte. s.l. : Ingenio, 2015.
Washburn, Geoffrey Alan. 2007. Principia Narcissus: How to Avoid Being Caught by Your
Reflection. . University of Pennsylvania. : s.n., 2007.
19