Pregunta A:paradigma Imperativo
La programación imperativa se resume en un conjunto de órdenes (operaciones) que se van ejecutando con un orden predefinido y determinado, cuya finalidad es la resolución de un problema. Estas presentan una linealidad aunque pueden producirse bucles y saltos. Las operaciones van cambiando de estado unos valores guardados, las variables. Aunque puede haber variaciones, este sería su “idea”. Sus conceptos a destacar serían:
Variables:
En la programación imperativa se producen los cambios de estado mencionados, que de alguna manera tenemos que almacenar. Esta información útil para la solución del problema, se guarda en un espacio de memoria. En este tipo de programación se predefine también como va ser la variable. Son los famosos tipos. Cuando declaramos una variable de tipo numérico “entero” en la que vamos a guardar la representación de una cantidad, lo que estamos haciendo es reservar memoria. Reservamos un espacio determinado de memoria y con una determinada capacidad que se corresponde al formato de cómo se representa la “cantidad numérica” en memoria.
El espacio quedara referenciado bajo un “nombre”, con el cual accederemos al contenido. Este nombre por tanto tendrá que ser único dentro de un mismo ámbito de variables.
Asignación:
Si tenemos nuestras variables, donde guardamos valores, de alguna manera tendremos que modificar el contenido. Esto se hace mediante la asignación, (a<-b) en la que el compilador analiza el contenido de la parte derecha de la asignación (b) y después de comprobar de que la parte de la derecha y la izquierda son “compatibles” y que se puede realizar la modificación, le asigna el valor de la expresión b a la variable a. Una de las comprobaciones es la de ver si el tipo resultante de expresión b, es compatible con el tipo de la variable a. De esta manera también se comprobaría la compatibilidad de rangos y dominios.
Procedimiento o función:
Podemos definirlo como un subprograma dentro de otro. Forma parte de la idea de que subdividimos el problema (“divide y vencerás”) para que su solución sea mas sencilla. Podemos que decir que se “delegan” operaciones a estos trozos de código. Lo que se hace es pasarle una serie de parámetros (variables) con una “llamada”. La función o procedimiento actúa sobre ellos y nos devuelve un resultado (valor) en forma de variable.
Efectos laterales:
Es uno de los problemas de la programación imperativa que por su estructura, puede provocar que una variable sea modificada por una función o procedimiento que no queremos. Es el problema de las variables globales, que pueden ser modificadas por más de un procedimiento. Frente a ello se declaran variables dentro del procedimiento (locales), a las que sólo pueden acceder las funciones o procedimientos que queramos. Es decir, restringimos su ámbito, para que solo sea accesible por las operaciones que deseamos. De alguna manera encapsulamos nuestro programa para mayor seguridad.
http://atc1.aut.uah.es/~i2/transparencias/capitulo_7.pdf
http://www.math.uaa.alaska.edu/~afkjm/cs331/handouts/imperative.pdf
