Интерпретаторы, компиляторы и виртуальные машины
Ниже приведен блок кода, генерирующий указатели на функции и помещающий их в специальный массив code. Возвращаемым значением функции generate является не значение выражения – оно будет подсчитано только после выполнения сгенерированного кода, – а индекс следующей операции в массиве code, которая должна быть сгенерирована:
Для выражения а – max(b, с/2) сгенерированный код будет выглядеть так:
Функции-операции управляют стеком, извлекая из него операнды и загружая результаты.