Какой тип интерпретатора использовался в большинстве реализаций 8-битного BASIC?
Я большой поклонник персональных компьютеров начала / середины 1980-х, таких как Amstrad CPC, Commodore 64 и Sinclair Spectrum. У всех этих компьютеров была одна версия BASIC.
Мне, как языковому хакеру, любопытно: были ли эти интерпретаторы реализованы как интерпретаторы обхода дерева (просто обход дерева синтаксического анализа) или интерпретаторы байт-кода? Я не могу найти много информации о том, как они были реализованы. Меня поражает, как они были построены, учитывая ограниченность оборудования в то время.
1 ответ
В основном они основывались на токенах. Это означает, что встроенный редактор кода преобразовал удобочитаемые команды в исходном коде в байт-код. После выполнения эти байт-коды были прочитаны, и диспетчер затем выполнил соответствующую команду (сохраненную как машинный код в ядре) с заданными параметрами. У ZX Spectrum даже была клавиатура для ввода базовых токенов:
http://www.worldofspectrum.org/ZX81BasicProgramming/
Для некоторых других см. Здесь:
https://www.primidi.com/atari_basic/description/the_tokenizer
http://fileformats.archiveteam.org/wiki/Commodore_BASIC_tokenized_file
http://cpctech.cpc-live.com/docs/bastech.html
Надеюсь, это ответ на ваш вопрос.