Está en la página 1de 29

PARADIGMAS DE PROGRAMACION

Programación Orientada a Objetos


PARADIGMA

• Un paradigma de programación es un estilo de desarrollo de


programas. Es decir, un modelo para resolver problemas computacionales.
Los lenguajes de programación, necesariamente, se encuadran en uno o
varios paradigmas a la vez a partir del tipo de órdenes que permiten
implementar, algo que tiene una relación directa con su sintaxis.
PRINCIPALES PARADIGMAS

• Imperativo. Los programas se componen de un conjunto de sentencias que cambian su


estado. Son secuencias de comandos que ordenan acciones a la computadora.
• Declarativo. Opuesto al imperativo. Los programas describen los resultados esperados sin
listar explícitamente los pasos a llevar a cabo para alcanzarlos.
• Lógico. El problema se modela con enunciados de lógica de primer orden.
• Funcional. Los programas se componen de funciones, es decir, implementaciones de
comportamiento que reciben un conjunto de datos de entrada y devuelven un valor de salida.
• Orientado a objetos. El comportamiento del programa es llevado a cabo por objetos,
entidades que representan elementos del problema a resolver y tienen atributos y
comportamiento.
LENGUAJES Y PARADIGMAS

• Scala: Imperativo, orientado a objetos, funcional, genérico y concurrente


• Perl: Imperativo, orientado a objetos y funcional
• PHP: Imperativo, orientado a objetos, funcional y reflexivo
• JavaScript: Imperativo, orientado a objetos (prototipos) y funcional
• Java: Imperativo, orientado a objetos, reflexivo y genérico
• Python y Ruby: Imperativo, orientado a objetos, reflexivo y funcional
• C++: Imperativo, orientado a objetos, funcional y genérico
• C#: Imperativo, orientado a objetos, funcional (lambda), reflexivo y genérico
PARADIGMA IMPERATIVO

• La programación en el paradigma imperativo consiste en determinar qué datos


son requeridos para el cálculo, asociar a estos direcciones de memoria y
efectuar, paso a paso, una secuencia de transformaciones en los datos
almacenados de forma tal que el estado final represente el resultado correcto.
COMPONENTES DE LA PROGRAMACIÓN
EN EL PARADIGMA IMPERATIVO

• Celdas de memoria donde se almacenan valores que son referenciados y


modificados durante la ejecución del programa, a las que se suele asignar un
nombre o identificador.
• Operaciones de asignación: son las que permiten asociar los datos o valores a
la posición de la memoria o variable que los contiene.
• Repetición: normalmente un programa iterativo realiza su tarea ejecutando
una y otra vez una secuencia de pasos elementales
VENTAJAS

• Su relativa simplicidad y facilidad de implementación de los compiladores e


intérpretes
• La capacidad de reutilizar el mismo código en diferentes lugares en el
programa sin copiarlo.
• Una forma fácil seguir la pista de flujo del programa.
• La capacidad de ser muy modular o estructurado.
• Necesita menos memoria solamente.
DESVENTAJAS

• Los datos son expuestos a la totalidad del programa, así que no hay seguridad
para los datos.
• Dificultad para relacionarse con los objetos del mundo real.
• Difícil crear nuevos tipos de datos reduce la extensibilidad.
• Se da importancia a la operación de datos en lugar de los datos mismos
EJEMPLO

• Realizar un programa que permita calcular si un estudiante de la asignatura


POO gana o pierde el semestre, teniendo en cuenta los siguientes aspectos:
• En el primer corte obtuvo una nota de 50
• En el segundo corte su nota fue 65
• En el tercer corte su nota fue 65
• La asignatura se gana con una nota mayor o igual a 60
• La Lo dos primeros cortes tienen un valor de 30% y el tercero de 40%
SOLUCIÓN

• Declarar las variable de entrada y salida


• Entrada: Nota1,nota2,nota3, Suma.
• Salida: Respuesta
• Realizar las operaciones
• Suma=nota1*0.3+nota2*0.3+nota3*0.4
• Condición=si suma>60 entonces Respuesta=“si gana” de lo contrario
Respuesta es “no gana”
• Mostrar Respuesta
PARADIGMA FUNCIONAL

• La programación funcional nos permitirá desarrollar software mucho más


legible y fácil de testear, nos concentramos en qué estamos haciendo y no en
cómo.
• La programación funcional, es un modelo basado en la evaluación de funciones
matemáticas, entendidas como mecanismos para aplicar ciertas operaciones
sobre algunos valores o argumentos, para obtener un resultado o valor de la
función para tales argumentos.
CARACTERÍSTICAS

• Los programas escritos en un lenguaje funcional están constituidos únicamente


por definiciones de funciones.
• Las funciones pueden pasarse como argumento, y llamarse desde otras
funciones
• El resultado depende de sus parámetros
• No existen asignaciones de variables ni ciclos, todas las repeticiones de
instrucciones se lleven a cabo por medio de funciones recursivas.
VENTAJAS

• Altos niveles de abstracción: El código muestra un mayor énfasis en el "¿qué se


hace?" en lugar del "¿cómo se hace?".
• Debido a los altos niveles de abstracción, los programas que aplican este
paradigma suelen ser más cortos y fáciles de entender .
• Mayor probabilidad de aplicar expansión en línea: Esta es una optimización del
compilador que sustituye los llamados a una función por la definición directa
de dicha función, de tal forma que se ahorre tiempo y espacio durante la
ejecución.
Se pueden eliminar las funciones cuyo resultado no sea utilizado.
DESVENTAJAS

• Dificultad inicial para producir buen código:


• Menor eficiencia en el uso de CPU comparados con su contraparte
imperativa:
SOLUCIÓN

• If(suma(nota1*0.3+nota2*0.3+nota3*0.4)>60;”si gana”;”no gana”)


PARADIGMA LOGICO

• Estudia el uso de la lógica para el planteamiento de problemas y el control


sobre las reglas de inferencia para alcanzar la solución automática.
• Indica como resolver un problema mediante sentencias, en esta se trabaja en
una forma descriptiva, estableciendo relaciones entre entidades, indicando no
como, sino que hacer.
CARACTERÍSTICAS

• La programación lógica: construye base de conocimientos mediante reglas y


hechos.
• Unificación de términos
• Mecanismos de inferencia automática
• Recursión como estructura de control básica
• Visión lógica de la computación
VENTAJAS

• Puede mejorarse la eficiencia modificando el componente de control sin tener


que modificar la lógica del algoritmo.
• Relaciones multipropósito.
• Simplicidad.
• Generación rápida de prototipos e ideas complejas.
• Sencillez en la implementación de estructuras complejas.
• Potencia.
DESVENTAJAS

• Altamente ineficiente.
• Pocas áreas de aplicación
• No existen herramientas de depuración efectivas.
• En problemas reales, es poco utilizado.
• Si el programa no contiene suficiente información para contestar una
consulta responde false.
PARADIGMA DECLARATIVO

• Los lenguajes declarativos son los que indican qué debe computarse, que
resultados queremos obtener, pero no necesariamente se le indica al
computador cómo hacerlo y es prerrogativa del computador elegir el orden
de las sentencias.
• Dentro de los paradigmas declarativos distinguimos:
- La programación lógica.
- La programación funcional.

CARACTERÍSTICAS

• Está orientado a buscar la solución del problema, sin preocuparse por la forma de
llegar a ello;
• Los programas están formados por un conjunto de definiciones o ecuaciones, las
cuales describen lo que debe ser calculado, no la forma de hacerlo
• Las variables sólo pueden tener asignado un solo valor a lo largo de la ejecución del
programa, lo cual implica que no puede existir asignación destructiva.
• El orden de la ejecución no resulta importante debido a que no existen efectos
colaterales.
• El control de la ejecución no es responsabilidad del programador.
VENTAJAS

• La solución de un problema se puede realizar con un nivel de abstracción


considerablemente alto, sin entrar en detalles de implementación irrelevantes,
lo que hace a las soluciones más fácil de entender por las personas.
• Su campo de aplicación es más amplio
DESVENTAJAS

• No puede resolver cualquier problema dado, sino que está restringida al


subconjunto de problemas para los que el intérprete o compilador fue
diseñado.
• Es necesaria una fase de interpretación extra, en el proceso es relativamente
más lento que en la programación imperativa,
• Los cambios de estado del sistema están dados por instrucciones particulares
y no por un conjunto de condiciones arbitrariamente grande.
SOLUCIÓN

• Compara_nota(x,y,z){
• return math.promedio(x,y,z);
•}
• IF(Compara_nota(50,65,65)>60){
• R=“SI GANA”
•}
PARADIGMA ORIENTADO A OBJETOS

• Es un paradigma de la programación de computadores que tiene como


objetivo el desarrollo computacional basado en una colección de objetos que
están interrelacionados y trabajan conjuntamente para resolver un problema.
Surge dentro de los paradigmas de la programación como un enfoque
diferente al momento de obtener soluciones computacionales.
CARACTERÍSTICAS

• Abstracción
• Encapsulamiento
• Herencia
• Polimorfismo
VENTAJAS

• Podemos eliminar código redundante y extender el uso de métodos de clases


existentes.
• Podemos construir programas a partir de módulos en lugar de tener que
empezar desde cero la escritura del código.
• El principio de ocultación ayuda a construir programas seguros que no pueden
ser invadidos por código de otras partes del programa.
• La facilidad de añadir o suprimir nuevos objetos nos permite hacer
modificaciones de una forma muy sencilla.
VENTAJAS

• El enfoque del diseño centrado en los datos nos permite capturar más detalles de un
modelo de forma que se puedan implementar.
• Se pueden mejorar y actualizar fácilmente los sistemas orientados a objetos desde los
pequeños hasta los grandes sistemas.
• Las técnicas de pase de mensajes para la comunicación entre objetos
simplifican mucho las descripciones de las interfaces con sistemas externos.
• Se puede gestionar fácilmente la complejidad del software
DESVENTAJAS

• Curva de aprendizaje: La necesidad de utilizar bibliotecas de clases obliga a su


aprendizaje y entrenamiento.
• La ejecución de programas orientados a objetos es más lenta.
• Se hereda código que no se usa en la clase hija cuando se extiende de una clase padre
• Se requiere mas tiempo en fase de diseño.
• El Tamaño del programa puede resultar muy grande

También podría gustarte