Se para la implementación en Perl de un intérprete para MiX, lenguaje sencillo con soporte de declaraciones de variables, asignación, salto explícito, operaciones aritméticas básicas y comentarios con #. El lenguaje usa solo mayúsculas, pero no toma en cuenta los espacios en blanco. La secuencia de instrucciones a interpretar será cargada automáticamente desde un archivo llamado TESTn.MiX. Las instrucciones del lenguaje son:
- Código: Seleccionar todo
DEF v: Declara v como una variable entera, v debe ser solo letras, pueden declararse n variable.
SET v y: asigna el número entero (o variable) “y” a la variable “v”.
+ v y: suma la variable “v” con el número entero (o variable) “y”. El resultado se almacena en “v”.
- v y: resta la variable “v” con el número entero (o variable) “y”. El resultado se almacena en “v”.
* v y: multiplica la variable “v” con el número entero (o variable) “y”. El resultado se almacena en “v”.
/ v y: divide la variable “v” con el número entero (o variable) “y”. El resultado se almacena en “v”.
LABEL i: establece una etiqueta, i debe ser un número entre 1 y 999
< v y i: Si la variable v es menor que el número entero (o variable) “y”, saltar a la etiqueta i.
> v y i: Si la variable v es mayor que el número entero (o variable) “y”, saltar a la etiqueta i.
= v y i: Si la variable v es igual que el número entero (o variable) “y”, saltar a la etiqueta i.
! v y i: Si la variable v es diferente que el número entero (o variable) “y”, saltar a la etiqueta i.
GO i: salta a la etiqueta i.
Dado como entrada automática un archivo que contiene un programa escrito en MiX, usted deberá:
Interpretar el programa completo.
Generar un archivo de resultados llamado MiX.xml que contenga:
* Nombre del archivo interpretado, con la cantidad de líneas de código que posee.
* Las variable declaradas con su respectivo valor al culminar la interpretación.
* Cantidad de operaciones aritméticas que fueron efectuadas, por operación.
* Cantidad de saltos efectuados (condicionales o explícitos).
- Código: Seleccionar todo
# Ejemplo: el siguiente programa MiX calcula el factorial de 4:
DEF A B C #declaración de 3 variables A,B y C
#inicialización de variable
SET A 4 # A=4
#la inicialización a cero no es necesaria si el interprete lo hace automáticamente
SET B 0
SET C 1
#
# aquí comienza un ciclo
LABEL 1
+ B 1 #B = B +1
* C B #C = C*B
< B A 1 #mientras (B<A) saltar a la etiqueta LABEL 1
END
¡LES AGRADEZCO SU AYUDAS CON ALGUNAS LÍNEAS DE CÓDIGO PARA ARRANCAR! SOBRE TODO LA DEL USO DE LOS ARRAY PARA LAS COMPARACIONES GRACIAS. ¡BYE!