Cтраница 4
Подробная блок-схема блока 1 на. [46] |
Наконец, мы должны заменить символические коды операций на действительные коды операций. Для этого при компилирующей программе должна быть таблица соответствия этих кодов операций. [47]
Увеличение объема памяти в SAINT в 4 раза ( сейчас он составляет 32 768 ячеек) могло бы привести к увеличению скорости работы в сотни раз, поскольку процедура очищения уже ненужных ячеек в памяти для их повторного использования, занимающая сейчас около половины рабочего времени, тогда лишится смысла. Кроме того, скорость работы компилирующей программы возросла бы приблизительно в 50 раз. Если бы особенно часто используемые функции оперирования с символом можно было бы заменить одной командой, было бы сэкономлено много машинного времени и объема памяти. [48]
Назначение компилирующей программы состоит в том, чтобы уменьшить объем ручного труда, давая возможность программисту записывать в своей программе команды моделируемого языка. Эти команды интерпретируются с помощью компилирующей программы. Разница между интерпретирующей и компилирующей программами состоит в том, что компилирующую программу не нужно хранить в оперативной памяти после того, как она выполнила свою работу по составлению рабочей программы. Очевидно, что с помощью компилирующей программы могут объединяться математические подпрограммы, а также интерпретироваться и объединяться такие подпрограммы моделирования, которые были описаны в разд. Однако существуют другие более эффективные применения компилирующих программ. Этим вопросам посвящены эта и следующая части главы. Мы рассмотрим три случая: 1) переводящую программу; 2) программу присвоения адресов; 3) дешифратор алгебраических символов. [49]
Язык компилятора не связан с какой-либо определенной ЭВМ. Операторы этого языка записываются в компилирующей программе и переводятся либо на ассемблер, либо на базовый машинный язык. [50]