Если транслятор преобразовывает программу:
input i
let j = i * 2;
print j
в
#include "set_val.h"
hash vars;
int main()
{
input("i");
set("j", mult(val("i"), 2);
print(val("j"));
}
где set, mult и val определены как
void set(char *key, variant & val)
{
set_hash(vars, key, val);
}
variant val(char *key)
{
return get_hash(vars, key);
}
variant mult(variant a, variant b)
{
variant c;
assert(a.type == NUMBER && b.type == NUMBER);
c.type = NUMBER;
c.number = a.number * b.number;
}
а затем при помощи gcc получает бинарник, то этот весь процесс является компиляцией или интерпретацией?