Редактирование: Каллисто
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
'''Каллисто''' — компактный диалект языка Форт с элементами colorFORTH, написанный для [[Электроника МК-161|«Электроники МК-161»]] на [[РЯМК]] и предназначенный для программирования «на борту». Пока существует в альфа-версии, но уже позволяет определять новые слова, редактировать и компилировать экраны, успешно переносить на МК-161 старые программы, написанные на языке Форт. Актуальная версия — 0.3.5a. | |||
Вместо фортовского цикла LOOP Каллисто использует более простой и быстрый цикл [[FOR]] из colorFORTH, а «бесконечный» стек содержит 12-разрядные десятичные числа ЭКВМ с плавающей запятой. Помимо обычной (для Форта) целочисленной операций деления, Каллисто использует традиционное для ПМК деление с плавающей запятой. Сохранены традиционные для ПМК обозначения операций умножения, подъёма стека, а также русскоязычные операции ПМК — [[ЗН]] , [[СЧ]] и т.д. | |||
В отличии от ранних диалектов Форт экран Каллисто содержит 48 строк и занимает 3 Кб. Из-за того, что строка экрана занимает традиционные 64 символа, использование встроенного в ЭКВМ редактора является затруднительным. Программистам Каллисто предлагает строковый редактор, а также возможность написать собственный редактор экранов. Каллисто использует накладную алфавитно-цифровую клавиатуру для быстрого посимвольного ввода команд и данных. | |||
Вводимые слова компилируются в словарь, находящийся в области двоичных данных. В этой же области располагается стек возвратов. Стек данных располагается в области десятичных регистров. Там же располагается «десятичный словарь», где хранятся десятичные переменные типа [[VALUE]] | |||
В Каллисто используется единое адресное пространство, при этом размер ячейки памяти зависит от адреса и может колебаться от 1 байта до 12-разрядного десятичного числа с плавающей запятой. | |||
== | == Словарь Каллисто == | ||
* [[COLD]] — Первая словарная статья | |||
* [[WARM]] | |||
* [[BYE]] — Выход из системы может использоваться как временный, отладочный останов. | |||
* [[VERSION]] — Кладёт в стек номер версии Каллисто. | |||
* [[EXECUTE]] — Исполняет слово, [[CFA]] которого хранится в стеке. | |||
* [[?BREAK]] — Проверяем клавиатуру на паузу и аварийную остановку. | |||
* [[(LITERAL)]] — Код периода выполнения для литерала. | |||
* [[TYPE (Каллисто)|TYPE]] — Передаёт u символов начиная с адреса a на выходное устройство. | |||
* [[TYPE1]] — Вывести строку из памяти данных, заменяя управляющие коды и строго в одну строчку, до конца индикатора. | |||
* [[?BRANCH]] — Условный переход в шитом коде. | |||
* [[BRANCH]] — Безусловный переход в шитом коде. | |||
* [[(FOR)]] | |||
* [[(NEXT)]] | |||
* [[(FIND)]] — Искать слово a1 в списке a2. При успехе дать NFA его статьи и c - байт длины с флагами. | |||
* [[DIGIT]] — ASCII-DIGIT BASE => DIGIT-VALUE TRUE / FALSE | |||
[[ | * [[РЕГ!]] — Запись в регистр ЭКВМ Rn при стеке ЭКВМ, заполненном на основе стека Форта. | ||
* [[РЕГ@]] — Чтение из регистра ЭКВМ Rn с сохранением стека ЭКВМ в переменных RX RY RZ RT | |||
* [[0=]] | |||
* [[0-больше (Каллисто)|0>]] | |||
* [[0-меньше (Каллисто)|0<]] | |||
* [[= (Каллисто)|=]] | |||
* [[меньше (Каллисто)|<]] | |||
* [[больше (Каллисто)|>]] | |||
* [[ENCL]] | |||
* [[EMI]] | |||
* [[EMIT]] — Отображает на экране символ, код которого находится в стеке. | |||
* [[C.]] — Выводит символ как в дампе, управляющие символы заменяются на "." | |||
* [[↵ (Каллисто)|↵]] | |||
* [[BELL]] | |||
* [[BEEP]] | |||
* [[(PLAY)]] | |||
* [[PLOT]] — Отображение точки на экране | |||
* [[DRAW]] — Рисует прямые линии, X и Y - координаты конца линии; L - код цвета/яркости, как и в случае PLOT | |||
* [[ГРФ]] — Вывод графической информации. | |||
* [[↖ (Каллисто)|↖]] — Очищаем экран, оба курсора в левый верхний угол | |||
* [[AT-XY]] — Позиционирование курсора: COL ROW AT-XY | |||
* [[DISKOFF]] | |||
[[ | * [[KEY]] — Ожидает ввод символа с клавиатуры, при вводе посылает его код в стек. | ||
* [[ACCEPT]] | |||
* [[1+]] — Прибавление 1. | |||
* [[2+]] — Прибавление 2. | |||
* [[1-]] — Вычитание 1. | |||
* [[2×]] — Умножение на 2 (двоичный сдвиг влево). | |||
* [[2/]] — Целочисленное деление на 2 (двоичный сдвиг вправо). | |||
* [[2÷]] — Деление на 2 чисел с десятичной плавающей запятой. | |||
* [[+ (Каллисто)|+]] — Сложение. | |||
* [[- (Каллисто)|-]] — Вычитание b из a. | |||
* | * [[× (Каллисто)|×]] — Умножение. | ||
* | * [[÷ (Каллисто)|÷]] — Деление с десятичной плавающей запятой. | ||
* [[/ (Каллисто)|/]] — Целочисленное деление a на b, помещение частного в стек. | |||
* [[MOD]] — Получение остатка от деления a на b. | |||
* [[/MOD]] — Деление с остатком a на b. | |||
* [[×/]] — Операция масштабирования -- умножение n1 на n2 с последующим делением на n3. | |||
* [[×/MOD]] — Остаток и частное от деления произведения n1*n2 на n3. | |||
* [[NEGATE]] — Смена знака числа в стеке. | |||
* [[Больше-меньше (Каллисто)|><]] | |||
* [[S-больше-D (Каллисто)|S>D]] | |||
* [[Bar-X-bar (Каллисто)||X|]] — Получение абсолютного значения. | |||
* [[AND]] — 32-битное побитовое логическое умножение (И). | |||
* [[OR]] — 32-битное побитовое логическое сложение (ИЛИ). | |||
* [[XOR]] — 32-битное побитовое логическое исключающее ИЛИ (XOR). | |||
* [[INVERT]] — 32-битное побитовое логическое отрицание (НЕ). | |||
* [[MIN]] — Выделение минимума. | |||
* [[MAX]] — Выделение максимума. | |||
* [[10ˣ|10<sup>x</sup>]] — Десятичный антилогарифм. | |||
* [[Eˣ|E<sup>x</sup>]] — Экспонента. | |||
* [[LG]] — Десятичный логарифм. | |||
* [[LN]] — Натуральный логарифм. | |||
* [[X²|X<sup>2</sup>]] — Возведение в квадрат. | |||
* [[√ (Каллисто)|√]] — Квадратный корень. | |||
* [[1/X (Каллисто)|1/X]] — Обратная величина. | |||
* [[Yˣ|Y<sup>x</sup>]] — Степенная функция. | |||
* [[СЧ]] — Случайное число. | |||
* [[ЗН]] — Знак числа. | |||
* [[lbr-X-rbr (Каллисто)|[X]]] — Целая часть числа. | |||
* [[lbc-X-rbc (Каллисто)|{X}]] — Дробная часть числа. | |||
* [[DEGREES]] — Даёт указание Форту (и ЭКВМ) принимать углы в градусах | |||
* [[RADIANS]] — Даёт указание Форту (и ЭКВМ) принимать углы в радианах | |||
* [[ARCSIN]] | |||
* [[ARCCOS]] | |||
* [[ARCTG]] | |||
* [[SIN]] | |||
* [[COS]] | |||
* [[TG]] | |||
* [[SP@]] — Записывает в стек адрес вершины стека, до исполнения команды SP@ | |||
* [[!SP]] — Устанавливает указатель стека в исходное состояние из переменной S0. | |||
* [[RP@]] | |||
* [[!RP]] — Присваивает указателю стека возвратов исходное (базовое) значение из переменной R0. | |||
* [[EXIT]] | |||
* [[LEAVE]] — Досрочно прерывает цикл FOR .. NEXT (только для области данных) | |||
* [[UNLOOP]] | |||
* [[больше-R (Каллисто)|>R]] — Переносит 16-битное число из стека данных в стек возвратов. | |||
* [[R-больше (Каллисто)|R>]] — Переносит 16-битное число из стека возвратов в стек данных. | |||
* [[I (Каллисто)|I]] — Копирует верхнее 16-битное число из стека возвратов в стек данных. | |||
* [[LEV]] | |||
* [[PICK]] — Копирует элемент стека с номером u и записывает его наверх стека. | |||
* [[OVER]] — Копирует 2-й элемент стека и заносит его наверх. | |||
* [[↔ (Каллисто)|↔]] — Меняет местами два верхних элемента стека. | |||
* [[2SWAP]] — Меняет местами верхние две пары чисел в стеке. | |||
* [[↑ (Каллисто)|↑]] — Дублирует верхний элемент стека. | |||
* [[?DUP]] — Осуществляет операцию ↑ если x<>0 | |||
* [[2DUP]] — Дублирует верхнюю пару чисел в стеке. | |||
* [[ROT]] — Переносит 3-й элемент стека наверх. | |||
* [[2DROP]] — Удаляет из стека число двойной длины. | |||
* [[DROP]] — Удаляет верхний элемент стека. | |||
* [[CMOVE]] — Копирует побайтно область памяти размером u байт начиная с a1 и записывает её начиная с a2. | |||
* [[CMOVE-больше (Каллисто)|CMOVE>]] | |||
* [[FILL]] — Записывает u байт c в память начиная с адреса a | |||
* [[ERASE]] — Записывает u нулевых байтов в память начиная с адреса a. | |||
* [[BLANK]] — Записывает n кодов пробела (32) в память, начиная с адреса a. | |||
* [[HOLD]] — Вводит в текущую ячейку выходного буфера PAD символ, код которого в стеке | |||
* [[TIB]] — Занесение в стек начального адреса входного буфера терминала (Terminal Input Buffer). | |||
* [[+!]] — Добавляет к содержимому ячейки с адресом a число n | |||
* [[TOGGLE]] | |||
* [[@ (Каллисто)|@]] — Замещает адрес в стеке его содержимым, двухбайтовая ячейка содержит число со знаком. | |||
* [[U@]] — Считываем в стек 2-х байтовое целое без знака. | |||
* [[C@]] — Извлекает байт информации из ячейки, адрес которой находится в стеке. | |||
* [[! (Каллисто)|!]] — Записывает число x в ячейку с адресом a. | |||
* [[C!]] — Записывает байт c по адресу a. | |||
* [[BODY-больше (Каллисто)|BODY>]] — [[PFA]] ---> [[CFA]] | |||
* [[!CSP]] — Запомнить адрес вершины стека в "CSP". | |||
* [[HERE]] — Выдаёт адрес первой свободной ячейки в словаре. | |||
* [[ALLOT]] — Добавляет n байт к полю параметров слова, описанного последним. | |||
* [[ДHERE]] — Выдаёт адрес первого свободного десятичного регистра в десятичном словаре. | |||
* [[ДALLOT]] — Резервирует n десятичных регистров в десятичном словаре. | |||
* [[lbr (Каллисто)|[]] — Переключить текстовый интерпретатор в режим исполнения | |||
* [[rbr (Каллисто)|]]] — Переключить текстовый интерпретатор в режим компиляции. | |||
* [[HEX]] — Устанавливает шестнадцатеричную систему счисления. | |||
* [[DECIMAL]] — Устанавливает десятичную систему счисления для ввода-вывода. | |||
* [[-TRAILING]] | |||
* [[UPPER]] | |||
* [[DEFINITIONS]] — Контекстный словарь VOCABULARY становится текущим, все последующие описания связаны с этим словарём. | |||
* [[UPDATE]] — Устанавливает в буфере флаг "спасения". | |||
* [[X (Каллисто)|X]] — Даёт номер загруженного блока. | |||
* [[Двоеточие (Каллисто)|:]] | |||
* [[; (Каллисто)|;]] | |||
* [[CONSTANT]] | |||
* [[VARIABLE]] | |||
* [[VALUE]] | |||
* [[DOES-больше (Каллисто)|DOES>]] | |||
* [[F-решётка-больше (Каллисто)|F#>]] — Размещает преобразованную строку сразу после словаря, возвращает адрес и число символов. | |||
* [[F-решётка-S (Каллисто)|F#S]] — Преобразовывает число с плавающей запятой в строку символов. | |||
* [[меньше-F-решётка (Каллисто)|<F#]] — Начинает преобразования чисел с плавающей запятой. | |||
* [[0 (Каллисто)|0]] | |||
* [[1 (Каллисто)|1]] | |||
* [[2 (Каллисто)|2]] | |||
* [[3 (Каллисто)|3]] | |||
* [[π (Каллисто)|$\pi$]] — Число пи. | |||
* [[BL]] | |||
* [[C/L]] — Количество символов в одной строке экрана Форта. | |||
* [[B/BUF]] | |||
* [[RT (Каллисто)|RT]] | |||
* [[RZ (Каллисто)|RZ]] | |||
* [[RY (Каллисто)|RY]] | |||
* [[RX (Каллисто)|RX]] | |||
* [[S0]] — Переменная, содержит адрес дна стека данных. | |||
* [[R0 (Каллисто)|R0]] | |||
* [[ДDP]] — Указатель десятичного словаря. | |||
* [[WIDTH]] | |||
* [[WARNING]] | |||
* [[FENCE]] — Служит для защиты базового словаря от стирания с помощью оператора FORGET | |||
* [[DP]] | |||
* [[VOCL]] | |||
* [[AUTOEXEC]] — Слово, [[xt]] которого хранится в переменной AUTOEXEC, будет выполнено после загрузки сохранения по [[LOAD"]] | |||
* [[GRXY]] — Графический курсор | |||
* [[BLK]] | |||
* [[больше-IN (Каллисто)|>IN]] | |||
* [[SCR]] — Служит для хранения текущего значения номера редактируемого экрана. | |||
* [[OFFSET]] — Переменная, содержащая смещение, добавляемое к номеру блоку на стеке словом [[BLOCK]] для получения физического номера блока. | |||
* [[CONTEXT]] — Переменная указывает на словарь VOCABULARY, в котором происходит поиск слов во время интерпретации входного потока. | |||
* [[CURRENT]] — Переменная указывает словарь VOCABULARY, в который вводятся определения новых слов. | |||
* [[STATE]] | |||
* [[BASE]] | |||
* [[DPL]] | |||
* [[CSP]] — Переменная для контрольного хранения значения указателя стека. | |||
* [[R-решётка (Каллисто)|R#]] — Позиция курсора при редактировании экрана. | |||
* [[HLD]] | |||
* [[$EX]] — Десятичное значение порядка вводимого числа | |||
* [[ERB]] | |||
* [[SAVIN]] — Сохраняем >IN в INTERPRET для NUMBER | |||
* [[, (Каллисто)|,]] — Компилирует число n в первую свободную ячейку словаря. | |||
* [[C,]] — Компилирует байт c в очередной свободный байт словаря. | |||
* [[Д,]] — Компилирует число x в первую свободную ячейку десятичного словаря. | |||
* [[LATEST]] | |||
* [[SPACE]] — Вывод одного пробела. | |||
* [[N-больше-LINK (Каллисто)|N>LINK]] — [[NFA]] ---> [[LFA]] | |||
* [[NAME-больше|NAME>]] — [[NFA]] ---> [[CFA]] | |||
* [[N-больше-BODY|N>BODY]] — [[NFA]] ---> [[PFA]] | |||
* [[?ERROR]] — ?ERROR диагностика ошибок Форт ИТЭФ | |||
* [[?COMP]] | |||
* [[?EXEC]] | |||
* [[?PAIR]] | |||
* [[?CSP]] — Выдать ошибку "сбился указатель стека" если он не равен значению в [[CSP]] | |||
* [[?LOAD]] | |||
* [[COMPILE]] — Компиляция 16-битного слова, следующего за оператором. | |||
* [[SMUDGE]] — Изменить флаг "SMUDGE" в последней созданной статье. | |||
* [[(;CODE)]] — Записать в поле кода последней статьи следующий адрес и закончить определение. | |||
* [[меньше-BUILDS|<BUILDS]] | |||
* [[COUNT]] | |||
* [[(.")]] — Слово, компилируемое [[."]] | |||
* [[."]] — При исполнении напечатать на терминале следующие литеры до кавычки исключительно. | |||
* [[.(]] — Напечатать следующие литеры до закрывающей скобки исключительно. | |||
* [[QUERY]] — Осуществляет ввод строки символов с клавиатуры. | |||
* [[\0 (Каллисто)|\0]] — (Пустое слово) - закончить интерпретацию. | |||
* [[PAD]] — Выдаёт адрес буфера для промежуточного хранения последовательностей символов | |||
* [[WORD]] — Считывает одно слово из входного или экранного буфера и размещает его, начиная с адреса HERE | |||
* [[CONVERT]] | |||
* [[FINDN]] — Поиск слова в активных словарях | |||
* [[NUMBER]] — Преобразует в число последовательность символов, начиная с a+1 с учётом BASE, | |||
* [[FL]] | |||
* [[ERROR (Каллисто)|ERROR]] — Диагностика ошибок Форт ИТЭФ | |||
* [[ID.]] — Печатает имя слова, записанное в соответствии с требованиями словаря Форта | |||
* [[CREATE]] — Формирует слово с именем XXX (заголовок и CFA), оставляя его поле параметров пустым. | |||
* [[lbr-COMPILE-rbr (Каллисто)|[COMPILE]]] — Скомпилировать следующее слово, независимо от его признака IMMEDIATE. | |||
* [[TO]] | |||
* [[LITERAL]] | |||
* [[FLITERAL]] — Тоже, что и LITERAL, но для плавучки. | |||
* [[?STACK]] | |||
* [[INTERPRET]] — Интерпретирует последовательность слов, пока там что-то есть. | |||
* [[IMMEDIATE]] — Преобразует слово, за описанием которого следует, в оператор, исполняемый при компиляции. | |||
* [[VOCABULARY]] — Слово-описатель, которое создаёт новый словарь. | |||
* [[(]] — Комментарий -- пропустить следующий текст до закрывающей круглой скобки. | |||
* [[QUIT]] — Очищает стек возвратов, устанавливает режим исполнения и возвращает управление терминалу. | |||
* [[ABORT]] — Прерывает исполнение, делает словарь FORTH контекстным, исполняет QUIT | |||
* [[EMPTY-BUFFERS]] — Буфер отмечается как пустой, независимо от содержания. Обновлённый блок на диск не записывается. | |||
* [[SAVE-BUFFERS]] — Если находящийся в буфере экран был изменён, скидывает его на диск. | |||
* [[FLUSH]] — Если экран изменён, скидывает его на диск и выкидывает его из памяти. | |||
* [[BUFFER]] — Резервирует блок в памяти и приписывает ему номер u (как и BLOCK ), но сам блок с диска не считывается. | |||
* [[BLOCK]] — Записывает в стек адрес первого байта в буфере с блоком, номером которого u. | |||
* [[(LINE)]] — Выдаёт адрес a и длину u строки L с экрана S. | |||
* [[MESSAGE]] | |||
* [[LOAD]] — Загружает экран с номером u (компилирует или исполняет) | |||
* [[\ (Каллисто)|\]] — Закончить интерпретацию строки. | |||
* [[\S]] — Закончить интерпретацию экрана. | |||
* [[---больше (Каллисто)|-->]] — Даёт команду немедленно приступить к интерпретации следующего по порядку экрана. | |||
* [['N]] — Ищет слово с именем XXX (из входного или экранного буфера) в словаре Форта. | |||
* [[lbr-'-rbr (Каллисто)|[']]] — Скомпилировать CFA следующего слова как числовой литерал. | |||
* [[больше-MARK (Каллисто)|>MARK]] — Отметить текущий адрес для ссылки вперёд. | |||
* [[больше-RESOLVE (Каллисто)|>RESOLVE]] — Разрешить ссылку вперёд в адресе a. | |||
* [[меньше-MARK (Каллисто)|<MARK]] — Отметить текущий адрес для ссылки назад. | |||
* [[меньше-RESOLVE (Каллисто)|<RESOLVE]] — Разрешить ссылку назад в адрес a. | |||
* [[UNTIL]] — Конец цикла "BEGIN UNTIL". | |||
* [[AGAIN]] — Конец бесконечного цикла "BEGIN AGAIN". | |||
* [[BEGIN]] — Начало циклов "BEGIN". | |||
* [[THEN]] — Конец ветвления "IF". | |||
* [[ELSE]] — Начало 2-ой ветви ветвления "IF". | |||
* [[IF]] — Начало ветвления "IF". | |||
* [[WHILE]] — Ветвление "WHILE" в цикле "BEGIN WHILE REPEAT". | |||
* [[REPEAT]] — Конец цикла "BEGIN WHILE REPEAT". | |||
* [[FOR]] — Начало цикла со счётчиком. Цикл исполнится ровно n раз. | |||
* [[NEXT]] — Конец цикла со счётчиком. | |||
* [[SPACES]] — Вывод заданного числа "цифровых" (шириной в цифру) пробелов на экран. | |||
* [[I-решётка-больше (Каллисто)|I#>]] — Завершает преобразование целого числа | |||
* [[SIGN]] — Вводит знак "минус" в выходной буфер PAD, если n<0 | |||
* [[I-решётка (Каллисто)|I#]] — Преобразует одну цифру целого числа и записывает её в выходной буфер PAD | |||
* [[I-решётка-S (Каллисто)|I#S]] — Преобразует целое число до тех пор, пока не будет получен 0 | |||
* [[меньше-I-решётка (Каллисто)|<I#]] — Начинает процесс преобразования целого числа в последовательность кодов символов. | |||
* [[(.)]] — Как I. -- только не выводит число на экран, а возвращает нам адрес и длину строки. | |||
* [[I.]] — Вывод целого числа, за которым следует один пробел. | |||
* [[. (Каллисто)|.]] — Вывод числа, за которым следует один пробел. | |||
* [[I.R]] — Напечатать n на терминале в поле длиной p справа. | |||
* [[LIST]] — Распечатывает экран с номером u и записывает его номер в переменную SCR | |||
* [[INDEX]] — Выводит на экран верхние строчки экранов, номера блоков которых входят в диапазон от нач до кон. | |||
* [[WORDS]] — Просмотр полного списка операторов, хранящихся в данный момент в словаре | |||
* [[COPY]] — Копирует экран n на экран m | |||
* [[DEPTH]] — Выдаёт в стек полное количество чисел, хранившихся в стеке до исполнения этой команды. | |||
* [[DUMP]] — Отображает u байт памяти начиная с адреса a | |||
* [[.S]] — Распечатка всего содержимого стека, оставляющая стек без изменений. | |||
* [[КАТ]] — Поиск каталога Форта и переход в него. Если каталога нет, он создаётся. | |||
* [[SAVE-TEXT]] — Сохранить область текста в энергонезависимую память. | |||
* [[RGRW]] — Чтение/запись файла регистров (словаря) в загруженном каталоге. | |||
* [[LORW]] — Чтение/запись блока из файла в загруженном каталоге. | |||
* [[R/W]] | |||
* [[SAVE"]] — Сохранить в файлы словарь Форта и десятичный словарь. | |||
* [[LOAD"]] — Считать из файла словарь Форта и десятичный словарь. | |||
* [[;CODE]] | |||
* [[FORTH]] — Делает словарь FORTH контекстным. | |||
* [[TASK]] | |||
== Ссылки == | == Ссылки == | ||
* [https://vk.com/topic-10838600_30361028 Обсуждение Каллисто в Контакте] и [http://arbinada.com/pmk/ru/node/1195 на сайте Арбинады] | |||
* [http://the-hacker.ru/2015/Callisto-0.3.5a.zip Каллисто v0.3.5a], последняя актуальная версия Каллисто | |||
* [https://vk.com/topic-10838600_30361028 Обсуждение Каллисто в Контакте | * Языки [https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D1%82_%28%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29 Форт] и [https://ru.wikipedia.org/wiki/ColorForth colorFORTH] в Википедии | ||
* [http://the-hacker.ru/ | * [https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%BB%D0%BB%D0%B8%D1%81%D1%82%D0%BE_%28%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%29 Каллисто в Википедии] — спутник Юпитера, в честь которого назван язык Каллисто | ||
* Языки [https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D1%82_%28%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29 Форт] и [https://ru.wikipedia.org/wiki/ColorForth colorFORTH | |||
* [https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%BB%D0%BB%D0%B8%D1%81%D1%82%D0%BE_%28%D1%81%D0%BF%D1%83%D1%82%D0%BD%D0%B8%D0%BA%29 Каллисто в Википедии] — спутник Юпитера, в честь которого назван | |||