Введение в архитектуру компьютеров


Язык OCCAM


Для многотранспьютерных систем английскими учеными был создан специальный язык параллельного программирования OCCAM, детальное описание которого было дано в 1984 г. в книге "INMOS Limitid Occam Programming Manual". В отличие от ЯПП, например, Concurent Fortran или Concurent Pascal, он не построен путем расширения известных последовательных ЯП.

Теоретической основой данного языка является язык CSP (Com-municating Sequential Processes), разработанный Т. Хоаром. Основным понятием языка является процесс (примитивный, составной, именованный), напоминающий процедуры и подпрограммы обычных языков программирования.

Простейшим примитивным процессом является процесс SKIP.

Если именованный процесс имеет список формальных параметров, то они следуют в описании процесса после его имени с указанием ключевых слов VALUE, VAR и CHAN, обозначающих их природу: соответственно значение, переменная или канал.

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

Последовательный процесс задается перечислением за ключевым словом SEG всех его компонент, которые должны выполняться последовательно.

Для описания параллельного процесса после ключевого слова PAR задаются необходимые составляющие его процессы. Выполнение параллельной композиции (PAR-процесса) состоит в выполнении каждой его компоненты до полного их завершения.

Выбор процесса для исполнения в зависимости от готовности других процессов задается через ALT-процесс.

Все имена в Occam-программе до их использования должны быть опи- саны.


Начало  Назад  Вперед



Книжный магазин