En programación de computadoras, ¿cómo es recursivo el proceso de evaluación?

El estudio de la semántica del lenguaje de programación deja en claro que la definición del comportamiento de un programa es en sí misma recursiva.

Para una breve visión de lo que se trata todo esto, vea, por ejemplo, estas diapositivas de CMU de Jonathan Aldrich: https://www.cs.cmu.edu/~aldrich/…

Aquí hay una explicación muy breve e informal. Cualquier programa imperativo es una secuencia de declaraciones.

[matemáticas] S_1, S_2, \ ldots S_n [/ matemáticas]

Para evaluar este programa, ejecute la instrucción [math] S_1 [/ math] y luego (aquí es donde entra la recursión) evalúe [math] S_2, \ ldots S_n. [/ Math]

La evaluación de expresiones también se puede explicar de esta manera. Considere, por ejemplo, cómo evaluar la expresión

[matemáticas] a_1 + a_2 [/ matemáticas]

donde los constituyentes inmediatos [math] a_1 [/ math] y [math] a_2 [/ math] son ​​expresiones en sí mismas. Para evaluar la expresión anterior, evalúe [math] a_1 [/ math] (aquí es donde entra la recursión) y [math] a_2 [/ math] para obtener los valores [math] v_1 [/ math] y [math] v_2 [/ matemáticas] respectivamente, luego calcule la suma de estos valores.