Anda di halaman 1dari 10

Presentan: Enrique Bautista Azuara Elmer Hdez.

Bautista Jos Luis vite Prez

Lic. Jacobo Antonio Cruz Programacin Lgica y Funcional 7 Semestre Ingeniera en Sistemas Computacionales

Los muchos lenguajes de programacin existentes se pueden clasificar segn el estilo de programacin que soportan. Los principales estilos (tambin llamados paradigmas) de programacin son el imperativo, el orientado a objetos y el declarativo. Generalmente la POO aparece en lenguajes de base imperativa, enriquecidos con las nociones de objeto, clase y herencia.

Pascal, Ada, C,C++,Java y muchos otros lenguajes de programacin son imperativos. Un programa consiste en una secuencia de ordenes que se ejecutan una tras otra, modificando los valores de variables por medio de asignaciones. Por ejemplo, la asignacin x:= x+1 incrementa en 1 el valor de la variable entera x. Adems utilizan funciones.

Los programas imperativos contienen asignaciones y otras construcciones que controlan el orden de ejecucin, tales como bucles y llamadas a procedimientos. En un lenguaje funcional, un programa contiene nicamente definiciones de funciones. Concretamente, en el lenguaje funcional Haskell las funciones se definen por medio de ecuaciones, declarando los tipos de sus parmetros y de su resultado.

Aunque la Programacin funcional no es tan popular como otros estilos de programacin, la experiencia ha demostrado sus utilidad para diversas aplicaciones. El uso de lenguajes de la familia del LISP es tradicional en aplicaciones relacionadas con la Inteligencia Artificial. Muchos lenguajes funcionales, en particular Haskell, estn diseados para soportar tanto el calculo simblico como el numrico.

La programacin funcional empez a investigarse en la dcada de 1960. Los principales LF existentes hoy en da pueden agruparse en 3 familias. FAMILIA LISP: Los lenguajes de esta familia admiten asignacin, y no tienen disciplina de tipos. FAMILIA ML: Los Lenguajes de esta familia admiten asignacin. Tienen disciplina de tipos y polimorfismo, pero no usan evaluacin perezosa. FAMILIA HASKELL: Los lenguajes de esta familia son puros, es decir, no admiten asignacin destructiva. Adems, tienen disciplina de tipos, polimorfismo y evaluacin perezosa.

Los tipos se infieren, es decir se comprueban, de forma esttica, en tiempo de compilacin.

En

los lenguajes de programacin con disciplina de tipos, cada tipo representa una coleccin de valores (datos) similares. Una funcin cuyo tipo sea A1 -> An -> R espera n parmetros con tipos A1, . An y devuelve un resultado de tipo R. El conocer los tipos de las funciones ayuda a documentar los programas y a evitar errores en tiempo de ejecucin.

Haskell y otros lenguajes funcionales utilizan el sistema de tipos de Milner, que tiene dos caractersticas fundamentales: Disciplina esttica de tipos: Los programas bien tipados se pueden conocer en tiempo de compilacin. Un programa bien tipado se puede utilizar sin efectuar comprobaciones de tipo en tiempo de ejecucin, estando garantizado que no se producirn errores de tipo durante el computo. Polimorfismo: Permite que una misma funcin se pueda aplicar a parmetros de diferentes tipos, dependiendo del contexto en el que la funcin se utilice.
Pagina 67