Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Cursos gratis / Metodologías usadas en ingeniería del software - Paradigma imperativo

Metodologías usadas en ingeniería del software - Paradigma imperativo

 ****- (21 opiniones)
Creative Commons Curso gratis de Rafael Menéndez-Barzanallana Asensio - 17 de Agosto de 2005
4. Paradigma imperativo
Este paradigma se caracteriza por un modelo abstracto de ordenador que consiste en un gran almacenamiento de memoria.
El ordenador almacena una representación codificada de un cálculo y ejecuta una secuencia de comandos que modifican el contenido de ese almacenamiento. Este paradigma viene bien representado por la arquitectura Von Neuman (1903-1957), ya que utiliza este modelo de máquina para conceptualizar las soluciones: "Existe un programa en memoria que se va ejecutando secuencialmente, y que toma unos datos de la memoria, efectúa unos cálculos y actualiza la memoria".
La programación en el paradigma imperativo consiste en determinar qué datos son requeridos para el cálculo, asociar a esos datos unas direcciones de memoria, y efectuar paso a paso una secuencia de transformaciones en los datos almacenados, de forma que el estado final represente el resultado correcto.
En su forma pura este paradigma sólo soporta sentencias simples que modifican la memoria y efectúan bifurcaciones condicionales e incondicionales. Incluso cuando se añade una forma simple de abstracción procedimental, el modelo permanece básicamente sin cambiar. Los parámetros de los procedimientos son "alias" de las zonas de memoria, por lo que pueden alterar su valor, y no retorna ningún tipo de cálculo. La memoria también se puede actualizar directamente mediante referencias globales.
El paradigma imperativo debe su nombre al papel dominante que desempeñan las sentencias imperativas. Su esencia es el cálculo iterativo, paso a paso, de valores de nivel inferior y su asignación a posiciones de memoria.
Si se analizan las características fundamentales de este tipo de paradigma se detectan las siguientes:
  • Concepto de celda de memoria ("variable") para almacenar valores. El componente principal de la arquitectura es la memoria, compuesto por un gran número de celdas donde se almacenan los datos. Las celdas tienen nombre (concepto de variable) que las referencian, y sobre los que se producen efectos de lado y definiciones de alias.
  • Operaciones de asignación. Estrechamente ligado a la arquitectura de la memoria, se encuentra la idea de que cada valor calculado debe ser "almacenado", es decir asignado a una celda. Esta es la razón de la importancia de la sentencia de asignación en el paradigma imperativo. Las nociones de celda de memoria y asignación en bajo nivel, se tienden a todos los lenguajes de programación y fuerzan en los programadores un estilo de pensamiento basado en la arquitectura Von Neumann.
  • Repetición. Un programa imperativo, normalmente realiza su tarea ejecutando repetidamente una secuencia de pasos elementales, ya que en este modelo computacional la única forma de ejecutar algo complejo es repitiendo una secuencia de instrucciones.

A este tipo de paradigma de programación se le suele llamar algorítmico, dado que el significado de algoritmo es análogo al de receta, método, técnica, procedimiento o rutina, y se define como "un conjunto finito de reglas diseñadas para crear una secuencia de operaciones para resolver un tipo específico de problemas". De esta forma para N. Wirth, un programa viene definido por la ecuación

Algoritmos + Estructura de Datos = Programas





No obstante, entendemos que aunque el concepto de algoritmo encaja en otros tipos de paradigmas, es privativo del tipo de programación procedimental en el que su característica fundamental es la secuencia computacional.
Atendiendo a los lenguajes imperativos, cabe clasificarlos en "orientados a expresiones" y "orientados a sentencias", según jueguen las expresiones o sentencias un papel más predominante en el lenguaje, respectivamente. Ambos son términos relativos y no se pueden aplicar de forma absoluta. Se puede decir que C, FORTRAN; Algol, Pascal, son lenguajes orientados a expresiones, mientras que COBOL y PL/1 están orientados a sentencias.
Las expresiones se han encontrado útiles principalmente porque son simples y jerárquicas y pueden combinarse uniformemente para construir expresiones más complejas. Sí pues, las expresiones no sufren influencias de la arquitectura de Von Neumann.
Como ejemplos de programación imperativa, se muestran en lenguaje Pascal la generación de números primos mediante la criba de Eratóstenes, y en lenguaje C la ordenación de datos mediante el método de la burbuja.

|| Números Primos
(* Genera números primos en el rango 2..n, utilizando la criba de Eratóstenes *)
Program primos(input, output);
Const n=50;
Var i: 2..n;
j: 2..25;
iprimo: boolean;
Begin
for i:=2 to n do
Begin (* ¿ Es primo i ? *)
j:=2; iprimo:=true;
While iprimo and (j<=i div 2) do
if ( (i mod j) <>0)
then j:=j+1 else iprimo:=false;
(* Si es primo imprime su valor *)
if iprimo then write (i:3)
End
End.
||


En este programa se destacan las tres características principales del paradigma imperativo:

  • Celdas de memoria: declaraciones de var (i,j, primo)
  • Operaciones de asignación de tipo destructivo: j:=2, iprimo:=true, ..
  • Sentencias repetitivas: for y while

|| Ordenar
/* Ordena un conjunto de datos leídos desde el dispositivo de entrada, utilizando el método de la burbuja */
#include
void ordenar (int *, int);
void escribir (int *, int);
main( )
{
int n=0, dato;
int a[50];
scanf("%d", &dato);
while(dato != EOF);
a[n++] = dato;
scanf("%d",&dato); }
ordenar(a,n-1);
escribir(a,n-1);
}
/* función ordenar */
void ordenar (int a[ ], int n)
{
int i,j, tem;
for (i=0; i<n; y++)
for (j=i+1; j<=n; j++)
if (a[i]>a[j])
{tem = a[i];
a[i]=a[j];
a[j]=tem;}
}
void escribir (int a[ ], int n)
{
int i;
for (y=0; i<n; y++)
{
if (!(i % 10)) printf ("\n");
printf("% 5d", a[i]);
}
}
||





La función ordenar compara parejas de datos contiguos e intercambia su contenido si el primero es mayor que el segundo. Y en cada iteración de la variable j, coloca en la cabeza de la lista que está ordenando el dato menor (la burbuja más ligera)
En este ejemplo, al igual que en anterior predominan los tres componentes descritos del paradigma imperativo.
Autor y licencia de 'Metodologías usadas en ingeniería del software - Paradigma imperativo'
Rafael Menéndez-Barzanallana Asensio Extraído de: http://www.um.es/docencia/barzana

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Metodologías usadas en ingeniería del software - Paradigma imperativo'

Un exhaustivo conjunto de ensayos y artículos que recorren la década de 1990 y los... Más »
Un sistema informático utiliza ordenadores para almacenar datos, procesarlos y ponerlos a disposición de quien... Más »
Un sistema informático utiliza ordenadores para almacenar datos, procesarlos y ponerlos a disposición de quien... Más »
Un sistema informático utiliza ordenadores para almacenar datos, procesarlos y ponerlos a disposición de quien... Más »
Este CÓMO describe cómo usar un RAID software bajo Linux. Debería usar los parches RAID... Más »
Gente Wiki
Clara Bobadilla Mendoza
Hola! soy geográfa, egresada de la unam méxico,con maestria en ordenamiento territorial. Mi pasatiempo favorito es el buceo, lectura ciencia ficción...
Mariella Soledad Salgado Camacho
Hola! mi nombre es mariella, profesora de educación física de profesión... Enseñar lo que estudié me apasiona, así como también la...
Dirección de cine
Pere Esteve Ràfols
Un loco de la música, el multimedia, el diseño i la buena cocina. Freelance incansable que ha veces se...
Jairo Enrique Bolaño De La Hoz
Convencido de que cada día se aprende más, y que los mejores amigos se consiguen en un aula de clases,...
José Luis Orihuela
Profesor universitario, conferenciante y bloguer. Autor de la revolución de los blogs, la esfera de los libros, madrid, 2006 y...
Gestión de contenidos
Aitor Arango
Jinete desde hace 18 años, profesor desde hace 7, experiencia jugando al horseball y todo dedicado al mundo de...
Equitación, Horseball,...
Suscribirse
¿Estás seguro de que deseas eliminar este capítulo?