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.
- ¿Cuál es el algoritmo utilizado para llenar el tablero en el juego Bejeweled Blitz?
- ¿Qué algoritmo (s) de aprendizaje automático es el mejor para la regresión no lineal con un número limitado de datos?
- ¿Cuáles son algunos de los mejores libros sobre Estructura de datos y Algoritmo en Java para principiantes?
- Cómo encontrar la tasa de ganancia más efectiva con la menor cantidad de coincidencias posible (algoritmo)
- ¿Qué son las estructuras autorreferenciales?
[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.