Каллисто: различия между версиями
AtH (обсуждение | вклад) |
AtH (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
[[Файл:Callisto-161.JPG|thumb|right|360px|Каллисто на «Электронике МК-161».]] | [[Файл:Callisto-161.JPG|thumb|right|360px|Каллисто на «Электронике МК-161».]] | ||
'''Каллисто''' — компактный диалект языка Форт с элементами colorFORTH, написанный для [[Электроника МК-161|«Электроники МК-161»]] на [[РЯМК]] и предназначенный для программирования «на борту». Пока существует в альфа-версии, но уже позволяет определять новые слова, редактировать и компилировать [[экран]]ы, успешно переносить на [[МК-161]] старые программы, написанные на Форте. Актуальная версия — 0. | '''Каллисто''' — компактный диалект языка Форт с элементами colorFORTH, написанный для [[Электроника МК-161|«Электроники МК-161»]] на [[РЯМК]] и предназначенный для программирования «на борту». Пока существует в альфа-версии, но уже позволяет определять новые слова, редактировать и компилировать [[экран]]ы, успешно переносить на [[МК-161]] старые программы, написанные на Форте. Актуальная версия — 0.5a. | ||
Строка 23: | Строка 23: | ||
* См. [[Список стандартных слов Каллисто]], [[Слова Каллисто по категориям]] и [[Палитра Каллисто]] | * См. [[Список стандартных слов Каллисто]], [[Слова Каллисто по категориям]] и [[Палитра Каллисто]] | ||
* [https://vk.com/topic-10838600_30361028 Обсуждение Каллисто в Контакте], [http://mk-152.livejournal.com/53935.html в живом журнале] и [http://arbinada.com/pmk/ru/node/1195 на сайте Арбинады] | * [https://vk.com/topic-10838600_30361028 Обсуждение Каллисто в Контакте], [http://mk-152.livejournal.com/53935.html в живом журнале] и [http://arbinada.com/pmk/ru/node/1195 на сайте Арбинады] | ||
* [http://the-hacker.ru/2015/Callisto-0. | * [http://the-hacker.ru/2015/Callisto-0.5a.zip Каллисто v0.5a], последняя актуальная версия Каллисто | ||
* Языки [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%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 Каллисто в Википедии] — спутник Юпитера, в честь которого назван ''язык Каллисто'' | * [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 Каллисто в Википедии] — спутник Юпитера, в честь которого назван ''язык Каллисто'' |
Версия от 04:15, 16 октября 2015
Каллисто — компактный диалект языка Форт с элементами colorFORTH, написанный для «Электроники МК-161» на РЯМК и предназначенный для программирования «на борту». Пока существует в альфа-версии, но уже позволяет определять новые слова, редактировать и компилировать экраны, успешно переносить на МК-161 старые программы, написанные на Форте. Актуальная версия — 0.5a.
Основные отличия Каллисто от Форта
Вместо фортовского цикла DO…LOOP Каллисто использует более простой и быстрый цикл FOR…NEXT из colorFORTH, а стек данных содержит привычные 12-разрядные десятичные числа ЭКВМ с плавающей запятой. Для представлений значений истины и лжи используются числа 0 и -1 соответственно. Для входных значений любые числа, отличные от нуля, считаются истиной.
Помимо стандартных для Форта операций деления с остатком, Каллисто использует традиционное для ПМК деление с десятичной плавающей запятой. Сохранены традиционные для ПМК обозначения операций умножения, подъёма стека, а также русскоязычные операции ПМК — ЗН , СЧ и т.д. Предусмотрены команды РЕГ! и РЕГ@ для обращение к функциональным и другим регистрам ЭКВМ по их привычным номерам. В названиях слов Каллисто русские буквы можно использовать наряду с английскими, причём заглавные и строчные буквы считаются одинаковыми.
В Каллисто используется единая адресация, объединяющая разрозненные адресные пространства ЭКВМ. При этом размер адресуемой ячейки памяти зависит от адреса и может колебаться от 1 байта до восьми (12-разрядного десятичного числа с плавающей запятой). Беззнаковые 16-битные целые считываются в стек из двух последовательных ячеек (байт) памяти с помощью слова U@. Как принято в ЭКВМ, старший байт идёт по младшему адресу. Первые 10000 ячеек памяти представляют из себя память программ, в которой находится исполняемый код Каллисто на ЯМК. Каждая из этих 10 тысячи ячеек содержит 1 байт, доступный только для чтения. Из-за невозможности исполнять код МК-161 из области данных при написании определяющих слов вместо конструкции CREATE…DOES> используется более древний, но не менее мощный механизм <BUILDS … DOES>
После нажатия клавиши ВВОД введённые слова либо исполняются сразу, либо компилируются в словарь, находящийся в области двоичных данных. В этой же области располагается стек возвратов — растущий «вниз», навстречу словарю. «Бесконечный» стек данных располагается в области десятичных регистров. Там же располагается десятичный словарь, где хранятся удобные десятичные переменные типа VALUE.
Программы на Каллисто (их исходный текст)
Помимо ввода с клавиатуры, исходный текст на языке Каллисто может располагаться на электронном диске в виде экрана, в пронумерованном блоке (текстовом файле).
В отличии от ранних диалектов Форта экран Каллисто содержит 48 строк, занимает 3 Кб и при интерпретации считывается из буфера, расположенного в области текста. Из-за того, что строка экрана занимает традиционные 64 символа, использование встроенного в ЭКВМ редактора является затруднительным. Программистам Каллисто предлагает строковый редактор EDIT, а также возможность написать собственный редактор экранов. Каллисто использует накладную алфавитно-цифровую клавиатуру для быстрого посимвольного ввода команд и данных.
При разработке Каллисто учитывались черновики готовящегося стандарта Forth 200x — например, с помощью стандартных префиксов Форта для каждого числа можно индивидуально задавать систему счисления. Также в Каллисто можно обнаружить наследие Форта ИТЭФ, от реализации которого отталкивались первые версии Каллисто. Несмотря на явное влияние стандартов языка Форт, при разработке Каллисто приоритет отдавался удобству и скорости работы на ЭКВМ — вообще говоря, не предназначенной разработчиками для алгоритмических языков высокого уровня.
Ссылки
- См. Список стандартных слов Каллисто, Слова Каллисто по категориям и Палитра Каллисто
- Обсуждение Каллисто в Контакте, в живом журнале и на сайте Арбинады
- Каллисто v0.5a, последняя актуальная версия Каллисто
- Языки Форт и colorFORTH в Википедии
- Каллисто в Википедии — спутник Юпитера, в честь которого назван язык Каллисто
- Форум по Форту и более мелкий форум на Авиабазе
- Л.Броуди «Способ мышления — Форт»
- Баранов С.Н. «Язык Форт в СССР и России»
- Статья «Русский язык и программирование» на compiler.su