Paradigmas de Programación: Procedural, Funcional y Lógico
1.
2. ¿ QUÉ ES UN PARADIGMA ?
Una propuesta tecnológica, adoptada por una
comunidad de programadores, cuyo núcleo central es
incuestionable en cuanto a que únicamente trata de
resolver uno o varios problemas claramente
delimitados.
3. PARADIGMA PROCEDURAL
•Describe sentencias que modifican el estado de un programa.
•Es natural para las CPUs que se basan en este paradigma al
nivel más básico.
•Se expresa cómo se debe de solucionar un
problema, especificando una secuencia de acciones a realizar a
través de subrutinas o funciones.
•Dentro de ella está la programación estructurada, la orientada
a objetos, y la distribuida.
4. PARADIGMA PROCEDURAL - Historia
•Los lenguajes imperativos más antiguos
eran los lenguaje máquina .
•Las instrucciones eran muy simples, lo que
hacía la implementación del hardware más
fácil, pero detenía la creación de programas
complejos.
• FORTRAN (1954) :
• primer lenguaje de programación capaz de
remover los obstáculos presentados por el código
máquina en la creación de programas complejos.
•Lenguaje compilado . Permitía variables
declaradas, expresiones
complejas, subprogramas, y otras características
que ahora son comunes en lenguajes imperativos.
5. • ALGOL:
• Los algoritmos matemáticos eran expresados con más facilidad, y
funcionaban, inclusive, como el lenguaje predeterminado de algunos
tipos de sistemas operativos.
• MUMPS:
• Llevaba al paradigma imperativo a un extremo lógico, ya que no tenía
sentencias, y confiando únicamente en comandos, hasta el punto que
los comandos IF y ELSE era independientes uno del otro y estaban
conectados solamente con una variable intrínseca llamada $TEST.
• COBOL (1960) y BASIC (1964) eran ambos intentos de hacer que el sintaxis
de la programación se pareciera más al inglés.
• PASCAL (1970) fue desarrollado por Niklaus With, y C fue creado por
Dennis Ritchie mientras trabajaba en los laboratorios Bell.
6. • La programación orientada a objetos tuvo un crecimiento en interés inmediato en
los 80s.
• Tenían un estilo imperativo, pero agregaba ciertas características para poder usar
objetos.
•Sacando conceptos de otros lenguajes orientados a objetos aparecieron:
•Simula, que es considerado el primer lenguaje de programación orientado a
objetos y desarrollado en los 60.
•C++, que fue primero implementado en 1985
•Python 1990
•Visual Basic y Visual C++ lanzado por la Microsoft en 1991 y 1993
respectivamente.
•PHP en 1995
•Java, lanzado originalmente por Sun Microsystems en el 1994
•Microsoft .NET en el 2002, cuyo núcleo es imperativo al igual que VB.NET, C#
y F#.
7. Paradigma Procedural Características
Tiene su límite natural en dos de sus características intrínsecas:
EFECTOS LATERALES
Hace que los programas no sean seguros puesto que cualquier posición
de memoria puede ser actualizada de forma no adecuada
El concepto de una única memoria global actualizada de forma repetida
por las instrucciones del programa dificulta la portabilidad y
reusabilidad de código.-Por tal razón, para minimizar los problemas por
la existencia de variables en memoria compartida aparece el paradigma
funcional, donde la ausencia de efectos laterales es su rasgo definitorio
fundamental.
LIMITACION de APLICACION
Su operativa se ajusta únicamente a aquellos problemas de naturaleza
algorítmica clásica, similares en ejecución al de los cálculos
matemáticos que no abordan con solvencia muchos problemas
interesantes para resolver con la computadora.
En resumen, podemos señalar que el paradigma imperativo propicia un
entorno de programación procedimental, en el que la secuencia de
control y el concepto de variable son sus componentes fundamentales.
8. Si se analizan las características fundamentales de este paradigma se
detectan las siguientes:
Concepto de celda de memoria ("variable") para almacenar valores. El
componente principal de la arquitectura es la memoria, compuesto por
un gran número de celdas donde se almacenan los datos. Las celdas
tienen nombre (concepto de variable) que las referencian, y sobre los que
se producen efectos de lado y definiciones de alias.
Operaciones de asignación: Estrechamente ligado a la arquitectura de la
memoria, se encuentra la idea de que cada valor calculado debe ser
"almacenado", es decir asignado a una celda. Esta es la razón de la
importancia de la sentencia de asignación en el paradigma imperativo.
Las nociones de celda de memoria y asignación en bajo nivel, se tienden
a todos los lenguajes de programación y fuerzan en los programadores
un estilo de pensamiento basado en la arquitectura de Von Neumann.
Las asignaciones poseen la forma siguiente:
expresión1:=expresión2 donde: 1: denota la localidad de
memoria y 2 : denota un valor.
Repetición: Un programa imperativo, normalmente realiza su tarea
ejecutando repetidamente una secuencia de pasos elementales, ya que
en este modelo computacional la única forma de ejecutar algo complejo
es repitiendo una secuencia de instrucciones.
10. PARADIGMAS IMPERATIVOS
1
PARADIGMAS DECLARATIVOS
En la programación imperativa se
describe paso a paso un conjunto de
instrucciones que han de ejecutarse
con la finalidad de variar el estado del
programa y resolver un problema para
hallar una solución.
solo se describe el problema pero no los
pasos necesarios para llegar a su
solución, la cual es hallada mediante
mecanismos internos de inferencia de
información a partir de la descripción
del problema en si.
Se basa en la máquina de Turing
Se basa en el cálculo lambda.
2
11. Paradigma Funcional
Concepto: está basado en el modelo matemático de
composición funcional. En este modelo, el resultado de un cálculo
es la entrada del siguiente, y así sucesivamente hasta que una
composición produce el resultado deseado. Así, un programa es un
conjunto de funciones que cooperan entre ellas para el logro de un
objetivo común.
Tipos de lenguajes:GOFER , HASKELL, LISP.
Dicho paradigma es buscar satisfacer las necesidades del usuario con
respecto a operaciones matemáticas y convertirse en un lenguaje más
expresivo.
12. PARADIGMA DE PROGRAMACIÓN LÓGICA
Tiene como característica principal la aplicación de las reglas de la
lógica para inferir conclusiones a partir de datos, a través de un
motor de inferencias lógicas, responder preguntas planteadas al
sistema y así resolver los problemas.
TIPOS DE PROGRAMAS: PROLOG, Mercury, Oz