Sie sind auf Seite 1von 9

1

Carretera Acuaco - Zacapoaxtla Km. 8, Colonia Totoltepec, C. P. 73680, Zacapoaxtla, Puebla.


Tel/Fax 01 (233) 317 50 00, e-mail: tecnologico@itsz.edu.mx
www.itsz.edu.mx
Hacia la excelencia
con calidez humana
y calidad integral
Instituto Tecnolgico Superior De Zacapoaxtla
Divisin En Ingeniera En Informtica
Catedrtico: Dr. Rigoberto Jurez Salazar
Asignatura: Fundamentos de Programacin

Los diferentes Paradigmas de Programacin y sus
caractersticas principales
Antonio Rafael Hernndez Huerta
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
nicamente trata de resolver uno o varios problemas claramente delimitados. Es un estilo
de programacin empleado. 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.
Un paradigma provee (y determina) la visin y mtodos de un programador en la
construccin de un programa o subprograma. Diferentes paradigmas resultan en diferentes
estilos de programacin y en diferentes formas de pensar la solucin de problemas (con la
solucin de mltiples problemas se construye una aplicacin).
Los lenguajes de programacin son basados en uno o ms paradigmas. Por ejemplo:
Smalltalk y Java son lenguajes basados en el paradigma orientado a objetos. El lenguaje
de programacin Scheme, en cambio, soporta solo programacin funcional. En cambio
Python, soporta mltiples paradigmas.
Algunos de estos paradigmas son:
Paradigma imperativo o por procedimientos
Paradigma funcional
Paradigma lgica
Paradigma declarativo
Paradigma orientada a objetos
Paradigma dinmica
Carretera Acuaco - Zacapoaxtla Km. 8, Colonia Totoltepec, C. P. 73680, Zacapoaxtla, Puebla.
Tel/Fax 01 (233) 317 50 00, e-mail: tecnologico@itsz.edu.mx
www.itsz.edu.mx
Hacia la excelencia
con calidez humana
y calidad integral

2

1. Introduccin

Desde las pocas coloniales, la mayora de los problemas matemticos tenan
limitaciones para poder llegar a un resultado exacto o tan solo aproximado, eso fue muy malo,
ya que si las personas queran ser equitativas no podan dividir o repartirse todo por igualdad.
Tambin se habla de las empresas y trabajos que no tenan un rpido y efectivo modo de
resolver sus operaciones fciles y difciles. Aunque si tendran resultados, era muy
desgastante y lento llegar a ellos.
La administracin de las empresas estaba no realmente muy bien organizada, haba unos
cuantos pequeos detalles que despus se iran resolviendo gracias a la invencin de la
computadora y de la computadora moderna, que hoy en da es muy efectiva para la
organizacin de empresas y eventos.
Cuando todo se moderniz, le atribuimos todo a la invencin de la Computadora y de sus
diferentes programas para la facilitacin de organizacin, resolucin de problemas
matemticos y ahora poder llevar a todas partes informacin guardada en dispositivos
extrables y de fcil uso.
Hoy parece que la vida se nos ha resuelto mucho gracias a la invencin de las
computadoras porttiles, tablets y celulares que podemos llevar a cualquier lado y conectarlas
a Internet e investigar sobre cualquier tema en especfico. Podemos buscar entretenimiento e
informacin, lo que queramos.
Aunque todo parece bueno, an nos falta mucho por investigar, conocer y crear para
todava resolver a lo que an no encontramos solucin, como el ltimo nmero decimal de PI,
o la raz cuadrada de 2 o problemas de razonamiento matemtico.
Para todo ello, es que los informticos estudian y crean programas para resolver todo lo
que manualmente no podramos hacer.






3

2. Desarrollo
PARADIGMA DE PROGRAMACIN
Un paradigma de programacin es una propuesta tecnolgica que es adoptada por una
comunidad de rogramadores cuyo ncleo central es incuestionable en cuanto a que
nicamente trata de resolver uno o varios problemas claramente delimitados. Es un estilo de
programacin empleado. 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.
El paradigma de programacin que actualmente es el ms usado es la orientacin a objetos.
El ncleo 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 reas 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.
Un paradigma de programacin representa un enfoque particular o filosofa para disear
soluciones. Los paradigmas difieren unos de otros, en los conceptos y la forma de abstraer los
elementos involucrados en un problema, as como en los pasos que integran su solucin del
problema, en otras palabras, el cmputo.
La orientacin a objeto parece estar ligada en sus orgenes con lenguajes como Lisp y Simula
aunque el primero que acu el ttulo de programacin orientada a objetos fue Smalltalk.

A continuacin se presentan los diferentes paradigmas de programacin y sus
caractersticas que los conforman:




4

Programacin imperativa
Describe la programacin en trminos del estado del programa y sentencias que
cambian dicho estado. Los programas imperativos son un conjunto de instrucciones que le
indican al computador cmo realizar una tarea.
La implementacin de hardware de la mayora de computadores es imperativa; prcticamente
todo el hardware de los computadores est diseado para ejecutar cdigo de mquina, que es
nativo al computador, escrito en una forma imperativa.
Los lenguajes imperativos de alto nivel usan variables y sentencias ms complejas, pero an
siguen el mismo paradigma. Las recetas y las listas de revisin de procesos, a pesar de no
ser programas de computadora, son tambin conceptos familiares similares en estilo a la
programacin imperativa; donde cada paso es una instruccin.
Algunos lenguajes imperativos
BASIC
C
D
Fortran
Pascal
Perl
PHP
Lua
Java
Python
Go

Programacin funcional
En ciencias de la computacin, la programacin funcional es un paradigma de
programacin declarativa basado en la utilizacin de funciones aritmticas que no maneja
datos mutables o de estado. Enfatiza la aplicacin de funciones, en contraste con el estilo de
programacin imperativa, que enfatiza los cambios de estado. La programacin funcional
tiene sus races en el clculo lambda, un sistema formal desarrollado en los aos 1930 para
investigar la definicin de funcin, la aplicacin de las funciones y la recursin. Muchos
lenguajes de programacin funcionales pueden ser vistos como elaboraciones del clculo
lambda.
Los lenguajes de programacin funcional, especialmente los que son puramente
funcionales, han sido enfatizados en el ambiente acadmico principalmente y no tanto en el
desarrollo de software comercial. 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), F# en Microsoft.NET y XSLT (XML).
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.

5

Programacin lgica
La programacin lgica es un tipo de paradigmas de programacin dentro del
paradigma de programacin declarativa. El resto de los subparadigmas de programacin
dentro de la programacin declarativa son: programacin funcional, programacin con
restricciones, programas DSL (de dominio especfico) e hbridos. La programacin funcional
se basa en el concepto de funcin (que no es ms que una evolucin de los predicados), de
corte ms matemtico. La programacin lgica gira en torno al concepto de predicado, o
relacin entre elementos.
El lenguaje de programacin lgica por excelencia es Prolog, que cuenta con diversas
variantes. La ms importante es la programacin lgica con restricciones, que posibilita la
resolucin de ecuaciones lineales adems de la demostracin de hiptesis.

Programacin declarativa
La Programacin Declarativa, en contraposicin a la programacin imperativa es un
paradigma de programacin que est basado en el desarrollo de programas especificando o
"declarando" un conjunto de condiciones, proposiciones, afirmaciones, restricciones,
ecuaciones o transformaciones que describen el problema y detallan su solucin. La solucin
es obtenida mediante mecanismos internos de control, sin especificar exactamente cmo
encontrarla (tan slo se le indica a la computadora qu es lo que se desea obtener o qu es lo
que se est buscando).
No existen asignaciones destructivas, y las variables son utilizadas con Transparencia
referencial.
Existen varios tipos de lenguajes declarativos:
Los lenguajes lgicos, como Prolog.
Los lenguajes algebraicos, como Maude y
SQL

Los lenguajes funcionales, como Haskell

Lenguajes declarativos:
Haskell (Programacin funcional)
ML (Programacin funcional)
Lisp (Programacin funcional)
Prolog (Programacin Lgica)
F-Prolog (Programacin Lgica Difusa)
Curry (Programacin Lgico-Funcional)
SQL
QML


6

Programacin orientada a objetos
La programacin orientada a objetos es un paradigma surgido en los aos 70, que
utiliza objetos como elementos fundamentales en la construccin de la solucin. Un objeto es
una abstraccin de algn hecho o ente del mundo real, con atributos que representan sus
caractersticas o propiedades, y mtodos que emulan su comportamiento o actividad. Todas
las propiedades y mtodos comunes a los objetos se encapsulan o agrupan en clases. Una
clase es una plantilla, un prototipo para crear objetos; en general, se dice que cada objeto es
una instancia o ejemplar de una clase.
La programacin orientada a objetos o POO (OOP segn sus siglas en ingls) es un
paradigma de programacin que usa los objetos en sus interacciones, para disear
aplicaciones y programas informticos. Est basado en varias tcnicas, incluyendo herencia,
cohesin, abstraccin, polimorfismo, acoplamiento y encapsulamiento. Su uso se populariz a
principios de la dcada de los aos 1990. En la actualidad, existe una gran variedad de
lenguajes de programacin que soportan la orientacin a objetos.
Lenguajes orientados a objetos
ABAP -> SAP Lenguaje
orientado a eventos
ABL Lenguaje de
programacin de
OpenEdge de Progress
Software
ActionScript
ActionScript 3
Ada
C++
C#
Clarion
Clipper
D
Object Pascal
(Embarcadero Delphi)
Gambas
Genie
Harbour
Eiffel
Fortran 90/95
Java
JavaScript
Lexico
Objective-C
Ocaml
Oz
R
Perl
PHP
PowerBuilder
Python
Ruby
Self
Smalltalk
Magik (SmallWorld)
Vala
VB.NET
Visual FoxPro
Visual Basic 6.0
Visual DataFlex
Visual Objects
XBase++
Lenguaje DRP
Scala





7

Programacin dinmica
En informtica, la programacin dinmica es un mtodo para reducir el tiempo de
ejecucin de un algoritmo mediante la utilizacin de subproblemas superpuestos y
subestructuras ptimas, como se describe a continuacin. El matemtico Richard Bellman
invent la programacin dinmica en 1953 que se utiliza para optimizar problemas complejos
que pueden ser discretizados y secuencializados.
Una subestructura ptima significa que se pueden usar soluciones ptimas de subproblemas
para encontrar la solucin ptima del problema en su conjunto. Por ejemplo, el camino ms
corto entre dos vrtices de un grafo se puede encontrar calculando primero el camino ms
corto al objetivo desde todos los vrtices adyacentes al de partida, y despus usando estas
soluciones para elegir el mejor camino de todos ellos. En general, se pueden resolver
problemas con subestructuras ptimas siguiendo estos tres pasos:
1. Dividir el problema en subproblemas ms
pequeos.
2. Resolver estos problemas de manera
ptima usando este proceso de tres pasos
recursivamente.

3. Usar estas soluciones ptimas para
construir una solucin ptima al problema
original.
En resumen, la programacin hace uso de:
Subproblemas superpuestos
Subestructuras ptimas
Memoizacin









8

3. Conclusiones

Despus de haber ledo todos estos diferentes tipos de paradigmas, podemos percatarnos
que tenemos muchas posibilidades y formas para la programacin. Tenemos para poder
resolver ecuaciones aritmticas, geomtricas, algebraicas y de todo tipo que existen, adems
de problemas de lgica.
Ya contamos con la facilidad de crear nuestros propios programas para resolver nuestros
problemas en la vida, desde poder organizar alfabticamente nombres, hasta ecuaciones y
como calcular una derivada.
Gracias a todo esto, es posible la programacin y la informtica.

















9

4. Referencias

J.W. Lloyd, Foundations of Logic Programming, Springer-Verlag, 1991.

C. Hogger, Clarendon Press, Essentials of Logic Programming, Oxford, 1990.

J.H. Gallier, Logic for Computer Science: Foundations of Automatic Theorem
Proving, John Wiley and Sons, 1987.

J. Cuena, Lgica Informtica, Editorial Alianza, 1985.

P. Julin, M. Alpuente, Programacin Lgica. Teora y Prctica, Pearson Prentice Hall,
2007.

Das könnte Ihnen auch gefallen