Función run
La función run se definió mediante la siguiente plantilla:
run⟦program⟧ | run⟦program → varDefinition* statement*⟧ = metadata⟦program⟧ execute⟦statementi⟧ HALT |
La implementación es directa:
java
public class Run extends AbstractCodeFunction {
public Object visit(Program program, Object param) {
metadata(program);
execute(program.statements());
out("halt");
return null;
}
}
Un objetivo importante que se debe conseguir es la trazabilidad, es decir, que sea inmediato ver la correspondencia este la especificación y el código. Eso se consigue gracias a las funciones auxiliares definidas en la clase padre de las funciones, la clase AbstractCodeFunction.java.