You are on page 1of 13

LENGUAJE DE GENERACION

PRIMERA GENERACION:
Empez en los aos 1940-1950 en este lenguaje se utilizaba cdigos binarios, las primeras
computadoras solo utilizaban informacin numrica digital mediante el cdigo o alfabeto digital, y los
primeros programas digitales se escribieron en ese tipo de cdigo, denominado cdigo de mquina
basado en dos dgitos 0 y 1 (binario), por ser entendible directamente por la computadora se le llam
lenguaje mquina a la primera generacin considerando que cada modelo de ordenador tena su propio
cdigo. El lenguaje mquina es el programa que entiende directamente la computadora, as con este
lenguaje forma cadenas binarias con las que se elaboran las instrucciones que la CPU del ordenador
procesa.
Este lenguaje dej de utilizarse por la complejidad y facilidad para cometer errores al usarlo.
SEGUNDA GENERACIN:
Los lenguajes simblicos, asimismo propios de la mquina, simplifican la escritura de las instrucciones
y las hacen ms legibles.
El lenguaje simblico por excelencia es el basado en los significantes acsticos, y para que una especie
tenga la capacidad de articular sonidos discretos, se requieren ms innovaciones morfolgicas, algunas
de ellas muy probablemente anteriores al desarrollo de un cerebro lo suficientemente complejo como
para pensar de modo simblico.
En efecto, observemos la orofaringe y la laringe: en los mamferos, a excepcin del humano, la laringe se
encuentra en la parte alta de la garganta, de modo que la epiglotis cierra la trquea de un modo estanco
al beber e ingerir comida. En cambio, en Homo sapiens, la laringe se ubica ms abajo, lo que permite a
las cuerdas vocales la produccin de sonidos ms claramente diferenciados y variados, pero al no poder
ocluir completamente la epiglotis, la respiracin y la ingesta deben alternarse para que el sujeto no se
ahogue. El acortamiento del prognatismo que se compensa con una elevacin de la bveda palatina
facilitan el lenguaje oral. Otro elemento de relevante importancia es la posicin y estructura del hioides,
su gracilidad y motilidad permitirn un lenguaje oral lo suficientemente articulado.
Adems de todas las condiciones recin mencionadas, imprescindibles para la aparicin de un lenguaje
simblico, se debe hacer mencin de la aparicin del gen FOXP2 que resulta bsico para la posibilidad
de tal lenguaje y del pensamiento simblico.

TERCERA GENERACIN:
Se desarrolla entre los aos 60.sustituye las introducciones simblicas por cdigos independientes de la
mquina.
Tiene tres categoras:
.Lenguaje orientado a procedimientos en los cuales hacen nfasis
.Lenguaje orientado a problemas el cual resuelve sin detalle de la programacin
.Lenguaje orientado al nfasis del objeto de la accin
Los programas de la tercera generacin son capaces de soportar el uso de estructuras de programas
especficas para ramificaciones y flujo de programas
.A su vez se clasifican -Cientficos (Por ejemplo: FORTAN)-Empresarial (Por ejemplo: COBOL)-y de uso
general o mltiple (Por ejemplo: BASIC-C-C+-C#-JAVA PASCAL)
DESVENENTAJAS
.Apenas son porttiles y normalmente son menos fciles de mantener que los lenguajes de propsito
normal.
VENTAJAS
Hacen nfasis los procedimientos o las matemticas implcitas adems estn diseadas para resolver un
conjunto particular de problemas y no requieren el detalle de la programacin que los lenguajes
orientados a procedimientos
Se desarrolla entre los aos 60.sustituye las introducciones simblicas por cdigos independientes de la
mquina.
Tiene tres categoras:
.Lenguaje orientado a procedimientos en los cuales hacen nfasis
.Lenguaje orientado a problemas el cual resuelve sin detalle de la programacin
.Lenguaje orientado al nfasis del objeto de la accin
Los programas de la tercera generacin son capaces de soportar el uso de estructuras de programas
especficas para ramificaciones y flujo de programas
.A su vez se clasifican -Cientficos (Por ejemplo: FORTAN)-Empresarial(Por ejemplo: COBOL)-y de uso
general o mltiple (Por ejemplo: BASIC-C-C+-C#-JAVA PASCAL)
DESVENENTAJAS
.Apenas son porttiles y normalmente son menos fciles de mantener que los lenguajes de propsito
normal.
VENTAJAS
Hacen nfasis los procedimientos o las matemticas implcitas adems estn diseadas para resolver un
conjunto particular de problemas y no requieren el detalle de la programacin que los lenguajes
orientados a procedimientos
CUARTA GENERACIN: La cuarta generacin de computadoras comprende desde 1971 hasta 1981 y la
principal caracterstica de esta generacin es la creacin del microprocesador.
Un microprocesador es un conjunto de circuitos integrados en un solo componente, capaz de realizar
todas las funciones de una computadora. Ademas la cuarta generacin incorpora lenguajes y
metodologas de ms alto nivel, con lo cual, empleando sentencias simples, se generan instrucciones
que, en los lenguajes 3GL, hubiesen sido ms complicadas. Esto tambin disminuye la posibilidad de
errores al programar.

ventajas
La idea del avance de la programacin es que el programador se concentre en la resolucin del problema
y no en las complicaciones inherentes al lenguaje. los lenguajes de cuarta generacin son diseados
para reducir el esfuerzo en la programacin, adems de los tiempos y costos del desarrollo de software.
El reemplazo de las memorias con ncleos magnticos, por las de chips de silicio y la colocacin de
muchos ms componentes en un Chip: producto de la microminiaturizacin de los circuitos electrnicos.
La posibilidad de generar grficos a grandes velocidades, lo cual permite utilizar las interfaces grficas
de usuario (Graphic User Interface, GUI), que son pantallas con ventanas, iconos (figuras) y mens
desplegables que facilitan las tareas de comunicacin entre el usuario y la computadora, tales como la
seleccin de comandos del sistema operativo para realizar operaciones de copiado o formato con una
simple pulsacin de cualquier botn del ratn (mouse) sobre uno de los iconos o mens.

QUINTA GENERACIN:
Lenguaje de inteligencia artificial se desarroll a principios de los ochentas.
Estos lenguajes de alto nivel usaran inteligencia artificial para crear software, hacindolos sumamente
difciles de desarrollar.
Japn lanz en 1983 el llamado "programa de la quinta generacin de computadoras", con los objetivos
explcitos de producir mquinas con innovaciones reales en los criterios mencionados. Y en los Estados
Unidos ya est en actividad un programa en desarrollo que persigue objetivos semejantes, que pueden
resumirse de la siguiente manera:
-Procesamiento en paralelo mediante arquitecturas y diseos especiales y circuitos de gran velocidad.
-Manejo de lenguaje natural y sistemas de inteligencia artificial.
A pesar de quererse desarrollar este tipo de lenguaje es un problema de debate en la comunidad de la
programacin porque algunos programadores no pueden estar de acuerdo que existan.
PARADIGMAS DE PROGRAMACIN
QU LES PARECE DIVIDIR EL TRABAJO EN:
PARADIGMAS DE LA PROGRAMACIN (CONCEPTO); EL IMPERATIVO;EL FUNCIONAL Y EL
ORIENTADA A OBJETOS?.
DE DOS A DOS
4 TEMAS PARA LOS 8

1- CONCEPTO: HUGO Y JOSE


2_ ORIENTADA A OBJETOS : ROBERTO y Limachi
3_ IMPERATIVA :LUIS Y ADRIANA
4_ FUNCIONAL : ALBERTO Y ERICK

C
OMENTEN:
LUIS: LOS QUE HICIERON EL CONCEPTO PAGAN EL FOLDER Y LA IMPRESIN (COMENTEN SI
ESTN DE ACUERDO) NO SE NECESITA MUCHO CONCEPTO A LOS MAS SERAN 10 LNEAS Y
LOS QUE LES TOC IMPERATIVO,FUNCIONAL Y ORIENTADA A OBJETOS QUE CADA UNO
TENGA SU RESPECTIVA IMAGENPROPONGAN CADA UNO SU IMAGEN EN TOTAL 2 CADA
TEMA Y DE AH ESCOGEN 1 PARA SU TEMA RESPECTIVO.

NOMBRES,SUS TRABAJOS Y BIBLIOGRAFA RESPECTIVA:

HUGO:
Un paradigma de programacin es una propuesta tecnolgica que es adoptada por una comunidad de
programadores cuyo ncleo central es incuestionable en cuanto a que unvocamente trata de resolver uno
o varios problemas claramente delimitados. La resolucin de estos problemas debe suponer
consecuentemente un avance significativo en al menos un parmetro que afecte a la ingeniera de software.
Tiene una estrecha relacin con la formalizacin de determinados lenguajes en su momento de definicin.
Un paradigma de programacin est delimitado en el tiempo en cuanto a aceptacin y uso ya que nuevos
paradigmas aportan nuevas o mejores soluciones que la sustituyen parcial o totalmente.
Ejemplo:
Probablemente el paradigma de programacin que actualmente es el ms usado a todos los niveles es la
orientacin a objeto. El nucleo central de este paradigma es la unin de datos y procesamiento en una
entidad llamada "objeto", relacionable a su vez con otras entidades "objeto".
Tradicionalmente datos y procesamiento se han separado en areas diferente del diseo y la implementacin
de software. Esto provoc que grandes desarrollos tuvieran problemas de fiabilidad, mantenimiento,
adaptacin a los cambios y escalabilidad. Con la orientacin a objetos y caractersticas como el
encapsulado, polimorfismo o la herencia se permiti un avance significativo en el desarrollo de software a
cualquier escala de produccin.
La orientacin a objeto parece estar ligado en sus orgenes con lenguajes como Lisp y Simula aunque el
primero que acuo el titulo de programacin orientada a objetos fue Smaltalk
http://www.taringa.net/posts/ciencia-educacion/9145179/Paradigma-de-Programacion.html

LUIS:

PARADIGMA IMPERATIVO

PARADIGMA IMPERATIVO

1.Uno de los paradigmas ms representativos de la programacin y de hecho el primer paradigma


formalmente aceptado es el imperativo. Imperar significa mandar, ordenar, y eso es exactamente lo que
hacemos al programar.
2.Apareci en los 50 con los primeros lenguajes de programacin, tambin es llamado procedimental o
algortmico, esta se rige por dos conceptos bsicos para la construccin de programas: la estructura y el
mdulo, de ah se habla de programacin estructurada y de programacin modular.
La programacin en el paradigma imperativo consiste en determinar qu datos son requeridos para el
clculo, asociar a estos direcciones de memoria y efectuar, paso a paso, una secuencia de
transformaciones en los datos almacenados de forma tal que el estado final represente el resultado
correcto.
3. Origen de la Programacin Imperativa fue en el ao de 1945 cuando el matemtico Jhon Von Neumann
fascinado por las posibilidades de ENIAC (Electronic Numerical Integrator and Computer) elabor un
estudio que demostr que una computadora poda tener una estructura fsica muy simple y fija, y aun as
ser capaz de ejecutar cualquier tipo de programa mediante un control correcto, sin la necesidad de
modificar la computadora para esto. A partir de esta innovacin de Von Neunmann, que en conjunto se
conoce como la tcnica de programa almacenado es que se inicia la era de los lenguajes de programacin.
4. La programacin imperativa se basa en tres conceptos importantes:
Celda de memoria variable: celdas de memoria donde se almacenan valores que son referenciados y
modificados durante la ejecucin del programa, a las que se suele asignar un nombre o identificador.
Operaciones de asignacin: son las que permiten asociar los datos o valores a la posicin de la memoria
o variable que los contiene.
Operaciones de repeticin: normalmente un programa iterativo realiza su tarea ejecutando una y otra vez
una secuencia de pasos elementales
5. VENTAJAS Y DESVENTAJAS DE LA PROGRAMACIN IMPERATIVA:
VENTAJAS:
Su relativa simplicidad y facilidad de implementacin de los compiladores e intrpretes
La capacidad de reutilizar el mismo cdigo en diferentes lugares en el programa sin copiarlo.
Una forma fcil seguir la pista de flujo del programa.
La capacidad de ser muy modular o estructurado.
Necesita menos memoria solamente.
DESVENTAJAS:
Los datos son expuestos a la totalidad del programa, as que no hay seguridad para los datos.
Dificultad para relacionarse con los objetos del mundo real.
Difcil crear nuevos tipos de datos reduce la extensibilidad.
Se da importancia a la operacin de datos en lugar de los datos mismos
6. CAMPOS DE APLICACIN: Los lenguajes imperativos pueden resolver prcticamente cualquier problema
en cualquier rea, desde simples hasta complejos clculos matemticos.
Se pueden hacer cualquier tipo de aplicaciones:
De nminas, de control areo, de inteligencia artificial, de control de dosis de medicamentos, para cajeros
automticos, para naves espaciales, para dispositivos mviles, aplicaciones en lnea y tiempo real.
Hay que recordar que fue el primer paradigma que le vino a poner orden a la manera de hacer programas, y
por tanto su filosofa marc la lnea a seguir para resolver problemas de la vida cotidiana.

BIBLIOGRAFIA:
http://www.taringa.net/posts/ciencia-educacion/9145179/Paradigma-de-Programacion.html
http://es.slideshare.net/JFREDYOLAYARAMOS/paradigma-imperativo-39302522
http://www.genbetadev.com/paradigmas-de-programacion/diferencias-entre-paradigmas-de-programacion

(CREO QUE ESTOS EJEMPLOS HAY QUE DEJARLOS AL LTIMO PORQUE APLICAN A VARIOS TIPOS DE
PARADIGMAS)

EJEMPLOS DE PARADIGMAS DE PROGRAMACIN:


Scala: Imperativo, orientado a objetos, funcional, genrico y concurrente.
Erlang: Funcional, concurrente y distribuido.
Perl: Imperativo, orientado a objetos y funcional.
PHP: Imperativo, orientado a objetos, funcional y reflexivo.

JavaScript: Imperativo, orientado a objetos (prototipos) y funcional.


Java: Imperativo, orientado a objetos, reflexivo y genrico.
Python y Ruby: Imperativo, orientado a objetos, reflexivo y funcional.
C++: Imperativo, orientado a objetos, funcional y genrico.

C#: Imperativo, orientado a objetos, funcional (lambda), reflexivo y genrico.

ADRIANA:

Paradigma Imperativo
Describe cmo debe realizarse el clculo, no el porqu.
Un cmputo consiste en una serie de sentencias, ejecutadas segn un control de flujo explcito, que
modifican el estado del programa.
Las variables son celdas de memoria que contienen datos (o referencias), pueden ser modificadas, y
representan el estado del programa.
La sentencia principal es la asignacin.
Los paradigmas imperativos describen la programacin como una secuencia instrucciones o comandos que
cambian el estado de un programa. El cdigo mquina en general est basado en el paradigma imperativo. Su
contrario es el paradigma declarativo. En este paradigma se incluye el paradigma procedimental (procedural) entre
otros.
Paradigma Declarativo: No se basa en el cmo se hace algo (cmo se logra un objetivo paso a paso), sino
que describe (declara) cmo es algo. En otras palabras, se enfoca en describir las propiedades de la
solucin buscada, dejando indeterminado el algoritmo (conjunto de instrucciones) usado para encontrar esa
solucin. Es ms complicado de implementar que el paradigma imperativo, tiene desventajas en la
eficiencia, pero ventajas en la solucin de determinados problemas.
Describe qu se debe calcular, sin explicitar el cmo.
No existe un orden de evaluacin prefijado.
Las variables son nombres asociados a definiciones, y una vez instanciadas son inmutables.
No existe sentencia de asignacin.
Palabras clave:
Sentencia: O sentencia de repeticin Como su nombre lo indica permite que un grupo de sentencias sean
ejecutadas un cierto nmero de veCes
Variables: Son estructuras de datos que pueden cambiar de contenido a lo largo de la ejecucin de un programa,
una variable corresponde a un rea reservada de la memoria principal del ordenador pudiendo ser de longitud fija o
variable

**no encontr alguna imagen relacionada con lo nuevo que he puesto pero creo que con la imagen que
pusiste es suficiente**

BIBLIOGRAFA:
-http://ecampus.fca.unam.mx/ebook/imprimibles/informatica/programacion/Unidad_2.pdf
-http://labsys.frc.utn.edu.ar/ppr-2009/Unidad%20I%20-%20POO%20Avanzada/Apunte/Unidad%20I%20-%20P
OO%20Avanzada.pdf

JOSE MANDA CONCEPTO DE PARADIGMAS DE PROGRAMACIN Y UNA IMAGEN DE PARADIGMA


FUNCIONAL PARA TERMINAR DE UNA VEZ

http://www.genbetadev.com/paradigmas-de-programacion/programacion-funcional-u
n-enfoque-diferente-a-los-problemas-de-siempre

Roberto Mera:
Paradigmas de programacin orientada a objetos
ORIGEN:
Los conceptos de la POO tienen origen en Simula 67, un lenguaje diseado para hacer simulaciones,
creado por Ole-Johan Dahl y Kristen Nygaard, del Centro de Cmputo Noruego en Oslo. En este centro se
trabajaba en simulaciones de naves, que fueron confundidas por la explosin combinatoria de cmo las
diversas cualidades de diferentes naves podan afectar unas a las otras. La idea surgi al agrupar los
diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase de objetos de definir
sus "propios" datos y comportamientos. Fueron refinados ms tarde en Smalltalk, desarrollado en Simula
en Xerox PARC (cuya primera versin fue escrita sobre Basic) pero diseado para ser un sistema
completamente dinmico en el cual los objetos se podran crear y modificar "sobre la marcha" (en tiempo
de ejecucin) en lugar de tener un sistema basado en programas estticos.

La POO se fue convirtiendo en el estilo de programacin dominante a mediados de los aos 1980, en gran
parte debido a la influencia de C++, una extensin del lenguaje de programacin C. Su dominacin fue
consolidada gracias al auge de las interfaces grficas de usuario, para las cuales la POO est
particularmente bien adaptada. En este caso, se habla tambin de programacin dirigida por eventos.

Las caractersticas de orientacin a objetos fueron agregadas a muchos lenguajes existentes durante ese
tiempo, incluyendo Ada, BASIC, Lisp ms Pascal, entre otros. La adicin de estas caractersticas a los
lenguajes que no fueron diseados inicialmente para ellas condujo a menudo a problemas de
compatibilidad y en la capacidad de mantenimiento del cdigo. Los lenguajes orientados a objetos "puros",
por su parte, carecan de las caractersticas de las cuales muchos programadores haban venido a
depender. Para saltar este obstculo, se hicieron muchas tentativas para crear nuevos lenguajes basados
en mtodos orientados a objetos, pero permitiendo algunas caractersticas imperativas de maneras
"seguras". El lenguaje de programacin Eiffel de Bertrand Meyer fue un temprano y moderadamente
acertado lenguaje con esos objetivos, pero ahora ha sido esencialmente reemplazado por Java, en gran
parte debido a la aparicin de Internet y a la implementacin de la mquina virtual Java en la mayora de
navegadores web. PHP en su versin 5 se ha modificado; soporta una orientacin completa a objetos,
cumpliendo todas las caractersticas propias de la orientacin a objetos.

Qu es la Programacin Orientada a Objetos?


Glady Booch, autor del mtodo de Booch de diseo orientado a objetos muy popular en la dcada de los
noventa, creador de la empresa Raciona, fabricante de la herramienta Rose para ingeniera de software
orientada a objetos e impulsor del Lenguaje Unificado de Modelado(UML), define la Programacin Orientada
a Objetos(POO) como:
Un mtodo de implementacin en el que los programas se organizan como colecciones cooperativas de
objetos, cada uno de los cuales representan una instancia de alguna clase, y cuyas clases son todas
miembros de una jerarqua de clases unida mediante relaciones de herencia.
La programacin orientada a objetos tiene tres paradigmas que deben ser representados cuando se utilicen
los mismos para el desarrollo de programas informticos, independientemente del lenguaje de
programacin utilizado estos tres paradigmas de programacin son:
1. Encapsulamiento.
2. Herencia.
3. Polimorfismo.

1.ENCAPSULAMIENTO:
En programacin modular, y ms especficamente en programacin orientada a objetos, se denomina
encapsulamiento al ocultamiento del estado, es decir, de los datos miembro de un objeto de manera que slo
se pueda cambiar mediante las operaciones definidas para ese objeto.

Cada objeto est aislado del exterior, es un mdulo natural, y la aplicacin entera se reduce a un agregado o
rompecabezas de objetos. El aislamiento protege a los datos asociados de un objeto contra su modificacin por
quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones.
De esta forma el usuario de la clase puede obviar la implementacin de los mtodos y propiedades para
concentrarse slo en cmo usarlos. Por otro lado, se evita que el usuario pueda cambiar su estado de maneras
imprevistas e incontroladas.

https://es.wikipedia.org/wiki/Encapsulamiento_(inform%C3%A1tica)
2.HERENCIA:
En la programacin orientada a objetos, la herencia es cuando un objeto o clase se basa en otro objeto
(herencia de prototipos) o tipo (herencia basada en la clase), utilizando la misma aplicacin (que hereda de
un objeto o clase) que especifica la aplicacin para mantener el mismo comportamiento (realizacin de una
interfaz; heredar el comportamiento). Tal clase heredada se llama una subclase de su clase padre o
superclase. Se trata de un mecanismo para la reutilizacin de cdigo y permitir extensiones independientes
de software original a travs de las clases pblicas y las interfaces. Las relaciones de objetos o clases
travs de la herencia dan lugar a una jerarqua. La herencia fue inventada en 1967 por Simula. El trmino
"herencia" se utiliza libremente tanto para la programacin basada en clase y basado en prototipos, pero en
el uso estrecha est reservado para la programacin basada en clases (una clase hereda de otra), con la
tcnica correspondiente en la programacin basado en prototipos que se llama en lugar delegacin (un
objeto se delega en otra).

La herencia no se debe confundir con subtipos. En algunos idiomas herencia y subtipos de acuerdo,
mientras que en otros son diferentes; en general, de subtipos establece un es-una relacin, mientras que la
herencia slo se vuelve a utilizar la aplicacin y establece una relacin sintctica, no necesariamente una
relacin semntica (herencia no asegura subtipos de comportamiento). Para distinguir estos conceptos,
subtipos tambin se conoce como herencia de interfaces, mientras que la herencia como se define aqu se
conoce como herencia de implementacin o la herencia de cdigo. Sin embargo, la herencia es un
mecanismo que se utiliza comnmente para el establecimiento de relaciones de subtipos.

2.1. TIPOS DE HERENCIA:


2.1.1. HERENCIA SIMPLE:
Una clase slo puede heredar de una clase base y de ninguna otra
2.1.2. HERENCIA MLTIPLE:
Una clase puede heredar las caractersticas de varias clases base, es decir, puede tener varios padres. En
este aspecto hay discrepancias entre los diseadores de lenguajes. Algunos de ellos han preferido no
admitir la herencia mltiple debido a que los potenciales conflictos entre mtodos y variables con igual
nombre, y eventualmente con comportamientos diferentes crea un desajuste cognitivo que va en contra del
principio de la programacin orientada a objetos. Por ello, la mayora de los lenguajes orientados a objetos
admite herencia simple. En contraste, algunos pocos lenguajes admiten herencia mltiple, entre ellos: C++,
Python, Eiffel, mientras que Smalltalk, Java, Ada y C# slo permiten herencia simple.
https://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming)

HERENCIA SIMPLE

HERENCIA MLTIPLE

3.POLIMORFISMO:
En programacin orientada a objetos, el polimorfismo se refiere a la propiedad por la que es posible enviar
mensajes sintcticamente iguales a objetos de tipos distintos. El nico requisito que deben cumplir los
objetos que se utilizan de manera polimrfica es saber responder al mensaje que se les enva.

La apariencia del cdigo puede ser muy diferente dependiendo del lenguaje que se utilice, ms all de las
obvias diferencias sintcticas.

Por ejemplo, en un lenguaje de programacin que cuenta con un sistema de tipos dinmico (en los que las
variables pueden contener datos de cualquier tipo u objetos de cualquier clase) como Smalltalk no se
requiere que los objetos que se utilizan de modo polimrfico sean parte de una jerarqua de clases.

BIBLIOGRAFA:
https://es.wikipedia.org/wiki/Encapsulamiento_(inform%C3%A1tica)
https://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming)
https://es.wikipedia.org/wiki/Polimorfismo_(inform%C3%A1tica)
http://es.slideshare.net/reimerxd/fundamentos-de-la-programacion-luis-joyanes-3era-edicion

HISTORIA DEL PARADIGMA FUNCIONAL


Los orgenes de la programacin funcional pueden rastrearse al matemtico Alonzo Church, que trabajaba
en la Universidad de Princeton, y, al igual que otros matemticos de all, estaba interesado en la matemtica
abstracta, particularmente en el poder computacional de ciertas mquinas abstractas. Las preguntas que se
haca eran por ejemplo: si dispusieramos de mquinas de un ilimitado poder de cmputo, qu tipos de
problemas se podran solucionar?, o se pueden resolver todos los problemas? Para contestar este tipo de
preguntas, Church desarroll un lenguaje abstracto, denominado Clculo Lambda, que el cual slo
realizaba evaluacin de expresiones usando funciones como mecanismo de cmputo. Este lenguaje
abstracto no tena en cuenta limitaciones concretas de implementacin de ningn tipo. Al mismo tiempo
que Church, otro matemtico, Alan Turing, desarroll una mquina abstracta para intentar resolver el
mismo tiempo de problemas planteados por Church. Despus se demostr que ambos enfoques son
equivalentes. Cuadernos de la Facultad n. 3, 2008 65 Las primeras computadoras digitales se construyeron
siguiendo un esquema de arquitectura denominado de Von Neumann, que es bsicamente una
implementacin de la mquina de Turing a una mquina real. Esta mquina forz de alguna manera el
lenguaje en el cual se escriben sus programas, justamente el paradigma procedimental, el cual, como
menciona Backus en un muy famoso artculo que escribi al recibir el premio Turing en 1978 (Backus 1978),
tiene tantsimos defectos, que muchos programadores padecemos an hoy. La programacin funcional se
aparta de esta concepcin de mquina, y trata de ajustarse ms a la forma de resolver el problema, que a
las construcciones del lenguaje necesarias para cumplir con la ejecucin en esta mquina. Por ejemplo, un
condicionamiento de la mquina de Von-Neumann es la memoria, por lo cual los programas
procedimentales poseen variables. Sin embargo en la programacin funcional pura, las variables no son
necesarias, ya que no se considera a la memoria necesaria, pudindose entender un programa como una
evaluacin continua de funciones sobre funciones. Es decir, la programacin funcional posee un estilo de
computacin que sigue la evaluacin de funciones matemticas y evita los estados intermedios y la
modificacin de datos durante la misma. Hoy en da existen diversos lenguajes funcionales. Se podra
considerar como uno de los primeros lenguajes funcionales al LISP, que actualmente sigue en uso, sobre
todo en reas de la inteligencia artificial. Tambin un pionero de este paradigma es APL desarrollado en los
aos 60 (Iverson 1962). El linaje funcional se enriqueci en los aos 70, con el aporte de Robin Milner de la
Universidad de Edimburgo al crear el lenguaje ML. ste se subdividi posteriormente en varios dialectos
tales como Objective Caml y Standard ML. A fines de los aos 80, a partir de un comit, se cre el lenguaje
Haskell, en un intento de reunir varias ideas dispersas en los diferentes lenguajes funcionales (un intento
de estandarizar el paradigma). Este ao Microsoft Research ha incluido un nuevo lenguaje (funcional),
denominado F#, a su plataforma .NET
herencia multiple

herencia simple

You might also like