Paradigmas programacion

13

Transcript of Paradigmas programacion

Page 1: Paradigmas programacion
Page 2: Paradigmas programacion

¿ 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.

Page 3: Paradigmas programacion

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 orientadaa objetos, y la distribuida.

Page 4: Paradigmas programacion

•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.

PARADIGMA PROCEDURAL - Historia

Page 5: Paradigmas programacion

• ALGOL:• Los algoritmos matemáticos eran expresados con más facilidad, y funcionaban, inclusive, como el lenguaje predeterminado de algunos tipos de sistemas operativos.

• COBOL (1960) y BASIC (1964) eran ambos intentos de hacer que el sintaxisde la programación se pareciera más al inglés.

• PASCAL (1970) fue desarrollado por Niklaus With, y C fue creado porDennis Ritchie mientras trabajaba en los laboratorios Bell.

• 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.

Page 6: Paradigmas programacion

• 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#.

Page 7: Paradigmas programacion

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 APLICACIONSu 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.

Page 8: Paradigmas programacion

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.

Page 9: Paradigmas programacion

Paradigma Procedural - Estructura

Page 10: Paradigmas programacion

PARADIGMAS IMPERATIVOS 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.

1

2

Page 11: Paradigmas programacion

Concepto: está basado en el modelo matemático decomposició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.

Paradigma Funcional

Page 12: Paradigmas programacion

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

Page 13: Paradigmas programacion

Links Paradigmas Lógico, Declarativo, etc

http://www.slideshare.net/yamili7/paradigmas-de-programacion

Paradigma Imperativo

http://wilucha.com.ar/Paradigma/A_ParaImpera.html

Diferencias

http://www.genbetadev.com/paradigmas-de-programacion/diferencias-entre-paradigmas-de-programacion