Архитектура Каллисто
Язык Каллисто впервые архитектурно объединил два языка программирования, развивавшихся десятилетиями независимо друг от друга — входной язык советских ПМК и язык Форт, в первую очередь советские реализации Форта (Форт-ЕС и Форт ИТЭФ).
Вкратце Каллисто состоит из двух интерпретаторов, двух стеков и двух словарей.
Алгоритмы[править]
Сердце Каллисто составляют два интерпретатора:
- Текстовый (внешний) интерпретатор воспринимает язык Каллисто и работает в двух режимах, получая входной поток с пульта (при BLK=0) и из блока. Вне зависимости от режима, текстовый интерпретатор может находиться в двух состояниях:
- исполнения — вводимые слова исполняются сразу, как будут найдены в словаре
- компиляции — вводимые слова компилируются в шитый код, чтобы их можно было быстро (и неоднократно) исполнить позднее
- Адресный (внутренний) интерпретатор выполняет шитый код, являющийся частью транслятора или созданный в результате компиляции приложений, написанных на Каллисто.
Словарный запас[править]
Подробнее см. статью Слова Каллисто по категориям
Для удобства изучения встроенные каллистянские слова можно разбить на несколько мало пересекающихся групп:
- Общие — слова, имя и назначение которых практически одинаковы в Каллисто, советских ПМК и Форте. Примеры: + −
- Традиционные — слова, унаследованные из входного языка советских ПМК и ЭКВМ с минимальными изменениями. Примеры: × ÷ /−/ ↔ $\pi$ x2 √ 1/x 10x ex ln lg sin cos tg arcsin arccos arctg НОП |X| [X] {X} СЧ ЗН ИПРГ
- Усовершенствованные — слова, творчески развивающие входной язык советских ПМК и ЭКВМ. Примеры: ↑ Yˣ AND OR XOR NOT MAX
- Фортовские — слова, имя и значение которых взяты из Форта или colorForth практически без изменений. Примеры: 1+ 1− / MOD /MOD 2/ @ ! DROP OVER ROT MIN EMIT TYPE KEY ACCEPT BASE STATE CONSTANT VARIABLE HERE , C, ALLOT FILL ERASE BLANK AT FOR I J K NEXT IF ELSE THEN BEGIN UNTIL WHILE REPEAT AGAIN IMMEDIATE WORD WORDS BELL
- Когда фортовское слово соответствует стандарту ANS, его называют стандартным.
- Адаптированные — colorForth и других диалектов Форта, адаптированные к архитектуре Каллисто или МК-161. Примеры: ×/ ×/MOD APP VALUE FINDN . I. ↖ ↵ SPACE SPACES EKEY DARK LIGHT +BOX BEEP
- Родные — слова, имя или значение которых уникальны для Каллисто. Примеры: U@ VERSION TYPE1 ДHERE Д, ДALLOT INKEY BUFBLK FONT! (PLAY)
- Системные — слова для доступа к низкоуровневым возможностям системы «Электроники МК». Примеры: ИП П КАТ _RW ATR! _FONT
- Служебные — вспомогательные слова, используемые Каллисто и не предназначенные для обычных разработчиков. Примеры: FL (ИП) (LITERAL)
- Дополнительные — слова, отсутствующие в ядре Каллисто, определения которых предлагается включать в приложения самостоятельно. См. Палитра Каллисто
Структуры данных[править]
Основу структур данных Каллисто составляют два стека…
- Стек данных (десятичный) содержит десятичные числа
- Стек возвратов (двоичный) содержит 16-битные двоичные числа — обычно это адреса возвратов при исполнении вложенных слов высокого уровня
…и два словаря:
- Двоичный словарь (классический для Форта) — здесь хранятся заголовки слов Каллисто, а также их реализация в шитом коде или на языке МК
- Десятичный словарь (уникальный для Каллисто) — Каллисто хранит здесь значения десятичных величин и десятичных констант-литералов
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |