1. FUNDAMENTOS DE PROGRAMACIÓN
Ibarra Badillo Mayra Actividad 1
12590431
Paradigmas de Programación
Un paradigma de programación es una propuesta tecnológica que es adoptada por una
comunidad de programadores cuyo núcleo central es incuestionable en cuanto a que
unívocamente trata de resolver uno o varios problemas claramente delimitados. La resolución de
estos problemas debe suponer consecuentemente un avance significativo en al menos un
parámetro que afecte a la ingeniería de software. Los paradigmas de programación nos indican las
diversas formas que, a lo largo de la evolución de los lenguajes, han sido aceptadas como estilos
para programar y para resolver los problemas por medio de una computadora.
Programación imperativa
Es un paradigma de programación que describe la programación en términos del estado del
programa y sentencias que cambian. Los programas imperativos son un conjunto de instrucciones
que le indican al computador cómo realizar una tarea.
Desde esta perspectiva de bajo nivel, el estilo del programa está definido por los contenidos de la
memoria, y las sentencias son instrucciones en el lenguaje de máquina nativo del computador (por
ejemplo el lenguaje ensamblador).
Los elementos más importantes de este paradigma son:
• Variables: Son objetos cuyo valor depende de una localidad de memoria y que puede cambiar a
lo largo de la ejecución del programa. Los estados de un programa son representados y
diferenciados por su conjunto de variables y sus contenidos.
• Tipos de datos: Son abstracciones que representan un conjunto de valores junto con las
operaciones y relaciones que son aplicables a ellos.
• Expresiones: Enla programación imperativa su papel más importante está en las sentencias de
asignación. Una sentencia de asignación sirve para modificar el valor de una variable y así cambiar
el estado de un programa. Los operadores empleados pueden ser matemáticos, lógicos o una
combinación de ambos.
Nociones básicas:
-Variable con estado (valor modificable)
-Secuencia de cambios de estado
-Procedimientos
Características destacables:
Se fija completamente el orden en el que se deben realizar las operaciones con ayuda de unos
patrones de control del flujo de ejecución (secuencia, alternativa y ciclo)que sirven para construir
el esqueleto de las rutinas.
Se pueden fijar puntos de observación en el texto de una rutina y considerar los valores de las
variables (estado)cuando el flujo de ejecución pasa por dichos puntos. Estos valores pueden
cambiar de un punto a otro y en el mismo punto en momentos distintos de la ejecución.
1
2. FUNDAMENTOS DE PROGRAMACIÓN
Ibarra Badillo Mayra Actividad 1
12590431
Ventajas
Manipulación controlada
Ajusta los problemas
Control de datos de manera secuencial
Desventajas
Programación lineal
Codificación
Los programas no son seguros
Lenguajes de alto nivel y muy complejo
Programación estructurada
La programación estructurada es una forma de escribir programas de ordenador (programación de
computadora) de manera clara. Para ello utiliza únicamente tres estructuras: secuencia, selección
e iteración; siendo innecesario el uso de la instrucción o instrucciones de transferencia
incondicional (GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN).
Estructurada es una técnica en la cual la estructura de un programa, esto es, la interpelación de
sus partes realiza tan claramente cómo es posible mediante el uso de tres estructuras lógicas de
control:
A. Secuencia: Sucesión simple de dos o más operaciones.
B. Selección: bifurcación condicional de una o más operaciones.
C. Interacción: Repetición de una operación mientras se cumple una condición.
Características
1. La estructura secuencial: Está definida por el flujo de control automático de un programa. De
manera natural, a menos que otra cosa se indique, la computadora ejecuta las líneas de código en
el orden en que fueron escritas. El control del programa fluye de la línea anterior a la línea
siguiente.
2. Las estructuras de selección: Se basan en una declaración condicional. Si es verdadera, ciertas
líneas de código son ejecutadas. Si tal declaración es falsa, esas líneas no serán ejecutadas.
3. Las estructuras de repetición (o de ciclos): Su construcción también hace uso de
declaracionescondicionales. Si la condición evaluada es verdadera, un bloque de una o
másinstrucciones se repetirá, hasta que la condición sea falsa. La computadora prueba la
condición una primera vez, si es verdadera, ejecuta el bloque de comandos. Entonces, finalizada la
primera repetición,comprueba de nuevo la condición y si es verdadera se repite el bloque
nuevamente, y así sucesivamente hasta que la condición sea falsa. Ya que este funcionamiento es
cíclico, cada unade estas repeticiones es llamada también ciclo.
2
3. FUNDAMENTOS DE PROGRAMACIÓN
Ibarra Badillo Mayra Actividad 1
12590431
VENTAJAS POTENCIALES
Un programa escrito de acuerdo a estos principios no solamente tendrá una estructura, sino
también una excelente presentación.
Un programa escrito de esta forma tiende a ser mucho más fácil de comprender.
La facilidad de comprensión del contenido de un programa puede facilitar el chequeo de la
codificación y reducir el tiempo de prueba y depuración de programas.
1. Reducción de los costos de mantenimiento.
2. Los programas quedan mejor documentados internamente.
3. Aumento de la productividad del programador
4. Programas más sencillos y más rápidos
5. Se facilita la utilización de las otras técnicas para el mejoramiento de la productividad en
programación
DESVENTAJAS
Obtiene un único bloque de programa, que cuando se hace demasiado grande puede resultar
problemático su manejo; esto se resuelve empleando la programación modular, definiendo
módulos interdependientes programados y compilados por separado.
Un método un poco más sofisticado es la programación por capas, en la que los módulos tienen
una estructura jerárquica en la que se pueden definir funciones dentro de funciones o de
procedimientos.
Abstracción de datos
Los lenguajes como ADA y C++ permiten que un usuario defina tipos que se comporten casi de la
misma manera que los tipos definidos por el lenguaje. Tales tipos de datos reciben a menudo el
nombre de tipos abstractos o tipos definidos por el usuario. El paradigma de programación sobre
este tipo de datos consiste en:
a) Establecer las características de los tipos de datos abstractos se desean definir.
b) Proporcionar un conjunto completo de operaciones válidas y útiles para cada tipo de dato.
Cuando no hay necesidad de más de un objeto de un tipo dado, no es necesario este estilo y basta
con el estilo de programación de ocultamiento de datos por medio de módulos.
Ventajas
Recogen mejor la semántica de los tipos. Al agrupar la representación junto a las operaciones que
definen su comportamiento, y forzar a utilizar el TAd a través de estas operaciones se evitan
errores en el manejo del tipo de datos (Por ejemplo, la división por 0 en el caso del TAD Racional).
3
4. FUNDAMENTOS DE PROGRAMACIÓN
Ibarra Badillo Mayra Actividad 1
12590431
2. Abstracción: Separa la especificación (que hace) de la implementación (cómo lo hace). Los
usuarios de un TAD no necesitan conocer sus detalles de implementación. Como consecuencia:
a) Se favorece la extensibilidad del código: Es posible modificar y mejorar la implementación del
TAD sin afectar a los demás módulos que lo utilizan.
b) Aumenta la facilidad de uso.
c) Aumenta la legibilidad del código que usa el TAD.
3. Produce código reutilizable.
4. Favorece la ausencia de errores, al reutilizar código ya probado y forzar a utilizar la estructura
de datos correctamente.
Programación orientada a objetos (POO)
La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de
programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas
informáticos. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y
encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad,
existe variedad de lenguajes de programación que soportan la orientación a objetos.
El problema con la abstracción de datos es que no hay ninguna distinción entre las propiedades
generales y las particulares de un conjunto de objetos.
Características fundamentales de la POO:
1. Encapsulamiento: Es la ocultación de información. Significa mantener la información dentro
del objeto y mantenerlo como una caja negra. Puede ser accedida por métodos.
2. Abstracción: Es la capacidad de aislar y encapsular la información del diseño y la ejecución.
Es la capacidad para identificar atributos y métodos.
La ventaja de la herencia es que permite la reutilización de código,
ahorrando tiempo y dinero.
3. Herencia: Es la propiedad que permite a los objetos crearse a partir de otros objetos. Cada
subclase comparte características comunes con la clase de la que deriva. La clase original la
llamamos clase base y las nuevas clases creadas a partir de ella clases derivadas. Una clase
derivada puede ser también clase base dando lugar a una jerarquía de clases.
4. Polimorfismo: Es la capacidad de que diferentes objetos reaccionen de distinta forma a un
mismo mensaje. Es la capacidad de referirse a objetos de clases distintas en una jerarquía
utilizando el mismo elemento de programa (método) para realizar la misma operación, pero
de manera diferente.
4
5. FUNDAMENTOS DE PROGRAMACIÓN
Ibarra Badillo Mayra Actividad 1
12590431
Características Secundarias de la POO:
1. Tipificación: Permite la agrupación de objetos en tipos.
2. Concurrencia: Los objetos pueden actuar al mismo tiempo.
3. Persistencia: Un objeto puede seguir existiendo tras desaparecer su antecesor.
Gran parte de los lenguajes más utilizados hoy en díaestán orientados a objetos,entre ellos se
encuentran: Java, C++, PHP, Python, C#, Delphi, Ruby, D y Actionscript,entre otros.
Ventajas de la programación orientada a objetos
Vamos a ver las ventajas más importantes de la programación orientada a objetos:
Reusabilidad. Cuando hemos diseñado adecuadamente las clases, se pueden usar en
distintas partes del programa y en numerosos proyectos.
Mantenibilidad. Debido a la sencillez para abstraer el problema, los programas orientados a
objetos son más sencillos de leer y comprender, pues nos permiten ocultar detalles de
implementación dejando visibles sólo aquellos detalles más relevantes.
Modificabilidad. La facilidad de añadir, suprimir o modificar nuevos objetos nos permite
hacer modificaciones de una forma muy sencilla.
Fiabilidad. Al dividir el problema en partes más pequeñas podemos probarlas de manera
independiente y aislar mucho más fácilmente los posibles errores que puedan surgir.
Fomenta la reutilización y extensión del código.
Permite crear sistemas más complejos.
Relacionar el sistema al mundo real.
Facilita la creación de programas visuales.
Construcción de prototipos
Agiliza el desarrollo de software
Facilita el trabajo en equipo
Facilita el mantenimiento del software
La programación orientada a objetos presenta también algunas desventajas como pueden ser:
Cambio en la forma de pensar de la programación tradicional a la orientada a objetos.
La ejecución de programas orientados a objetos es más lenta.
La necesidad de utilizar bibliotecas de clases obliga a su aprendizaje y entrenamiento.
Exige conocer bien la teoría de objetos.
Requiere mayor capacidad de los programadores.
Conclusión
Un paradigma es el resultado de un proceso social y tecnológico en el cual un grupo de personas
programadores desarrolla nuevas ideas, crea principios y prácticas alrededor de estas ideas, los
paradigmas de programación nos indican las diversas formas para programar a lo largo de la
evolución de los lenguajes de programación, que han sido aceptados como estilos para programar
y para resolver los problemas por medio de una computadora. En la actualidad el paradigma más
usado es la programación orientada a objetos.
5
6. FUNDAMENTOS DE PROGRAMACIÓN
Ibarra Badillo Mayra Actividad 1
12590431
Bibliografía
Héctor Zárate | www.mieldemaple.com
http://www.taringa.net/posts/ciencia-educacion/9145179/Paradigma-de-Programacion.html
http://www.genbetadev.com/paradigmas-de-programacion/diferencias-entre-paradigmas-de-
programacion
Scott, Michael Lee. Programming Languages Pragmatics. Estados Unidos: MorganKauffmannPublishers,
2000.
• Sebesta, Robert W. Concepts of Programming Languages. Estados Unidos: PearsonEducation, 2004.
• Linz, Peter. An Introduction to Formal Languages and Automata.EstadosUnidos: Jonesand Bartlett
Publishers, 2001.
• Craig, Iain. Object-Oriented Programming Languages: Interpretation. EstadosUnidos:Springer, 2007.
• Bruce, Kim. Foundations of Object-oriented Languages: Types and Semantics. EstadosUnidos: MIT Press,
2002.
http://es.scribd.com/doc/6167605/9/Desventajas-de-la-programacion-estructurada
6