Редактирование: Архитектура Каллисто

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 1: Строка 1:
Язык [[Каллисто]] впервые архитектурно объединил два языка программирования, развивавшихся десятилетиями независимо друг от друга — входной язык советских [[ПМК]] и язык Форт, в первую очередь советские реализации Форта (Форт-ЕС и Форт ИТЭФ).
'''Архитектура Каллисто''' впервые объединила два языка программирования, развивавшихся независимо друг от друга — входной язык советских [[ПМК]] и язык Форт, в первую очередь советские реализации Форта (Форт-ЕС и Форт ИТЭФ).
 
Вкратце [[Каллисто]] состоит из двух интерпретаторов, двух стеков и двух словарей.


== Алгоритмы ==
== Алгоритмы ==
Сердце [[Каллисто]] составляют два интерпретатора:
Сердце [[Каллисто]] составляют два интерпретатора:
* [[INTERPRET|Текстовый (внешний) интерпретатор]] воспринимает язык [[Каллисто]] и работает в двух режимах, получая входной поток с пульта (при [[BLK]]=0) и из [[блок]]а. Вне зависимости от режима, [[текстовый интерпретатор]] может находиться в двух [[STATE|состояниях]]:
* [[INTERPRET|Текстовый (внешний) интерпретатор]] понимает входной язык и работает в двух режимах (с пульта и из [[блок]]а). Также [[текстовый интерпретатор]] может находиться в двух [[STATE|состояниях]]: ([[Состояние исполнения|исполнения]] и [[Состояние компиляции|компиляции]]).
** [[Состояние исполнения|исполнения]] — вводимые слова исполняются сразу, как будут найдены в [[Словарь|словаре]]
* [[Адресный интерпретатор|Адресный (внутренний) интерпретатор]] выполняет [[шитый код]], созданный в результате компиляции программ, написанных на [[Каллисто]] или являющийся частью транслятора.
** [[Состояние компиляции|компиляции]] — вводимые слова компилируются в [[шитый код]], чтобы их можно было быстро (и неоднократно) исполнить позднее
* [[Адресный интерпретатор|Адресный (внутренний) интерпретатор]] выполняет [[шитый код]], являющийся частью транслятора или созданный в результате компиляции приложений, написанных на [[Каллисто]].


== Словарный запас ==
== Словарный запас ==
''Подробнее см. статью [[Слова Каллисто по категориям]]''
''Подробнее см. статью [[Слова Каллисто по категориям]]''


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


== Структуры данных ==
== Структуры данных ==
Основу структур данных Каллисто составляют два стека…
Основу структур данных Каллисто составляют два стека…
* [[Стек данных]] (десятичный) содержит [[Десятичное число|десятичные числа]]
* [[Стек данных]] (десятичный)
* [[Стек возвратов]] (двоичный) содержит 16-битные двоичные числа — обычно это адреса возвратов при исполнении вложенных слов высокого уровня
* [[Стек возвратов]] (двоичный)
…и два словаря:
…и два словаря:
* [[Двоичный словарь]] (классический для Форта) — здесь хранятся заголовки слов [[Каллисто]], а также их реализация в [[Шитый код|шитом коде]] или на [[ЯМК|языке МК]]
* [[Двоичный словарь]] (классический для Форта)
* [[Десятичный словарь]] (уникальный для Каллисто) — [[Каллисто]] хранит здесь значения [[VALUE|десятичных величин]] и [[FLITERAL|десятичных констант-литералов]]
* [[Десятичный словарь]] (уникальный для Каллисто)




{{заготовка}}
{{заготовка}}
[[Категория: Каллисто]]
[[Категория: Каллисто]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)

Шаблоны, используемые на этой странице: