Примитив

Материал из ПМК вики
Перейти к навигации Перейти к поиску

Примитив — слово Каллисто, написанное на ЯМК. Впоследствии примитивы предполагается перевести на язык ассемблера и разместить в ПЗУ микроконтроллера.

Для исполнения примитива не требуется интерпретатор шитого кода. Примитивы Форта исполняются аппаратно — значит, максимально быстро.

Обычно обработчик каждого примитива уникален и находится в поле данных. Поле кода любого примитива содержит прямую ссылку на его код — в данном случае, на его же поле данных. Поскольку ЭКВМ не позволяет исполнять код ЯМК из области данных, все примитивы располагаются в памяти программ.

Самый простой способ создания нового примитива — правка исходного текста Каллисто и последующая компиляция его на компьютере. К этому приходится прибегать для решения тех задач, в которых Каллисто не хватает быстродействия или где её стандартные возможности недостаточны. Чтобы разместить большие примитивы, может потребоваться удаление из исходного текста Каллисто слов, которые не нужны для решения конкретной задачи.

Если вы решили распространять написанное вами приложение, по лицензии Каллисто вы должны предоставлять вместе с ней под свободной лицензией исходный код изменённого транслятора, включая код всех написанных для неё примитивов. Это позволит сообществу совершенствовать Каллисто, наш общий инструмент, с учётом ваших наработок.

История[править]

В 1970 году Чак Мур, создатель Форта, называл примитивы «глаголами» (англ. verb).

Форт настолько упрощает создание своих примитивов, что некоторые программисты сравнивают Форт с макроассемблером. Существенная разница в том, что макроассемблеры предоставляют значительно меньше возможностей по расширению и совершенствованию собственного входного языка.

Ассемблер — язык второго поколения. В Форте он используется для написания примитивов. Но даже с макросами ассемблеру недоступны верхние уровни Форта (языка 4 поколения), на котором входной язык становится языком задачи.


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.