Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Paradigmas de Programacin
Agenda
Introduccin Lenguajes de programacin Definicin de paradigma Paradigmas de programacin Clasificacin general de los paradigmas de programacin
1. Introduccin
Edward Sapir, defini el lenguaje como un mtodo humano y no instintivo de comunicar ideas, emociones y deseos mediante un sistema de smbolos producidos voluntariamente. Esta definicin en principio se refiere a un lenguaje natural, que es aquel lenguaje hablado o escrito que usamos para la comunicacin ms cotidiana y general. No obstante, en este trabajo nos es de inters otro tipo de lenguajes llamados lenguajes formales. Un lenguaje formal es un lenguaje donde existe una gramtica que implementa el conjunto de concatenaciones (cadenas) posibles de un alfabeto finito particular. Esta gramtica provee al lenguaje de 3 elementos importantes:
1.
2. 3.
Un vocabulario de smbolos;
Reglas sintcticas para combinar estos smbolos en cadenas y frmulas gramaticalmente correctas, y Reglas semnticas para darle significado e interpretacin a esas frmulas.
Bryan Higman, quien lo describi como: (...) un conjunto de objetos llamados vocabulario que pueden ser combinados en cadenas lineales de acuerdo a ciertas reglas llamadas gramtica.
actividades..
Ahora,
entindase
receptor
por
paradigma. (Del lat. paradigma, y este del gr. ). 1. m. Ejemplo o ejemplar. 2. m. Ling. Cada uno de los esquemas formales en que se organizan las palabras nominales y verbales para sus respectivas flexiones. 3. m. Ling. Conjunto cuyos elementos pueden aparecer alternativamente en algn contexto especificado; p. ej., nio, hombre, perro, pueden figurar en El -- se queja.
Real Academia Espaola Todos los derechos reservados
2. Paradigmas de Programacin
Hoy en da, el uso de la computacin es extremadamente diverso. Todas estas distintas aplicaciones del cmputo han requerido del desarrollo de un sinnmero de lenguajes de programacin, cada uno con propsitos y formas distintas. No obstante, todos estos lenguajes pueden ser clasificados en una jerarqua de familias a partir del modelo
que siguen para definir y operar informacin (Figura 1), es decir, que
pueden ser jerarquizados segn el paradigma que siguen. En una primera clasificacin, se encuentran dos grandes grupos en
IMPERATIVA
Programacin Imperativa
Es decir, es una orden para realizar una accin especfica. De forma similar, la programacin imperativa consiste en una serie de comandos que una computadora ejecutar. Estos comandos detallan de forma clara y especfica el cmo hacer las cosas y llevarn al programa a travs de distintos estados.
de datos
Expresiones Estructuras
de Control
Programacin Funcional
El paradigma funcional esta basado en el concepto matemtico de funcin:
Una funcin f asigna a cada miembro de un conjunto X, exactamente un miembro de un conjunto Y. Donde: El conjunto X y Y pueden o no ser el mismo y donde X es llamado dominio de f y Y es llamado codominio o rango de f.
Programacin Funcional
El paradigma funcional considera al programa como una funcin matemtica, donde el dominio representara el conjunto de todas las entradas posibles (inputs) y el rango sera el conjunto de todas las salidas posibles (outputs). La forma en que funciona puede ser entendida como una caja negra:
Se pudiera pensar que cualquier tipo de programacin podra ser clasificada como programacin funcional y esto es relativamente cierto a excepcin de unos puntos claves: Primero, que en los lenguajes funcionales no existe el concepto de variables y consecuentemente tampoco existen operaciones de asignacin. Aunque podra parecer que los parmetros de una funcin se comportan como una variable (puesto que pueden llevar un nombre y su uso es de hecho parecido al de las variables), esto es incorrecto: El valor de los parmetros es dado como fijo al inicio de la funcin. Segundo, la existencia de una propiedad llamada transparencia referencial (Referential transparency), la cual indica que una funcin slo depende de sus parmetros y que tendr efecto nicamente en su resultado, por lo que podramos llamar a una funcin arbitrariamente sin tener efectos colaterales en el resto de las computaciones. Por ltimo, que una funcin puede ser utilizada como parmetros y resultados de cualquier otra funcin. Los lenguajes ms utilizados dentro de este paradigma son Standard ML, Haskell y
Programacin Lgica
El paradigma lgico difiere de forma importante de otros paradigmas. No slo en su sintaxis o semntica, sino que en l la lgica representa conocimiento, el cual es manipulado mediante inferencias. A diferencia de los dems paradigmas, trabajar en este significa especificar qu hacer y no cmo hacerlo, por ello son llamados lenguajes declarativos.
Un objeto est compuesto por estados y mtodos. Los estados son propiedades del objeto y estn representados por variables con valores nicos para cada objeto y que son llamadas variables de instancia
Los
mtodos
son
representaciones
de
los
Encapsulamiento: Significa que el cdigo o datos de un objeto pueden estar ocultos para cualquier entidad externa a l. Herencia: Es la propiedad de crear nuevos objetos a partir de la definicin de otros. Un objeto nuevo ser idntico al modelo que seguimos para crearlo, excepto por algunos cambios incrementales o redefiniciones de sus estados o mtodos. Polimorfismo: Esencialmente, es la propiedad que le permite a un mtodo aceptar o devolver valores de ms de un tipo Invocacin Dinmica de Mtodos (Dynamic Method Binding): Se traduce en que cuando llamamos algn mtodo de un objeto estaremos ejecutando la operacin especfica de ese objeto y no alguna implementacin de alguno de sus padres
Caractersticas
Este paradigma hace posible el desarrollo modular de un software, porque, hasta cierto grado, cada componente es independiente de los dems, lo que permite que estos componentes puedan ser reutilizados y reciclados, incluso, a lo largo de distintos proyectos.
Gran parte de los lenguajes ms utilizados hoy en da estn orientados a objetos, entre ellos se encuentran: Java, C++, PHP, Python, C#, Delphi, Ruby, D y Actionscript, entre otros.
3. Conclusin
Actualmente no existe una definicin de las fronteras para cada paradigma. Los lenguajes actuales, como Ruby, Actionscript o C# pueden ser mejor definidos como multiparadigmas
Importante: Estos cuatro paradigmas no son los nicos que existen y hay muchos otros que parecen relevantes, como la programacin a aspectos, o que han sido ampliamente usados, como la programacin a eventos.