Каллисто: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 3: Строка 3:
Вместо фортовского цикла DO…LOOP ''Каллисто'' использует более простой и быстрый цикл [[FOR]]…[[NEXT]] из colorFORTH, а [[стек данных]] содержит привычные 12-разрядные десятичные числа ЭКВМ с плавающей запятой. Помимо стандартных для Форта операций деления с остатком, ''Каллисто'' использует [[÷|традиционное для ПМК деление]] с плавающей запятой. Сохранены традиционные для ПМК обозначения операций умножения, подъёма стека, а также русскоязычные операции ПМК — [[ЗН]] , [[СЧ]] и т.д. Предусмотрены команды [[РЕГ!]] и [[РЕГ@]] для обращение к функциональным и другим [[Регистр памяти данных|регистрам ЭКВМ]] по их привычным номерам.
Вместо фортовского цикла DO…LOOP ''Каллисто'' использует более простой и быстрый цикл [[FOR]]…[[NEXT]] из colorFORTH, а [[стек данных]] содержит привычные 12-разрядные десятичные числа ЭКВМ с плавающей запятой. Помимо стандартных для Форта операций деления с остатком, ''Каллисто'' использует [[÷|традиционное для ПМК деление]] с плавающей запятой. Сохранены традиционные для ПМК обозначения операций умножения, подъёма стека, а также русскоязычные операции ПМК — [[ЗН]] , [[СЧ]] и т.д. Предусмотрены команды [[РЕГ!]] и [[РЕГ@]] для обращение к функциональным и другим [[Регистр памяти данных|регистрам ЭКВМ]] по их привычным номерам.


В ''Каллисто'' используется [[единое адресное пространство]], при этом размер ячейки памяти зависит от адреса и может колебаться от 1 байта до 12-разрядного десятичного числа с плавающей запятой. Беззнаковые 16-битные целые считываются в [[Стек данных|стек]] из двух последовательных ячеек (байт) памяти с помощью слова [[U@]]. Как принято в ЭКВМ, старший байт идёт по младшему адресу. Первые 10000 ячеек памяти представляют из себя [[память программ]], в которой находится исполняемый код ''Каллисто'' на [[ЯМК]]. Каждая из этих 10 тысячи ячеек содержит 1 байт, доступный только для чтения. Из-за невозможности исполнять [[Система команд ЭКВМ|код МК-161]] из [[Память двоичных данных|области данных]] при написании определяющих слов вместо конструкции CREATE…DOES> используется более древний, но не менее мощный механизм [[меньше-BUILDS|<BUILDS]] … [[DOES-больше (Каллисто)|DOES>]]
В ''Каллисто'' используется [[единое адресное пространство]], при этом размер ячейки памяти зависит от адреса и может колебаться от 1 байта до 12-разрядного десятичного числа с плавающей запятой. Беззнаковые 16-битные целые считываются в [[Стек данных|стек]] из двух последовательных ячеек (байт) памяти с помощью слова [[U@]]. Как принято в ЭКВМ, старший байт идёт по младшему адресу. Первые 10000 ячеек памяти представляют из себя [[память программ]], в которой находится исполняемый код ''Каллисто'' на [[ЯМК]]. Каждая из этих 10 тысячи ячеек содержит 1 байт, доступный только для чтения. Из-за невозможности исполнять [[Система команд ЭКВМ|код МК-161]] из [[Память двоичных данных|области данных]] при написании определяющих слов вместо конструкции CREATE…DOES> используется более древний, но не менее мощный механизм [[〈BUILDS|<BUILDS]] … [[DOES-больше (Каллисто)|DOES>]]


После нажатия клавиши ВВОД введённые слова либо исполняются сразу, либо компилируются в словарь (dictionary), находящийся в [[Память двоичных данных|области двоичных данных]]. В этой же области располагается стек возвратов. [[Стек данных|«Бесконечный» стек данных]] располагается в области [[Регистр десятичных данных|десятичных регистров]]. Там же располагается «десятичный словарь», где хранятся удобные десятичные переменные типа [[VALUE]]
После нажатия клавиши ВВОД введённые слова либо исполняются сразу, либо компилируются в словарь (dictionary), находящийся в [[Память двоичных данных|области двоичных данных]]. В этой же области располагается стек возвратов. [[Стек данных|«Бесконечный» стек данных]] располагается в области [[Регистр десятичных данных|десятичных регистров]]. Там же располагается «десятичный словарь», где хранятся удобные десятичные переменные типа [[VALUE]]

Версия от 07:14, 11 августа 2015

Каллисто — компактный диалект языка Форт с элементами colorFORTH, написанный для «Электроники МК-161» на РЯМК и предназначенный для программирования «на борту». Пока существует в альфа-версии, но уже позволяет определять новые слова, редактировать и компилировать экраны, успешно переносить на МК-161 старые программы, написанные на Форте. Актуальная версия — 0.3.5a.

Вместо фортовского цикла DO…LOOP Каллисто использует более простой и быстрый цикл FORNEXT из colorFORTH, а стек данных содержит привычные 12-разрядные десятичные числа ЭКВМ с плавающей запятой. Помимо стандартных для Форта операций деления с остатком, Каллисто использует традиционное для ПМК деление с плавающей запятой. Сохранены традиционные для ПМК обозначения операций умножения, подъёма стека, а также русскоязычные операции ПМК — ЗН , СЧ и т.д. Предусмотрены команды РЕГ! и РЕГ@ для обращение к функциональным и другим регистрам ЭКВМ по их привычным номерам.

В Каллисто используется единое адресное пространство, при этом размер ячейки памяти зависит от адреса и может колебаться от 1 байта до 12-разрядного десятичного числа с плавающей запятой. Беззнаковые 16-битные целые считываются в стек из двух последовательных ячеек (байт) памяти с помощью слова U@. Как принято в ЭКВМ, старший байт идёт по младшему адресу. Первые 10000 ячеек памяти представляют из себя память программ, в которой находится исполняемый код Каллисто на ЯМК. Каждая из этих 10 тысячи ячеек содержит 1 байт, доступный только для чтения. Из-за невозможности исполнять код МК-161 из области данных при написании определяющих слов вместо конструкции CREATE…DOES> используется более древний, но не менее мощный механизм <BUILDSDOES>

После нажатия клавиши ВВОД введённые слова либо исполняются сразу, либо компилируются в словарь (dictionary), находящийся в области двоичных данных. В этой же области располагается стек возвратов. «Бесконечный» стек данных располагается в области десятичных регистров. Там же располагается «десятичный словарь», где хранятся удобные десятичные переменные типа VALUE

Помимо ввода с клавиатуры, исходный текст на языке Каллисто может располагаться на электронном диске в виде экрана, в пронумерованном блоке (текстовом файле).

В отличии от ранних диалектов Форта экран Каллисто содержит 48 строк, занимает 3 Кб и при интерпретации считывается из буфера, расположенного в области текста. Из-за того, что строка экрана занимает традиционные 64 символа, использование встроенного в ЭКВМ редактора является затруднительным. Программистам Каллисто предлагает строковый редактор EDIT, а также возможность написать собственный редактор экранов. Каллисто использует накладную алфавитно-цифровую клавиатуру для быстрого посимвольного ввода команд и данных.

При разработке Каллисто учитывались черновики готовящегося стандарта Forth 200x — например, с помощью стандартных префиксов Форта для каждого числа можно индивидуально задавать систему счисления. Также в Каллисто можно обнаружить наследие Форта ИТЭФ, от реализации которого отталкивались первые версии Каллисто. Несмотря на явное влияние стандартов языка Форт, при разработке Каллисто приоритет отдавался удобству и скорости работы на ЭКВМ — вообще говоря, не предназначенной разработчиками для алгоритмических языков высокого уровня.

Ссылки