Está en la página 1de 8

Nombre: Torres Escalante Luis Samuel

Curso: 2 NRC: 2182

Fecha de envío de la consulta: 17 de abril del 2018

Tema: Clase_Teorica_1

1. Determine que paradigmas de programación existen explique de que se


tratan, sus diferencias, ventajas y desventajas. (PARADIGMAS DE
PROGRAMACIÓN)

¿Qué es un paradigma de programación?

Un paradigma de programación indica un método de realizar


cómputos y la manera en que se deben estructurar y organizar las
tareas que debe llevar a cabo un programa”, Los paradigmas
fundamentales están asociados a determinados modelos de
cómputo.(Héctor Flórez, 2012).
Tipos de Paradigmas de programación
Paradigma Imperativo:
 Describe cómo debe realizarse el cálculo, no el porqué.
 Un cómputo consiste en una serie de sentencias, ejecutadas según un
control de flujo explícito, que modifican el estado del programa.
 Las variables son celdas de memoria que contienen datos (o referencias),
pueden ser modificadas, y representan el estado del programa.
 La sentencia principal es la asignación.

Paradigma Declarativo:
 Describe que se debe calcular, sin explicitar el cómo.
 No existe un orden de evaluación prefijado.
 Las variables son nombres asociados a definiciones, y una vez
instanciadas son inmutables.
 No existe sentencia de asignación.
 El control de flujo suele estar asociado a la composición funcional, la
recursividad y/o técnicas de reescritura y unificación.
Paradigma de la programación Lógica:

Es un paradigma de programación que se basa en el concepto de función.


Es un paradigma muy orientado a las matemáticas. Este paradigma lo
soportan lenguajes como ‘Prolog’.(Héctor Flórez, 2012)

Paradigma orientado a objetos (OO) :

Define los programas en términos de comunidades de objetos. Los


objetos con características comunes se agrupan en clases (un concepto
similar al de tipo abstracto de dato (TAD)). Los objetos son entidades que
combinan un estado (es decir, datos) y un comportamiento (esto es,
procedimientos o métodos). Estos objetos se comunican entre ellos para
realizar tareas.

Es en este modo de ver un programa donde este paradigma difiere del


paradigma imperativo o estructurado, en los que los datos y los métodos
están separados y sin relación.

El paradigma OO surge para solventar los problemas que planteaban


otros paradigmas, como el imperativo, con el objeto de elaborar
programas y módulos más fáciles de escribir, mantener y reutilizar. Entre
los lenguajes que soportan el paradigma OO están Smalltalk, C++, Delphi
(Object Pascal), Java y C#.

Paradigma orientado a aspectos(POA):

La programación orientada a aspectos (POA) es un paradigma de


programación que basa su filosofía en tratar las obligaciones
transversales de nuestros programas como módulos separados
(aspectos) para lograr una correcta separación de responsabilidades. Una
obligación transversal es aquella que se repite en varias partes de un
programa independientemente de si las secciones en las que aparece
tienen relación directa

Diferencias entre:

Paradigma Imperativo y declarativo:

La principal diferencia entre ambos paradigmas es que 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. Es decir,
se describe un algoritmo en el que se detallan los pasos secuenciales
necesarios a seguir para la resolución de un problema.

Y en la programación declarativa 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 sí.
Paradigma imperativo y Orientado a objetos:

La diferencia con otras formas de programación imperativas como la


programación estructurada es que en la orientación a objetos se hace
uso de estructuras de datos llamadas objetos que aglutinan
propiedades y métodos juntamente con sus interacciones.

Un objeto es una estructura abstracta que describe con la mayor


fiabilidad posible un objeto del mundo real y como se relaciona o
interactúa con el resto del mundo que lo rodea a través de interfaces. La
programación orientada a objetos se basa también en conceptos como
la abstracción de datos, la encapsulación, los eventos, el modularidad,
la herencia y el polimorfismo.

Paradigma Declarativo y Orientado a objetos:

La principal diferencia entre ambos paradigmas es que 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. Y en la programación declarativa 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.

Ventajas:

Programación Orientada a Aspectos

 Código menos enmarañado, más natural y más reducido.


• Mayor facilidad para razonar sobre los conceptos, ya programación
orientada a aspectos que están separados y tienen una dependencia
mínima.
• Facilidad en depurar y modificar el código
• Código más reusable y que se puede acoplar y desacoplar cuando sea
necesario.
(Gozález, 2014)

Programación Orientada a Objetos

Escribir códigos es más fácil porque se pueden conceptualizar como


algo que le sucede a un objeto. Otra ventaja es que POO hace que los
programas grandes sean más manejables.

Si todas las ventanas pertenecen a una jerarquía de clases de ventanas


y todo el código que se refiere a una ventana particular está dentro de
esa ventana, todas las manipulaciones de ventana se pueden escribir
como una sencilla transferencia de mensajes.

Paradigma de programación declarativo

Programas con un lenguaje declarativo son a menudo más pequeños


que los hacen con un lenguaje imperativo. Esto es porque usted
necesita utilizar menos código para lograr un objetivo. El código que
define cómo lograr una tarea realmente se construye en el lenguaje de
programación o en el propio ordenador.

Debido a la naturaleza simplista de una lengua declarativa, gente nueva


programación puede recoger rápidamente los conceptos básicos del
paradigma y escribir un programa con facilidad. Usando HTML, usted
puede aprender más rápido cómo diseñar una sencilla página Web que
incluye artículos tales como enlaces, imágenes y texto.

Paradigma de programación Lógica

 Código declarativo y comprensible: Debido a los altos niveles de


abstracción, los programas que aplican este paradigma suelen ser
más cortos y fáciles de entender que sus versiones en programación
imperativa.
 La evaluación perezosa, Esta estrategia de evaluación permite
realizar cálculos por demanda, evitando gasto computacional
innecesario. Las características del paradigma, en especial la
utilización de funciones puras, permiten realizar ciertas
optimizaciones particulares.
 Se pueden eliminar las funciones cuyo resultado no sea
utilizado.

Desventajas:

Programación Orientada a objetos

 Limitaciones del programador: Es posible el programador


desconozca algunas características del paradigma y de hecho siga
utilizando el paradigma estructurado.
 No hay una forma única de resolver los problemas. Esto puede llevar
a que diferentes interpretaciones de la solución planteada emerjan.
 Se requiere una documentación amplia para determinar la solución
planteada.
Paradigma de programación Lógica

 El principal inconveniente de este método de programación es


que se obtiene un único bloque de programa, que cuando se hace
demasiado grande puede resultar problemático el manejo de su
código fuente
 Se obtiene un único bloque de programa, que cuando se hace
demasiado grande puede resultar difícil su manejo

Paradigma de programación Declarativo


o No se dispone de algoritmos formales de modularidad, por lo que
a veces los programadores no tienen claras las ideas de los módulos
 La programación modular requiere más memoria y tiempo de
ejecución

Paradigma de programación Imperativo

 No garantiza obtener beneficios al100%


 -Lleva tiempo aplicarla correctamente y requiere:
 Programadores muy curiosos, tenaces, competitivos y progresistas.
 Implica dedicarse más a planear, analizar y diseñar antes de
programar.

Paradigma de programación Orientada a Aspectos


 Posibles choques entre el código funcional, expresado en lenguaje
base y el código de aspectos, expresado en los lenguajes.
 Posibles choques entre aspectos
 Posibles choques entre el código de aspectos y los mecanismos de
lenguajes

2.Diferencia entre Programación Orientada a Objetos(Java) y


Programación Estructurada(C++)

 La programación estructurada consta, cómo su nombre lo indica de una


estructura donde se va ejecutando paso a paso y este debe tener una
secuencia y una lógica para su función sea eficiente.
 La programación orientada a objetos se basa en una nueva forma de
pensar los problemas, declarando variables o los tipos de datos los
objetos del problema, y que, a su vez, cada objeto tiene anidadas
variables que hacen referencia al dato.
 La programación estructurada pretende resolver un problema de
principio a fin en una sola estructura de código. La programación
orientada a objetos resuelve el problema identificando los actores que
tienen participación en el problema e identificando también sus
acciones. Con esta información se crean los objetos, estos objetos
están compuestos por clases donde se detalla las acciones que
realizan y las propiedades de estos. Al Tener creados los objetos solo
es ponerlos e interactuar con ellos.

4.Determine un concepto propio de Clase y Objeto(puede basarse en


Conceptos de otros autores con su correspondiente bibliografía)
Una Clase se define como un tipo abstracto de dato que contiene
atributos y métodos. Través de este se implementa un concepto
abstraído de la realidad.
Un objeto es una cosa tangible, algo a que se puede aprehender
intelectualmente o algo hacia lo que se puede dirigir una acción o
pensamiento. representa un ítem individual e identificable, o una
entidad real o abstracta

5. De un ejemplo explicativo donde conste: La representación gráfica de


una clase con sus correspondientes atributos y métodos
correspondientes.

En este ejemplo tenemos la Clase Auto y el principal objeto que es el auto con
su atributo descapotable que es un dato boolean ya que puede tomar los valores
de si o no, y métodos que corresponden a subir y bajar que no devuelven datos
ya que es de clase void.
6.Explique que es la instancia de una clase a través de un ejemplo gráfico)
Una instancia en programación no es otra cosa que una referencia de una clase
hacia otra con lo cual permite a ambas clases interactuar entre sí.
Decimos que un objeto es una instancia de una clase. Por ejemplo, el taxi
matrícula BFG-7452 es una instancia de la clase Taxi. Varios objetos (p.ej. taxis)
de una misma clase decimos que constituyen instancias múltiples de la clase.

7. Determine de que se trata el puntero this. Explique su utilidad a través


de un ejemplo.
El puntero this es un atributo especial del objeto, el cual guarda la dirección de
memoria del objeto para poder referirse a si mismo en cualquier momento, esto
es usado por la manera de distribuir los objetos en memoria.
El puntero this se inicializa para apuntar al objeto para el cual se llama a la
función miembro.

Bibliografía
Gozález, C. (2014). Programación Orientada a Aspectos. Obtenido de Programación:

https://ldc.usb.ve/~yudith/docencia/ci-4822/presentacionPOA.pdf

Héctor Flórez. (2012). Programación Orientada a Objetos usando Java (Vol. 1). Bogotá: ECOE.