Programación Imperativa.



Programación Imperativa.



  1. PARADIGMA IMPERATIVO 
  2. Uno de los paradigmas mas representativos de la programación y de hecho el primer paradigma formalmente aceptado es el imperativo. Imperar significa mandar, ordenar, y eso es exactamente lo que hacemos al programar.

  3. El paradigma imperativo apareció en los 50 con los primeros lenguajes de programación. También es llamado procedimental o algorítmico. La programación imperativa se rige por dos conceptos básicos para la construcción de programas: la estructura y el modulo. De ahí que se hable de programación estructurada y de programación modular. La programación en el paradigma imperativo consiste en determinar qué datos son requeridos para el cálculo, asociar a estos direcciones de memoria y efectuar, paso a paso, una secuencia de transformaciones en los datos almacenados de forma tal que el estado final represente el resultado correcto.
  4. En la programación imperativa el estado del programa se mantiene en forma de datos en la memoria del computador. Estos datos son modificables mediante sentencias de asignación.  

  5. Modificación de datos

    Uno de los elementos de la arquitectura de Von Newmman son las celdas de memoria en la que se almacenan los datos. Estas celdas de memoria tienen direcciones únicas y pueden modificarse con sentencias específicas. Una tarea fundamental de un lenguaje imperativo es proporcionar una abstracción que convierta estas celdas de memoria en conceptos de más alto nivel, en forma de datos accesibles y modificables.
    Un Array, por ejemplo, define una estructura de datos que se almacena directamente en memoria y que puede ser accedido y modificado.
    En Scala podemos definir un array utilizando la palabra clave Array. Los arrays de Scala, al igual que las listas, son homogéneos. Esto es, todos sus objetos deben tener el mismo tipo de datos. A diferencia de las listas, los arrays son mutables, aunque de tamaño fijo. Una vez instanciada una variable de tipo array podemos modificar sus componentes, pero no añadir más elementos.
    val unoDosTres = Array("uno","dos","tres")
    El código anterior define implícitamente la variable unoDosTres como una variable de tipo Array[String]. Para acceder a los componentes de un array se utilizan los paréntesis y se comienza por el cero. Por ejemplo, el siguiente código modifica el valor de la última componente del array con la primera:
    unoDosTres (2) = unoDosTres (0)
    Y la siguiente función muestra cómo se define un parámetro de tipo array de cadenas (Array [String]). La función recibe un array y copia en todos sus elementos el primer dato.
    def llenaArray(array: Array[String]) = {
       var i = 1
       while (i < array.length) {
          array(i) = array(0)
          i += 1
       }
    }
  6. 
    
  7. Origen de la Programación Imperativa
  8. Fue en el año de 1945 cuando el matemático Jhon Von Neumann fascinado por las posibilidades de ENIAC (Electronic Numerical Integrator and Computer) elaboró un estudio que demostró que una computadora podía tener una estructura física muy simple y fija, y aun así ser capaz de ejecutar cualquier tipo de programa mediante un control correcto, sin la necesidad de modificar la computadora para esto. A partir de esta innovación de Von Neunmann, que en conjunto se conoce como la técnica de programa almacenado es que se inicia la era de los lenguajes de programación.

  9. La programación imperativa se basa en tres conceptos importantes : 
  10. •Celda de memoria variable 
  11. •Operaciones de asignación 
  12. •Operaciones de repetición celdas de memoria donde se almacenan valores que son referenciados y modificados durante la ejecución del programa, a las que se suele asignar un nombre o identificador. 
  13. Operaciones de asignación: 
  14. son las que permiten asociar los datos o valores a la posición de la memoria o variable que los contiene. 
  15. Repetición: 
  16. normalmente un programa iterativo realiza su tarea ejecutando una y otra vez una secuencia de pasos elementales

  17. Ventajas y Desventajas de La Programación Imperativa 
  18. Ventajas:
  19. • Su relativa simplicidad y facilidad de implementación de los compiladores e intérpretes 
  20. • La capacidad de reutilizar el mismo código en diferentes lugares en el programa sin copiarlo. 
  21. • Una forma fácil seguir la pista de flujo del programa. 
  22. • La capacidad de ser muy modular o estructurado.
  23.  • Necesita menos memoria solamente.

  24. Desventajas: 
  25. • Los datos son expuestos a la totalidad del programa, así que no hay seguridad para los datos. 
  26. • Dificultad para relacionarse con los objetos del mundo real. 
  27. • Difícil crear nuevos tipos de datos reduce la expansibilidad. 
  28. • Se da importancia a la operación de datos en lugar de los datos mismos

  29. CAMPOS DE APLICACIÓN 
  30. Los lenguajes imperativos pueden resolver prácticamente cualquier problema en cualquier área: desde simples hasta complejos cálculos matemáticos. Se pueden hacer cualquier tipo de aplicaciones: De nominas De control aéreo De inteligencia artificial De control de dosis de medicamentos Para cajeros automáticos Para naves espaciales Para dispositivos móviles Aplicaciones en línea y tiempo real. Hay que recordar que fue el primer paradigma que le vino a poner orden a la manera de hacer programas, y por tanto su filosofía marco la línea a seguir para resolver problemas de la vida cotidiana.


Comentarios

Entradas populares