Многие думают, что хорошую
быстродействующую программу на
8-ми разрядной машине можно
написать только в кодах
процессора. Чаще всего так и
делается, но как же быть если в
программе должны производиться
сложные вычисления, ведь проце-
ссор может только складывать и
вычитать небольшие целые числа,
а обращение к программе-кальку-
лятору в ПЗУ сопряжено с такими
сложными подготовительными про-
цедурами и различными нюансами,
что может запутать и опытного
программиста . В такой ситуации
может помочь компилятор.
Скорость выполнения скомпилиро-
ванной программы, конечно,
уступает скорости с которой
работает программа написанная
непосредственно в машинных кодах
, но зато не возникает проблем с
вычислениями и освоением
особенностей ассемблера, ведь
создание алгоритма программы на
языке высокого уровня (BASIC'е
например) гораздо проще. А о том
каких можно достичь результатов
говорит то, что даже многие
фирменные программы представляют
собой компиляции с языков
высокого уровня.
Мы были немало удивлены,
обнаружив, что игра STACK UP
фирмы ZEPPELIN GAMES, выпущенная
в 1991 году, была написана почти
полностью на BASIC'е и
скомпилирована первобытным
компилятором MCODER II 1982 года
выпуска. Чтобы было понятно о
чем идет речь - этот компилятор
не понимает половины команд
BASIC'а (их надо избегать в
программе) и работает только с
целыми числами от -З2768 до
+З2768. Правда, ускорение он
дает весьма значительное. Другой
компилятор фирмы CRYSTAL
COMPUTING выпуска 198З года
понимает те команды, которые
недоступны MCODER'у но
отказывается компилировать
другие. Дальнейшие поиски
привели нас к программе TOBOS FP
COMPILER и ее исследование
показало, что это именно то, что
нам было нужно

(а нужно нам

было ускорить

выполнение

программы,

строящей на

экране

З-мерные

графики
функций).
Компилятор понимает ВСЕ команды
и операторы SPECTRUM-BASIC'а и
работает с любыми числами,
которые доступны BASIC'у,
включая экспоненциальное пред-
ставление и плавающую запятую.
Программа BIORITM, целиком
написанная на BASIC'е строит
графики биоритмов примерно 20-25
секунд, а будучи скомпилирован-
ной TOBOS'ом делает это за 1-2
секунды. Построение З-мерного
векторного графика, занимавшее
около 10 минут (!), сокращается
до 0.5 минуты.
Сам компилятор занимает около
12К и должен быть в памяти - без
него скомпилированный код
работать не будет. Впрочем, это
относится ко всем упомянутым
компиляторам. Главным ограниче-
нием является невозможность
обработки команд обращения к
TR-DOS, так как в стандартном
BASIC'е эти команды не были
предусмотрены.
Компилятор TOBOS располагается в
памяти с адреса 5З100.
Скомпилированный код размещается
начиная с адреса RAMTOP, который
устанавливается командой CLEAR
NN. Запускается TOBOS командой
RANDOMIZE USR 53100.
Есть масса полезных самодельных
программ на BASIC'е и TOBOS
может стать мощным инструментом
доведения их до фирменного вида.
___ ___
Other articles: