Vous êtes sur la page 1sur 9

INSTITUTO TECNOLOGICO DE ACAPULCO

Materia: Programacin Lgica y Funcional

Profesor: Bedolla Solano Silvestre


UNIDAD 2
DESARROLLO DE ACTIVIDADES
Integrantes del Equipo:

Maciel Valentn Cesar Argenis


Rendn Adame German
12320819
Romn Nez Cinthia
12320828
Rico Suastegui Jess Eduardo
12320821
Jimnez Jimnez Itzayana Monserrat
Rodrguez Valencia Servn Andrs

EQUPO # 4
Hora: 15:00-16:00
Fecha de Entrega: 09/Septiembre/2015
AGOSTO-DICIEMBRE 2015

12320771

12320759
12320827

1. Tabla donde se describan los conceptos bsicos de la programacin


funcional; adems tres programas como ejemplos con sus cdigos.

1. Reporte con las caractersticas de la programacin funcional, donde explique


tres ejemplos con sus cdigos, entornos, etc.

La programacin funcional es un paradigma de programacin declarativa basado


en la utilizacin de funciones matemticas. Sus orgenes provienen del Clculo
Lambda, una teora matemtica elaborada por Alonzo Church como apoyo a sus
estudios sobre computabilidad. Un lenguaje funcional es a grandes rasgos, un
azcar
sintctico
del
Clculo
Lambda.
Los programas escritos en un lenguaje funcional estn constituidos nicamente
por definiciones de funciones, entendiendo stas no como subprogramas clsicos
de un lenguaje imperativo, sino como funciones puramente matemticas.
La programacin lgica consiste en la aplicacin del corpus de conocimiento sobre
lgica para el diseo de lenguajes de programacin. La programacin lgica
comprende
dos
paradigmas
de
programacin:
La
programacin
declarativa
La
programacin
funcional.
La programacin declarativa gira en torno al concepto de predicado, o relacin
entre
elementos.
La programacin funcional se basa en el concepto de funcin (que no es ms que
una
evolucin
de
los
predicados),
de
corte
ms
matemtico.
Es una subrutina o subprograma (tambin llamada procedimiento, funcin o
rutina), como idea general, se presenta como un sub-algoritmo que forma parte del
algoritmo principal, el cual permite resolver una tarea especfica.
Los lenguajes funcionales se basan en el concepto de funcin, por tanto, el objeto
bsico y fundamental que manejamos son las funciones, que se pueden
considerar las principales estructuras de control en este tipo de lenguajes.
La base fundamental para comprender este tipo de lenguajes consiste en ver los
programas y aplicaciones expresados a travs de funciones y aplicacin entre
funciones.
Las caractersticas fundamentales de estos lenguajes se exponen a continuacin:

Utilizacin de funciones sobre elementos de primer orden.

Utilizacin de funciones polimrficas, es decir, aquellas cuyo tipo devuelto


depende del tipo de los argumentos.

Utilizacin de funciones de orden superior, es decir, aquellas funciones que


aceptan en su lista de argumentos otras funciones.

Evaluacin perezosa (o lazy), es decir, las expresiones no se evalan hasta


que no se necesitan los resultados. Es, justamente, lo contrario de la
evaluacin eager (ansiosa), donde la evaluacin de los argumentos se

realiza antes de aplicar la funcin. La evaluacin perezosa nos proporciona


la ventaja de trabajar con listas potencialmente infinitas.

Existencia de un sistema de tipos fuerte.

Uso del Patter Matching: comprobacin de patrones.

Vistas las caractersticas fundamentales de los lenguajes funcionales, estos


pueden clasificarse en dos tipos:

Puros: aquellos en los que slo podemos aplicar funciones. Estas son las
nicas estructuras de control. Posee evaluacin perezosa.

Impuros: aquellos que poseen evaluacin ansiosa.

2. Ensayo sobre un lenguaje de programacin funcional

La programacin funcional, o mejor dicho, los lenguajes de programacin


funcionales, son aquellos lenguajes donde las variables no tienen estado no
hay cambios en stas a lo largo del tiempo y son inmutables no pueden
cambiarse los valores a lo largo de la ejecucin. Adems los programas se
estructuran componiendo expresiones que se evalan como funciones. Dentro de
los lenguajes funcionales tenemos Lisp, Scheme, Clojure, Haskell, OCaml y
Standard ML, entre otros. Estos lenguajes estn diversidad de tipificacin, donde
se encuentran lenguajes dinmicos, estticos y estticos fuertes.
En los lenguajes funcionales las instrucciones cclicas como for, while y dowhile no existen. Todo se procesa usando recursividad y funciones de alto orden.
Esto se debe a los fundamentos matemticos de la mayora de los lenguajes
funcionales, principalmente con bases en el sistema formal diseado por Alonzo
Church para definir cmputos y estudiar las aplicacionesde las funciones llamado
Clculo Lambda.

VENTAJAS
Ofrecen un mayor nivel de abstraccin. Y pueden resultar ms fciles de
usar que los lenguajes lgicos, aunque, evidentemente, la facilidad de uso
depende de la aplicacin y del programador, en particular.
Posee un sistema de tipos fuerte, de forma que el cdigo est ms
protegido de errores. La responsabilidad del programador se ve reducida
en este aspecto.

Existen funciones de orden superior que permiten manejar argumentos de


tipo funcin.
Pueden trabajar con datos potencialmente infinitos, ya que se aplican
tcnicas de evaluacin perezosa en los lenguajes funcionales puros.
Los lenguajes funcionales son muy adecuados para realizar programas
donde se exija un alto grado de paralelismo. Facilitan el trabajo en
mquinas paralelas.
Los errores se pueden depurar fcilmente. Esto constituye una ventaja
frente a los lenguajes lgicos que hemos visto, cuyo seguimiento puede
resultar bastante complicado.
Es muy fcil pasar de la especificacin del problema a la implementacin,
debido al alto grado de abstraccin que ofrecen.
Transparencia referencial. Este concepto es clave en los leguajes
funcionales. Una expresin siempre proporciona el mismo resultado, es
decir, es evaluada, siempre, del mismo modo. Esto no es cierto en los
lenguajes imperativos donde pueden existir efectos laterales. Gracias a la
transparencia referencial podemos usar la operacin de sustitucin: la
aplicacin de una funcin se puede sustituir por su definicin. Por
ejemplo, par(doble(2*5))=par(doble 10)=par(2*10)=par(20)=true.
LIMITACIONES
Falta de estandarizacin.
Las implementaciones de los lenguajes que existen no son demasiado
buenas.
El rendimiento de los programas puede resultar bajo.
Las tcnicas usadas en estos lenguajes para el almacenamiento y manejo
de la memoria no es demasiado adecuado ya que requieren mucha
memoria

Programacin Funcional

Programacin Representativa

Caractersticas
Los programas escritos en un lenguaje
funcional estn constituidos nicamente por
definiciones de funciones
La no existencia de asignaciones de
variables y la falta de construcciones
estructuradas como la secuencia o la iteracin
Existen dos grandes categoras de
lenguajes funcionales: los funcionales puros y
los hbridos
En contraste, los lenguajes funcionales
puros tienen una mayor potencia expresiva,
conservando a la vez su transparencia
referencial.
Ventajas
Ausencia de efectos colaterales
Proceso
de depuracin menos
problemtico
Pruebas de unidades ms confiables
Mayor facilidad para la ejecucin
concurrente
Desventajas
Falta de estandarizacin
Bajo rendimiento de los programas

3. Tabla comparativa de la programacin funcional y programacin representativa,


mencione ventajas y desventajas

http://calabazoidee.blogspot.mx/2014/05/unidad-2.html

http://www.uhu.es/nieves.pavon/pprogramacion/funcional/tema1f.html

Vous aimerez peut-être aussi