Orden de ejecución

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 29 de abril de 2017; las comprobaciones requieren 3 ediciones .

En la programación imperativa , el orden de ejecución ( orden de ejecución , orden de evaluación ) es la forma en que se ordenan las instrucciones del programa a medida que se ejecutan.

Las instrucciones incluidas en el programa pueden ejecutarse secuencialmente, una tras otra o simultáneamente; tanto una vez como repetidamente; la secuencia de ejecución de instrucciones puede o no coincidir con la secuencia de su ubicación en el registro del programa, y ​​también depende tanto del estado actual de la calculadora que ejecuta el programa como de eventos externos, formando así varias órdenes de ejecución de instrucciones.

La organización del orden de ejecución deseado se puede implementar utilizando varios mecanismos, como instrucciones especializadas para la calculadora o estructuras de control de lenguajes de programación de alto nivel, o mecanismos integrados en la calculadora para interrumpir, guardar y restaurar el estado, modificar y generar instrucciones del programa. , y otros.

Flujo de control

En la programación imperativa, se supone que el proceso de ejecución de un programa consiste en la ejecución de sus instrucciones por parte de la calculadora. En el momento de ejecución de la instrucción dicen que controla la calculadora, el paso a la ejecución de la siguiente se llama transferencia de control o simplemente transición . La secuencia de transferencias de control durante la ejecución del programa forma su flujo de control (también flujo de ejecución ).

La capacidad de la calculadora para seleccionar instrucciones para su ejecución en función de su estado, así como la posibilidad de ejecución simultánea de varias instrucciones, da lugar a la existencia de instrucciones ramificadas (que pueden ejecutarse bajo determinadas condiciones) y paralelas (ejecutándose simultáneamente). e interactuando flujos de control en un programa.

El conjunto de flujos de programa que forman varios órdenes se puede representar como un gráfico dirigido , donde los nodos corresponden a las instrucciones del programa y los bordes corresponden a las transiciones entre ellos.

Tipos de órdenes de ejecución

El orden en que se ejecutan las instrucciones refleja la estructura del algoritmo implementado por el programa. Cada construcción algorítmica básica tiene su propio orden de ejecución, normalmente con el mismo nombre.

El orden de ejecución más simple es el orden secuencial o natural , donde las instrucciones se ejecutan secuencialmente, una tras otra, en el orden en que aparecen en la notación del programa. El orden natural se forma durante la implementación de la construcción algorítmica "siguiente".

La desviación de lo natural para la forma aplicada de escribir la orden se llama transición . En este caso, después de completar la ejecución de la instrucción actual, la calculadora no pasa a la siguiente en el registro, sino a alguna otra instrucción especificada de cierta manera. Con un salto incondicional , la instrucción de salto se selecciona sin tener en cuenta el estado de la calculadora, con un salto condicional ,  según el estado de la calculadora, al verificar la condición .

Una rama condicional le permite organizar la ramificación del flujo de control, formando un orden de ramificación , en el que solo una de dos o más ramas de fragmento internas del programa está sujeta a ejecución. El orden de ramificación implementa la construcción algorítmica de "ramificación".

La transición a una instrucción previamente ejecutada le permite organizar la ejecución múltiple de un conjunto de instrucciones, formando un orden cíclico de su ejecución ( ciclo ) e implementando la construcción algorítmica del "ciclo".

Otra forma de organizar la ejecución repetida de un conjunto de instrucciones en un programa es asignar las instrucciones que se repetirán en una parte separada del programa, llamada subrutina , con la posibilidad de transferir repetidamente el control (llamada llamada ) a la subrutina. y luego regresando al sitio de la llamada.

La calculadora puede interrumpir la ejecución del programa y transferir el control a una instrucción específica, dependiendo de su estado o señales de dispositivos externos, formando una interrupción . Después de su procesamiento, la ejecución del programa puede continuar desde el punto de interrupción.

La transferencia de control a un conjunto de instrucciones preparadas previamente para una situación determinada, generalmente inusual o errónea (excepcional), sin la posibilidad de regresar al lugar de ocurrencia, forma el manejo de excepciones .

Véase también

Notas