Hoy es un gran día. Por fin, después de echarle muchas horas al interprete del lenguaje de script que he creado, sin que se pudieran palpar resultados visibles, hoy he ejecutado las dos primeras sentencias correctamente. Simplemente ha sido la declaración de una variable y la asignación a esta del resultado de una expresión.
variable numerica j .
j = 1 + 2 * 3 + 4 .
Tras darle al botón ejecutar de la interfaz gráfica, el interprete ha realizado el análisis léxico, el sintáctico, el semántico y al no detectar en ninguna de dichas fases ningún error ha procedido a generar las instrucciones y posteriormente a ejecutarlas. Finalmente la variable j ha recibido el valor 11.
Un segundo script más complicado también ha sido ejecutado correctamente:
escribirEnConsola ( “a” + “b” + numericaACadena ( 3 + 2 ) ) .
variable numerica j .
constante numerica k = 3 .
j = 4 + 7 - 4 * k + 1 .
j = 1 + 2 * j + 4 .
j = 1 + 2 * ( j + 4 ) .
variable logica a .
a = ( 2 < 4 ) y ( 3 != 5 ) .
si a entonces
j = 4 + 7 - 4 * k + 1 .
sino
j = 3 .
fin si .
escribirEnConsola ( numericaACadena ( j ) ) .
variable numerica i .
i = 0 .
mientras i < 5 hacer
escribirEnConsola ( “i = ” + numericaACadena ( i ) ) .
i = i + 1 .
fin mientras .
Los tiempos consumidos en realizar esta segunda compilación y que devuelve la salida del compilador son los siguientes
Análisis léxico realizado correctamente en 78,125 milisegundos (0,078125 segundos)
Análisis sintáctico realizado correctamente en 140,625 milisegundos (0,140625 segundos)
Análisis semántico realizado correctamente en 15,625 milisegundos (0,015625 segundos)
Compilación realizada correctamente en 234,375 milisegundos (0,234375 segundos)
Y la salida de la consola:
ab5
-2
i = 0
i = 1
i = 2
i = 3
i = 4
El -2 puede extrañar a simple vista. Pese a lo que pudiera parecer el resultado es correcto, la cuestión es que se ha definido la asociatividad por la derecha en vez de por la izquierda.