Programación imperativa

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

La programación imperativa es uno de los paradigmas de programación de computadoras más generales, que describe la programación en términos del estado del programa y sentencias que cambian dicho estado. Los programas imperativos son un conjunto de instrucciones que le indican al computador cómo realizar una tarea, de la misma manera que el modo imperativo en los lenguajes naturales humanos le dice qué hacer al interlocutor. Esto existe en contraposición al paradigma de programación declarativa, que se basa en describir el problema o solución sin hacer referencia a un algoritmo. Las recetas de cocina y las listas de revisión de procesos, a pesar de no ser programas de computadora, son también conceptos familiares similares en estilo a la programación imperativa; donde cada paso es una instrucción.

Programación imperativa y hardware[editar]

La implementación de hardware de la mayoría de los computadores es imperativa; prácticamente todo el hardware de los computadores está diseñado para ejecutar código de máquina, que es nativo al computador, escrito en una forma imperativa. Esto se debe a que el hardware de los computadores puede modelarse como una máquina de Turing, o alguna otra forma de máquina abstracta que modifica su memoria o estado interno conforme sigue los pasos de un programa. Desde esta perspectiva de bajo nivel, la semántica del programa en cualquier momento está definida por los contenidos previos de la memoria, los datos de entrada y las instrucciones en el lenguaje de máquina nativo del computador.

Este paralelismo entre el paradigma imperativo y los objetos físicos que terminan realizando los cálculos significa que todo programa, así esté escrito en un lenguaje de alto nivel o incluso en uno completamente declarativo, eventualmente debe ser transformado a código máquina imperativo para tener efecto.

Lenguajes de programación[editar]

Los primeros lenguajes imperativos fueron los lenguajes de máquina de los computadores originales. En estos lenguajes, las instrucciones fueron muy simples, lo cual hizo la implementación de hardware fácil, pero obstruyendo la creación de programas complejos. Los lenguajes imperativos de alto nivel usan variables y sentencias más complejas, pero aún siguen el mismo paradigma cuando modifican los contenidos de las variables. Fortran, cuyo desarrollo fue iniciado en 1954 por John Backus en IBM, fue el primer gran lenguaje de programación en superar los obstáculos presentados por el código de máquina en la creación de programas complejos.

Algunos ejemplos de lenguajes de programación imperativos (o que son usados idiomáticamente en estilo imperativo a pesar de ofrecer otros estilos) son:

Críticas[editar]

La programación imperativa goza de gran popularidad, pero se ha dicho que al permitir y depender de efectos colaterales como el uso de variables globales, dificulta notablemente el razonamiento formal, la depuración y la paralelización (la habilidad para dividir el trabajo en muchos hilos de ejecución simultánea).[2]

Véase también[editar]

Referencias[editar]

  1. «Overview - D Programming Language». dlang.org (en inglés). Consultado el 29 de julio de 2014. «Major Design Goals of D... 4.Support multi-paradigm programming, i.e. at a minimum support imperative, structured, object oriented, generic and even functional programming paradigms.» 
  2. http://ademirar.wordpress.com/2010/08/28/programacion-funcional-para-el-resto-de-nosotros/