Investigacion 1 - Paradigmas de Programacion
Investigacion 1 - Paradigmas de Programacion
Investigacion 1 - Paradigmas de Programacion
programacin
2017
Contenido
Introduccin..................................................................................................................... 3
Captulo 1 Marco terico.................................................................................................. 3
1.1 Lenguajes Naturales y lenguajes de programacin.................................................3
1.1.1 Lenguajes naturales.......................................................................................... 3
1.1.2 Lenguaje de programacin............................................................................... 4
1.2 Paradigmas de la Programacin..............................................................................6
Captulo 2: Tipos de paradigmas de programacin..........................................................7
2.1 Paradigma Imperativo............................................................................................. 7
2.2 Paradigma Declarativo............................................................................................ 8
2.3 Paradigma Estructurado.......................................................................................... 9
2.4 Paradigma Orientado a Objetos............................................................................10
2.5 Paradigma Funcional............................................................................................. 12
2.6 Paradigma lgico.................................................................................................. 13
Captulo 3: Conclusiones................................................................................................ 17
Bibliografa..................................................................................................................... 17
Anexos........................................................................................................................... 18
Cuadro comparativo de los paradigmas de programacin..........................................18
2
Introduccin
En este documento se desglosan los diferentes paradigmas que existen dentro de la programacin,
por lo general autores dan una clasificacin diferente de los paradigmas concordando en algunos
puntos, aqu se explicaran los ms comunes o los que mencionan ms dentro de las ciencias de la
computacin. Adems, se marcan temas los cuales sirven como base para el entendimiento del lector
de los paradigmas.
Veremos que cada paradigma puede ser aplicado a diferentes problemas, pero lo ms importante es
saber que paradigmas existen y saber cundo utilizar cada uno de ellos dentro de la resolucin de un
problema, as como tener la orientacin de implementarlo eficazmente.
Cada paradigma lleva consigo un lenguaje, o en otros casos varios lenguajes, que pueden desarrollar
el paradigma sin problema, ya que su estructura est orientada hacia ese paradigma.
Tambin se habla de lenguajes naturales para referirse al software que permite que los sistemas de
computacin acepten, interpreten y ejecuten instrucciones en el lenguaje materno o "natural" que
habla el usuario final, por lo general el ingls. La mayor parte de los lenguajes naturales comerciales
estn diseados para ofrecer a los usuarios un medio de comunicarse con una base de datos
corporativa o con un sistema experto.
Podemos resumir que los lenguajes naturales se distinguen por las siguientes propiedades:
A los lenguajes mquina les sucedieron, los lenguajes simblicos los cuales utilizan caracteres
naturales para escribir las instrucciones de los programas.
Dentro de los segundos se puede distinguir a su vez los lenguajes procedurales y los relacionales.
Un lenguaje procedural es aquel lenguaje de programacin en el que hay que sealar tanto lo que se
quiere hacer como el modo de hacerlo. Los lenguajes de tercera generacin son de tipo procedural.
Un lenguaje relacional es un tipo de lenguaje de programacin en el que slo hay que especificar lo
que se quiere obtener, sin necesidad de especificar a su vez el camino a seguir para obtener los
resultados deseados. Este tipo de lenguaje son de muy alta productividad en desarrollo, pero muy
ineficientes en ejecucin. La diferencia entre uno y otro es que el primero exige que se diga tanto lo
que se quiere hacer como la forma en que hay que hacerlo mientras que los relacionales slo exigen
que se diga lo que se quiere hacer, pero no es necesario que se exprese el camino para realizarlo.
A los lenguajes mquina se les conoce como lenguajes de primera generacin. Los ensambladores
son los lenguajes de segunda generacin. Los simblicos de alto nivel de tipo procedural se les
denomina de tercera generacin y a los relacionales se considera que son de cuarta generacin. A la
tercera generacin pertenecen lenguajes conocidos como el FORTRAN, COBOL, RPG, BASIC,
PL1, SIMULA, ALGOL, PASCAL, ADA, C, LISP, PROGOL, etc.
Estos lenguajes de tercera generacin son de tipo universal. A diferencia de los lenguajes de tercera
generacin, los de cuarta generacin no son tan universales y van asociados a determinados sistemas
operativos y en muchos casos a determinados sistemas de almacenamiento de informacin, lo que les
resta uno de los mayores intereses de los lenguajes de tercera generacin. La mayor ventaja de los
lenguajes relacionados es que son muy productivos en desarrollo a alcanzar niveles de productividad
de hasta 6 y 8 veces superior a los que alcanzan los de tercera generacin.
Entre los lenguajes de cuarta generacin tenemos el CSP de IBM asociado al sistema de gestin de
base de datos DB2; el NATURAL de SOFTWARE AG asociado al sistema de datos ADABAS; el
SQL que es un lenguaje convertido en estndar mundial como lenguaje de cuarta generacin para la
consulta de bases relacionales; etc. Adems de los lenguajes sealados hay que hacer referencia a una
serie de lenguajes orientados a objetos y cuya utilizacin tiene preferentemente lugar en los puestos
cliente. Entre estos destaca el Visual Basic de Microsoft, el Power Builder y el Delphi. Adems, hay
que prestar una seria atencin al lenguaje de programacin Java, desarrollado por SUN y cuya
misin fundamental es dar la posibilidad de desarrollar aplicaciones altamente interactivas bajo la
modalidad de Web, en el contexto de Internet. En pocos aos y como consecuencia del desarrollo que
est teniendo la inteligencia artificial se podr programar, con ciertas limitaciones sintcticas, en los
lenguajes naturales.
Para Kuhn, el trmino se reere a la forma en que un cientco percibe al mundo y a la estructura de
teoras y suposiciones que modican esta percepcin. Otro punto importante para nuestro inters es
el sealamiento que hace Kuhn acerca de cmo el xito de un paradigma es consecuencia de su
efectividad para resolver algn problema. En breve, un paradigma es el resultado de un proceso
social en el cual un grupo de personas desarrolla nuevas ideas y crea principios y prcticas alrededor
de estas ideas, y no solamente un conjunto de prcticas y conocimientos objetivamente validados.
Ms especcamente para la ciencia de la computacin, probablemente fue Robert Floyd quien habl
por primera vez del trmino Paradigmas de Programacin y quien los deni como un proceso de
diseo que va ms all de una gramtica, reglas semnticas y algoritmos, sino que es un conjunto de
mtodos sistemticos aplicables en todos los niveles del diseo de programas.
Existen diversos lenguajes y paradigmas de programacin que se han diseado para facilitar la tarea
de la programacin en diferentes mbitos. Por ejemplo, la programacin orientada a objetos es un
paradigma dirigido al mejoramiento en la calidad del software por medio de la observacin de
aspectos tales como la correccin, robustez, extensibilidad, compatibilidad y sobre todo la
reusabilidad del software. La programacin lgica, por su parte, es un paradigma orientado a la
expresin de los problemas en trminos lgicos para su posterior solucin por mtodos de inferencia
y otras tcnicas lgicas. En la prctica, cada paradigma de programacin es implementado a travs de
diversos lenguajes. Slo como un ejemplo, la programacin orientada a objetos encuentra su
recipiente en lenguajes tales como Java, C++, Eiffel, Objective C, el paquete CLOS de Common
Lisp, etc.
Actualmente existen una gran variedad de paradigmas de programacin, pero una clasificacin
general podra ser la siguiente:
Captulo 2: Tipos de paradigmas de
programacin
2.1 Paradigma Imperativo
El trmino imperativo en este caso, no diere esencialmente del modo gramtico imperativo del
espaol, donde una oracin como: Gutirrez, cierre el YouTube y pngase a trabajar en lo que le
ped! le est indicando a un sujeto, presumiblemente ojo, que deje de perder el tiempo y, en lugar
de eso, realice el trabajo para el cual se le est pagando. Es decir, es una orden para realizar una
accin especca. De forma similar, la programacin imperativa consiste en una serie de comandos
que una computadora ejecutar. Estos comandos detallan de forma clara y especca el cmo hacer
las cosas y llevarn al programa a travs de distintos estados. En nuestro ejemplo, con el Sr.
Gutierrez, un comando result en un cambio de estado: de procastinador a productivo.
Variables: Son objetos cuyo valor depende de una localidad de memoria y que puede cambiar
a lo largo de la ejecucin del programa. La denicin de este paradigma sera imposible sin
estos elementos fundamentales, ya que los estados de un programa son representados y
diferenciados por su conjunto de variables y sus contenidos.
Tipos de datos: Son abstracciones que representan un conjunto de valores junto con las
operaciones y relaciones que son aplicables a ellos. Algunos tipos comunes en varios
lenguajes son: integer, que dene parcialmente el conjunto de los nmeros enteros, oat, que
representa nmeros reales y boolean, que generalmente especica al pequeo conjunto
conformado por true y false. Es importante recalcar que estos no son los nicos tipos de datos
y que muchos lenguajes permiten la implementacin de muchos otros.
Expresiones: Aunque son la forma fundamental de programar instrucciones, en la
programacin imperativa su papel ms importante est en las sentencias de asignacin. Una
sentencia de asignacin sirve para modicar el valor de una variable y as cambiar el estado
de un programa. Esto puede ser algo muy sencillo como copiar el valor de una variable a otra
localidad de memoria o involucrar algo ms complicado como realizar operaciones sobre las
variables antes de re-localizarlas en la memoria. Los operadores empleados pueden ser
matemticos, lgicos o una combinacin de ambos.
Estructuras de Control: Las estructuras de control son mecanismos que un lenguaje requiere
para realizar dos tareas indispensables:
1. Seleccionar una opcin entre algunos ujos de control alternativos.
2. Iterar la ejecucin de una serie de sentencias. Una sentencia de seleccin provee al
programa de medios para elegir entre dos o ms caminos de ejecucin.
Su forma ms sencilla es el condicional if que selecciona entre dos opciones y puede extenderse a
una seleccin prcticamente innita mediante constructores mltiples (como switch o case) o la
anidacin de condicionales if. Las sentencias de iteracin representan el verdadero poder del
cmputo, ejecutan un bloque de sentencias desde cero hasta un nmero tericamente innito de
veces. Es interesante que todos los lenguajes de programacin desde el primero, que data de la
dcada de los cuarenta, Plankalkl, implementaron estructuras de iteracin. Estas se dividen en dos
categoras principales dependiendo de cmo se controla la iteracin.
Pueden ser: controlados con contadores (tradicionalmente for) o controlados lgicamente (como
while). En esta categora tambin estaran incluidas sentencias como goto, sin embargo, estas han
cado en desuso y que, como sealo Dijkstra, representan ms desventajas que ventajas.
Esta metodologa permite desarrollar algoritmos a travs de mdulos, los cuales realizan tareas bien
definidas. De esta forma, el mdulo se define una sola vez y se llama tantas veces como sea
necesario, mediante el nombre que lo identifica. La forma grfica que lo representa sera la siguiente:
Algunas de las ventajas que presenta este paradigma son los siguientes:
Desventajas
Se obtiene un nico bloque del programa que cuando se hace demasiado grande puede
ser problemtico para el manejo del cdigo fuente.
Libreras estndar
Programa compilador
Preprocesador (INCLUDE - DEFINE)
Por ejemplo, mi perro en particular tendra los mtodos: sentarse, echarse, comer, saludar, dormir y
bailar, entre otros, y que son comportamientos que probablemente presentan otros perros.
Ahora que tenemos una nocin de lo que es un objeto, quiero mencionar las propiedades ms
generales y formales de este paradigma:
Encapsulamiento: Signica que el cdigo o datos de un objeto pueden estar ocultos para
cualquier entidad externa a l.
Herencia: La herencia es la propiedad de crear nuevos objetos a partir de la denicin de
otros.
Un objeto nuevo ser idntico al modelo que seguimos para crearlo, excepto por algunos
cambios incrementales o redeniciones de sus estados o mtodos. Me gusta pensar en la
taxonoma para ejemplicar esta propiedad. Pensemos en un zorro comn (Vulpes Vulpes,
aqu a la derecha). Como se ve, esta especie pertenece al gnero Vulpes, el cual especica
caractersticas como: tamao pequeo, crneo aplanado y el color de la punta de la cola
generalmente distinto al resto del cuerpo. A su vez, este gnero este contenido dentro de la
familia Canidae, que se caracteriza por tener garras no retrctiles y caminar apoyndose
nicamente en sus dedos. Todos los cnidos son al mismo tiempo miembros del orden
Carnivora, el cual es bastante diverso y que en particular tiene dientes y garras para cazar a
otros animales, ojos que apuntan hacia el frente y, claro, un men donde la mayora de los
platillos son carne. Y as ad nauseam... Ahora, supongamos que cada una de estas categoras
es la denicin de un objeto. As, cualquier objeto del tipo Canidae presentara todas las
caractersticas de los objetos de donde fue heredado, es decir, que sera vertebrado, tendra
dientes, garras y predileccin por la carne.
No obstante, esto no sucedera a la inversa: un objeto del tipo Carnivora no necesariamente es
pequeo o presenta la punta de la cola de un color diferente.
Polimorsmo: Esencialmente, es la propiedad que le permite a un mtodo aceptar o devolver
valores de ms de un tipo. Formalmente se dene as: Siendo M un mtodo y t1 y t2 son dos
tipos de datos diferentes, M es polimrco si M puede ser ejecutado con el argumento t1:
M( t1) y el argumento t2: M( t2) De la misma manera una funcin puede ser denida como
polimrca si al llamarla mediante dos parmetros distintos, arroja un retorno de tipos
diferentes.
Invocacin Dinmica de Mtodos (Dynamic Method Binding): Se traduce en que cuando
llamamos algn mtodo de un objeto estaremos ejecutando la operacin especca de ese
objeto y no alguna implementacin de alguno de sus padres.
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. Es posible que esta
modularidad haya colocado a la programacin orientada a objetos en la posicin dominante en la
que se encuentra ahora, dado que le ha permitido a la industria encontrar nuevas formas de trabajo y
patrones de diseo ms productivos. 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.
En la prctica, la diferencia entre una funcin matemtica y la nocin de una "funcin" utilizada en la
programacin imperativa, es que las funciones imperativas pueden tener efectos secundarios, como
cambiar el valor de clculos realizados previamente. Por esta razn carecen de transparencia
referencial, es decir, la misma expresin sintctica puede resultar en valores diferentes en varios
momentos de la ejecucin del programa.
Con cdigo funcional, en contraste, el valor generado por una funcin depende exclusivamente de
los argumentos alimentados a la funcin. Al eliminar los efectos secundarios se puede entender y
predecir el comportamiento de un programa mucho ms fcilmente. sta es una de las principales
motivaciones para utilizar la programacin funcional.
Los lenguajes de programacin funcional, especialmente los puramente funcionales, han sido
enfatizados en el ambiente acadmico y no tanto en el desarrollo comercial o industrial. Sin embargo,
lenguajes de programacin funcional como Scheme, Erlang, Rust, Objective Caml , Scala, F# y
Haskell, han sido utilizados en aplicaciones comerciales e industriales por muchas organizaciones.
La programacin funcional tambin es utilizada en la industria a travs de lenguajes de dominio
especfico como R (estadstica), Mathematica (matemticas simblicas), J y K (anlisis financiero).
Los lenguajes de uso especfico usados comnmente como SQL y Lex/Yacc, utilizan algunos
elementos de programacin funcional, especialmente al procesar valores mutables. Las hojas de
clculo tambin pueden ser consideradas lenguajes de programacin funcional.
La programacin funcional tambin puede ser desarrollada en lenguajes que no estn diseados
especficamente para la programacin funcional. En el caso de Perl, por ejemplo, que es un lenguaje
de programacin imperativo, existe un libro que describe cmo aplicar conceptos de programacin
funcional. JavaScript, uno de los lenguajes ms ampliamente utilizados en la actualidad, tambin
incorpora capacidades de programacin funcional. Python tambin incorpora particularidades de los
lenguajes funcionales como listas de comprensin y funciones de tratamiento de listas como
matemtica de conjuntos. Java en su versin 8, est incorporando la programacin funcional, as
como el uso de las expresiones 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, en las que se verifican ciertas propiedades como la transparencia
referencial (el significado de una expresin depende nicamente del significado de sus
subexpresiones), y por tanto, la carencia total de efectos colaterales.
Existen dos grandes categoras de lenguajes funcionales: los funcionales puros y los hbridos. La
diferencia entre ambos estriba en que los lenguajes funcionales hbridos son menos dogmticos que
los puros, al admitir conceptos tomados de los lenguajes imperativos, como las secuencias de
instrucciones o la asignacin de variables. En contraste, los lenguajes funcionales puros tienen una
mayor potencia expresiva, conservando a la vez su transparencia referencial, algo que no se cumple
siempre con un lenguaje funcional hbrido.
De esta manera, la clave para hacer un programa lgico es poder explicitar una declaracin que
describa correctamente la solucin del problema. Principales caractersticas El paradigma tiene sus
fundamentos en las teoras de la lgica proposicional. De ellas, se toman en particular las Clusulas
de Horn, que son una forma de lgica de predicados con una sola conclusin en cada clusula y un
conjunto de premisas de cuyo valor de verdad se deduce el valor de verdad de la conclusin: una
conclusin es cierta si lo son simultneamente todas sus premisas.
Por su esencia declarativa, un programa lgico no tiene un algoritmo que indique los pasos que
detallen la manera de llegar a un resultado, sino que es el sistema internamente el que proporciona la
secuencia de control. No existe el concepto de asignacin de variables, sino el de unificacin. No hay
un estado de las variables que se vaya modificando por sucesivas asignaciones, generalmente
asociadas a posiciones de memoria, sino que las variables asumen valores al unificarse o ligarse
con valores particulares temporalmente y se van sustituyendo durante la ejecucin del programa.
Un programa lgico contiene una base de conocimiento sobre la que se hacen consultas. La base de
conocimiento est formada por hechos, que representan la informacin del sistema expresada como
relaciones entre datos, y por reglas lgicas que permiten deducir consecuencias a partir de
combinaciones entre los hechos y, en general, otras reglas. Se construye especificando la informacin
del problema real en una base de conocimiento en un lenguaje formal y el problema se resuelve
mediante un mecanismo de inferencia que acta sobre ella. As pues, una clave de la programacin
lgica es poder expresar apropiadamente todos los hechos y reglas necesarios que definen el dominio
de un problema.
En otros paradigmas, las salidas son funcionalmente dependientes de las entradas, por lo que el
programa puede verse abstractamente como la implementacin de una transformacin de entradas en
salidas. En cambio, la programacin lgica est basada en la nocin de que el programa implementa
una relacin, en vez de una transformacin. Los predicados son relaciones, que al no tener
predefinido una direccin entre sus componentes, permiten que sus argumentos acten
indistintamente como argumentos de entrada y salida. Esta caracterstica se denomina inversibilidad.
A su vez, a diferencia de las funciones donde est la restriccin del a unicidad de la imagen para un
elemento determinado del dominio, una relacin permite vincular a cada elemento con muchos otros
elementos, permitiendo soluciones alternativas.
Dado que las relaciones son ms generales que las transformaciones, la programacin lgica es
potencialmente de ms alto nivel que la de otros paradigmas. Internamente, existe un mecanismo, un
motor, que acta como control de secuencia. Durante la ejecucin de un programa va evaluando y
combinando las reglas lgicas de la base de conocimiento para lograr los resultados esperados. La
implementacin del mecanismo de evaluacin puede ser diferente en cada lenguaje del paradigma,
pero en todos los casos debe garantizar que se agoten todas las combinaciones lgicas posibles para
ofrecer el conjunto completo de respuestas alternativas posibles a cada consulta efectuada. El ms
difundido se denomina backtracking, que utiliza una estrategia de bsqueda primero en profundidad.
La recursividad como estrategia lgica para encontrar soluciones, junto con la utilizacin de listas
para representar conjuntos de valores, son dos caractersticas tpicas de los programas lgicos.
Los lenguajes del paradigma lgico, en general incluyen herramientas para realizar soluciones
polimrficas y manejar el concepto de orden superior, entendido como la capacidad de un lenguaje
para manejar su propio cdigo como una estructura de datos ms. Son un conjunto de
funcionalidades que dotan de una enorme expresividad y potencia a los programas.
Existen tambin otras herramientas ms complejas, como las que buscan incrementar la eficiencia o
las que abren a la posibilidad de meta programacin, que requieren de una cuidadosa utilizacin ya
que se introducen en el interior del sistema mismo y permiten alterar la naturaleza declarativa del
paradigma. Campo de aplicacin El paradigma es ampliamente utilizado en las aplicaciones que
tienen que ver con la Inteligencia Artificial, particularmente en el campo de sistemas expertos y
procesamiento del lenguaje humano.
Un sistema experto es un programa que imita el comportamiento de un experto humano. Por lo tanto
contiene informacin (es decir una base de conocimientos) y una herramienta para comprender las
preguntas y encontrar la respuesta correcta examinando la base de datos (un motor de inferencia). En
el caso del procesamiento del lenguaje humano se trata de dividir el lenguaje en partes y relaciones y
tratar de comprender su significado. Para plantear los problemas en trminos del paradigma se
definen reglas lgicas entre las diferentes partes. Tambin es til en problemas combinatorios o que
requieren gran cantidad o amplitud de soluciones alternativas, dada la naturaleza combinatoria del
mecanismo de backtracking y como lenguaje de prototipacin y programacin exploratoria.
La base conceptual de la lgica proposicional es desarrollada por Alfred Horn, en los aos 50, en
forma independiente al desarrollo computacional, al publicar Sobre sentencias las cuales son
verdaderas de la unin directa de las lgebras, en la cual presenta un modelo lgico para el
tratamiento de oraciones del lenguaje natural, donde se explican las luego denominadas clusulas de
Horn. En la primera mitad de la dcada del 70, en base a las clusulas de Horn, surgen las primeras
versiones de lenguajes lgicos como una herramienta para resolver ciertos problemas en el rea de la
inteligencia artificial, originalmente vinculados al tratamiento computacional del lenguaje natural.
Ms concretamente, en 1972, en la Universidad de Marsella, Alain Colmerauer, Philippe Roussel y
un grupo de investigadores presentan el lenguaje de programacin lgica Prolog. Luego se va
perfeccionando el lenguaje y se escribe el compilador.
Pocos aos despus se definen los principios que constituyen al Paradigma Lgico como un
paradigma de programacin, con la participacin determinante de Robert Kowalski. Inicialmente se
trataba de un lenguaje totalmente interpretado hasta que, a mediados de los 70, David H.D. Warren
desarroll un compilador capaz de traducir Prolog en un conjunto de instrucciones de una mquina
abstracta denominada Warren Abstract Machine, o abreviadamente, WAM. Desde entonces Prolog es
un lenguaje semi-interpretado. En 1979, en la Universidad de Edimburgo se escribe un nuevo
compilador para el Prolog, adaptndolo al paradigma lgico planteando la ecuacin
Aunque con ciertas dificultades iniciales, debido principalmente a la novedad del paradigma y a la
escasa eficiencia de las implementaciones disponibles, el lenguaje se fue expandiendo rpidamente,
sobre todo en Europa y en Japn. Prolog recibi un gran empuje en 1981, cuando el Instituto Japons
para la Nueva Generacin de Tecnologa Informtica eligi a la programacin lgica como su
tecnologa de software diferencial, y comenz un proyecto para proveer la tecnologa de hardware
complementaria en la forma de mquinas de inferencia lgica rpidas (proyecto de ordenadores de
quinta generacin). En 1995, el lenguaje se normaliza con el correspondiente estndar ISO. En la
actualidad Prolog se ha convertido en una herramienta de desarrollo de software prctica y de gran
aceptacin para la que se dispone de mltiples compiladores, tanto comerciales como de libre
distribucin. PROLOG El Prolog es el lenguaje emblemtico del paradigma lgico. Su evolucin no
puede separarse de la historia misma del paradigma.
El lenguaje Prolog no fue realmente diseado como tal, sino que ms bien fue evolucionando
mayoritariamente en las Universidades de Marsella y Edimburgo, como una herramienta
experimental de inteligencia artificial. Debido a la falta de una definicin comn, varios dialectos de
Prolog evolucionaron. De ellos, el dialecto de Edimburgo es aceptado ampliamente como estndar.
Desde entonces, el lenguaje Prolog ha sido implementado con diferentes versiones y desarrollado por
distintos fabricantes, manteniendo la misma base del lenguaje, pero con pequeas variantes y
herramientas adicionales para facilitar la programacin.
Captulo 3: Conclusiones
Dentro de este documento se pudo observar los paradigmas de programacin que existen en la
actualizad (o por lo menos los ms importantes), uno como programador no sabe de estos
paradigmas completamente hasta que se embarca en este tema que explica por qu un lenguaje de
programacin tiene esa estructura, ayudando a comprender ms la lgica del mismo.
Adems de que se observ los diferentes lenguajes que existen dentro de cada paradigma, y darnos
cuentas que un lenguaje puede ser utilizado por ms de un paradigma, dndole flexibilidad de uso.
Anidado a esto tambin se encuentra el termino multiparadigma, el cual aplica a los lenguajes de
programacin que hacen uso de ms de un paradigma para su realizacin, simplificando el problema
para poder representarlo en un sistema.
Bibliografa
Bonelli, E. (2007). Paradigmas de lenguajes de programacion.