martes, 14 de noviembre de 2006

Paradigma Imperativo

El paradigma imperativo se caracteriza por un modelo abstracto de ordenador consistente en un gran almacenamiento de memoria

Viene representado por la arquitectura Von Neumann, ya que utiliza este modelo para conceptualizar las soluciones. El programa en memoria se ejecuta secuencialmente y va utilizando la memoria para recoger datos con los que efectúa ciertos cálculos y finalmente actualiza la memoria.

En este paradigma se trata de determinar que datos son requeridos para el cálculo, esos datos se asocian a una dirección de memoria y secuencialmente se efectúan transformaciones sobre los datos almacenados, siendo el resultado correcto el estado final.

Se le llama paradigma imperativo porqué las sentencias imperativas desempeñan un papel dominante.

La esencia de este paradigma es el cálculo iterativo, paso a paso, de valores de nivel inferior y su asignación a posiciones de memoria.

Las características fundamentales de este paradigma son:

1. Sentencias simples y bifurcaciones.
Este paradigma en su forma pura, únicamente soporta sentencias simples que modifican la memoria y efectúan bifurcaciones condicionales e incondicionales.

2. Concepto de celda de memoria para almacenar valores.
La arquitectura se basa en la memoria, compuesta por un gran número de celdas donde se almacenan los datos. Las celdas son referenciadas por un nombre (concepto de variable) y sobre los que se producen efectos de lado y definiciones de alias.

3. Operaciones de asignación.
Cada valor debe ser almacenado, es decir, asignado a una celda. Por esto es tan importante la sentencia de asignación en este paradigma. Los conceptos de celda de memoria y asignación en bajo nivel, se extienden a todos los lenguajes de programación y hacen que los programadores tengan un estilo de pensamiento basado en la arquitectura Von Neumann.

4. Repetición.
Un programa imperativo suele realizar su tarea ejecutando repetidamente secuencias de pasos, ya que la repetición de instrucciones es la única forma de ejecutar algo complejo en este modelo.

No hay comentarios: