Язык Форт и его реализации


         

Сопрограммы


Представление задачи в виде взаимодействующих сопрограмм (процессов) в теории программирования стало уже традиционным [,]. Но на практике этот метод используется редко, так как большинство распространенных языков высокого уровня не имеют необходимых конструкций. В стандарт языка Форт также не включены средства для сопрограммной работы. Вызвано это в основном тем, что такие средства обычно зависят от конкретного приложения и могут варьироваться очень сильно. Тем не менее, используя только стандартные для большинства систем слова, можно реализовать необходимые конструкции.

Рассмотрим достаточно простую и экономную реализацию сопрограмм. Направления, в которых можно ее усовершенствовать, рассмотрены ниже.

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

Будем считать, что адрес области памяти текущей сопрограммы находится в переменной Т-С. Используя ее, введем слова для доступа к полям этой области. Для простоты в данной реализации отводится участок памяти размером 128 байт. В его начале находятся: Т-ПРОГ — указатель начала шитого кода, соответствующего исполняемой программе, Т-СТЕК — указатель вершины стека данных на момент последней приостановки данной сопрограммы (указатель вершины стека возвратов сохраняется на стеке данных) и Т-ВЫЗВ — адрес аналогичной области для сопрограммы, вызвавшей данную. В остальной памяти участка размещаются стек данных и стек возвратов по 60 байт каждый.

Внешняя программа, в рамках которой действует описываемый механизм сопрограмм, представлена 6-байтной областью ВНЕШ, в которой размещаются перечисленные выше значения. В качестве своих стеков эта сопрограмма использует исходные стеки форт-системы.

Перед началом работы все сопрограммы должны быть проинициализированы словом START (старт), завершение работы сопрограммного механизма вызывает слово STOP (стоп).



Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий