Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 30

Tema III.

Paradigma Procedimental.
PR O F . C L AU D IO C O R T IN EZ
Conceptos Paradigma Imperativo.
Definiciones:
La programación imperativa (del latín imperare = ordenar) es el paradigma de programación más antiguo.
De acuerdo con este paradigma, un programa consiste en una secuencia claramente definida de
instrucciones para un ordenador.
Conceptos Paradigma Imperativo.
Definiciones:
Conceptos Paradigma Imperativo.
Definiciones:

Los lenguajes de programación imperativa son muy concretos y trabajan cerca del sistema. De esta forma,
el código es, por un lado, fácilmente comprensible, pero, por el otro, requiere muchas líneas de texto
fuente para describir lo que en los lenguajes de la programación declarativa se consigue con solo una
parte de las instrucciones.
Conceptos Paradigma Imperativo.
Paradigma Estructurado: Orígenes de la programación estructurada

A finales de los años 1970 surgió una nueva forma de programar que no solamente permitía desarrollar
programas fiables y eficientes, sino que además estos estaban escritos de manera que se facilitaba su
comprensión en fases de mejora posteriores.

El teorema del programa estructurado, propuesto por Böhm-Jacopini, demuestra que todo programa
puede escribirse utilizando únicamente las tres instrucciones de control siguientes:
• Secuencia.
• Instrucción condicional.
• Iteración (bucle de instrucciones) con condición inicial.
Conceptos Paradigma Imperativo.
Paradigma Estructurado: Orígenes de la programación estructurada

El teorema del programa estructurado proporciona la base teórica de la programación estructurada.


Señala que la combinación de las tres estructuras básicas, secuencia, selección e iteración, son
suficientes para expresar cualquier función computable.

Estas estructuras son suficientes para describir


el ciclo de instrucción de una unidad central de
procesamiento,

Así como el funcionamiento de una máquina de Turing


Conceptos Paradigma Imperativo.
Programación Estructurada:

El estilo estructurado de programación amplía el principio imperativo central con las estructuras concretas
de control: secuencias, selección e iteración. Esto se hace para mitigar o evitar por completo las
instrucciones de salto que añaden una complejidad innecesaria al código imperativo.

Las estructuras de control permiten establecer Tipos de estructuras de control:


el orden de ejecución y cambiar el flujo del • Salto
programa dependiendo de los resultados de las • Secuencia
acciones primitivas • Bifurcación
• Iteración
• Invocación (llamada) a subrutinas
• Tratamiento de excepciones
Conceptos Paradigma Imperativo.
Programación Estructurada:

Se debe poseer un conjunto de estructuras de control privilegiadas:

• Versión Dijkstra  Único punto de entrada y salida


• Versión Knuth  Más permisiva: Que sea posible dibujar un diagrama de flujo con los saltos hacia
delante a la izquierda, los saltos hacia atrás a la derecha y sin intersecciones.

Un lenguaje es (más) estructurado según la facilidad con que permita el uso de estructuras privilegiadas y
su filosofía de programación
Conceptos Paradigma Imperativo.
Programación Estructurada: Secuencia

• Expresan una secuencia temporal de ejecuciones de sentencias.

• Cada sentencia se ejecuta tras la finalización de la anterior.

Distinción entre sentencias:

• Separadores: Estilo PASCAL


• Finalizadores: Estilo C Agrupación:
• Indentación: Estilo Haskell, Phyton
• Por corchetes: Estilo C
• Por palabras reservadas: Estilo ALGOL
• Por iniciadores y finalizadores: Estilo ADA
Conceptos Paradigma Imperativo.
Programación Estructurada: Bifurcación
Permite dividir la ejecución en dos o más líneas dependiendo del resultado de una
expresión.

• Condición lógica: Bifurcación simple o doble.


• Expresión: Bifurcación múltiple
Conceptos Paradigma Imperativo.
Programación Estructurada: Iteración

Bucles controlados por condición


• Salida al principio (while)
• Salida al final (repeat)
• Salida en punto intermedio (ADA)

Bucles controlados por índice (for)

Bucles controlados por colección (foreach)


• Recorren los elementos de una estructura de datos, o en general cualquier entidad
que tenga definido un iterador sobre ella:
Conceptos Paradigma Imperativo.
Programación Estructurada: Iteración

Muchos lenguajes permiten modificar el flujo normal de un bucle:

• Salida anticipada (break)


• Paso a la siguiente iteración (continue, skip, next)
• Repetición de la iteración actual (redo): Perl, Ruby

Estos cambios se consideran estructurados (Knuth) si cumplen:

• No es posible “saltar” de un bucle más externo a otro más interno


• La salida de varios bucles anidados está etiquetada (Java)
Conceptos Paradigma Procedimental.
Definiciones:
La programación procedimental es un paradigma de programación, derivado de la programación
imperativa. Este paradigma de programación consiste en basarse en un número muy bajo de expresiones
repetidas, englobarlas todas en un procedimiento o función y llamarlo cada vez que tenga que ejecutarse
Conceptos Paradigma Procedimental.
Definiciones:
Indica un modelo de organización de programas: Los programas se organizan como colecciones de
subrutinas (procedimientos) relacionados mediante invocaciones (llamadas) entre ellas.

Propiedades que deben cumplir:

• Encapsulamiento: Las subrutinas se deben comportar como cajas negras, no deben


exponer su comportamiento al exterior.

• Independencia: Las subrutinas disponen de su propio ámbito (scope) de elementos


(variables) y deben depender lo menos posible del exterior (variables globales)

• Interfaz: Las subrutinas obtienen los valores y devuelven los resultados mediante
mecanismos sintácticos bien definidos (parámetros)
Conceptos Paradigma Procedimental.
Definiciones:
Ámbito: Las subrutinas disponen de su propio espacio de memoria, independiente del resto, para
almacenar sus variables y parámetros.

• El ámbito se crea al invocar (llamar) a la subrutina y se destruye cuando ésta finaliza su ejecución.

• Problema del enmascaramiento: Cuando los identificadores locales de una subrutina coinciden con
identificadores de elementos globales a ella.

• Subrutina reentrante: Cuando puede ser invocada sin necesidad de que haya terminado de
ejecutarse una invocación anterior (recursividad, concurrencia).

Nota: La Estructuración, las subrutinas tienen un único punto de entrada. No pueden existir gotos a
subrutinas.
Conceptos Paradigma Procedimental.
Definiciones:
Conceptos Paradigma Procedimental.
Paso de Parámetros:
Conceptos Paradigma Procedimental.
Paso de Parámetros:
Conceptos Paradigma Procedimental.
Paso de Parámetros:
Conceptos Paradigma Procedimental.
Paso de Parámetros:
Conceptos Paradigma Procedimental.
Tratamiento de Excepciones:
Conceptos Paradigma Procedimental.
Tratamiento de Excepciones:
Conceptos Paradigma Procedimental.
Implementación de Excepciones:
Conceptos Paradigma Procedimental.
Características:

• Bloques anidados
• Procedimientos
• Recursividad

Un Bloque es una sección de código contigua en la que pueden localizarse las variables. Así cualquier
información que se vaya a utilizar exclusivamente dentro de un bloque, y que no necesite ser conocida por
los bloques circundantes, puede ocultarse.

Los Procedimientos se siguen naturalmente como bloques nombrados que se pueden ser llamados desde
otras partes de un programa, y que facilitan el intercambio de información explicita entre el bloque que se
llama y el que es llamado a través de parámetros.
Conceptos Paradigma Procedimental.
Características:

El modelo de implementación TDA para los bloques es la Pila. Solamente un bloque puede estar activo a
la vez, y su memoria o almacenamiento asignado ocupa el tope o parte superior de la Pila en tiempo de
ejecución. Cuando termina un bloque, su asignación de memoria es extraída, y la memoria para el bloque
que llama será reactivada

Las variables locales pueden afectarse el desempeño solamente en el (los) bloque(s) en que sean visibles.
Conceptos Paradigma Modular.
Definición:
La programación modular es un paradigma de programación que consiste en dividir un programa
en módulos o subprogramas con el fin de hacerlo más legible y manejable

Al aplicar la programación modular, un problema


complejo debe ser dividido en varios subprogramas
más simples, y estos a su vez en otros subprogramas
más simples aún. Esto debe hacerse hasta obtener
subprogramas lo suficientemente simples como
para poder ser resueltos fácilmente con algún
lenguaje de programación. Esta técnica se llama
refinamiento sucesivo, divide y vencerás o análisis
descendente (Top-Down).
Conceptos Paradigma Modular.
Definición:

Un módulo es cada una de las partes de un programa que resuelve uno de los subproblemas en
que se divide el problema complejo original. Cada uno de estos módulos tiene una tarea bien
definida y algunos necesitan de otros para poder operar. En caso de que un módulo necesite de
otro, puede comunicarse con este mediante una interfaz de comunicación que también debe estar
bien definida.
Conceptos Paradigma Modular.
Definición:
Si bien un módulo puede entenderse como una parte de un programa en cualquiera de sus formas y
variados contextos, en la práctica se los suele tomar como sinónimos de procedimientos y funciones.
Pero no necesaria ni estrictamente un módulo es una función o un procedimiento, ya que el mismo
puede contener muchos de ellos. No debe confundirse el término "módulo" (en el sentido de
programación modular) con términos como "función" o "procedimiento", propios del lenguaje que lo
soporte
Conceptos Paradigma Modular.
Definición:
Hasta el próxima clase…

...

También podría gustarte