Реферат - Язык программирования Оккам
.docУфимский Государственный Авиационный
Технический Университет
Кафедра ТК
Реферат
На тему:
“Язык программирования Оккам”
Уфа 2003
Содержание
Введение 3
1. Процессы 3
1.1. Процессы, не выполняющие действий 3
1.2. Последовательные процессы 3
1.3. Параллельные процессы. 4
1.4. Процессы времени 5
2. Описание данных 5
3. Циклы 6
4. Приоритеты 6
5. Структура программирования 6
Введение
Язык Оккам считается “языком ассемблера” для транспьютерных систем. Основой для языка Оккам является разработанный Т. Хоаром язык CSP.
Основным понятием языка является процесс: примитивный процесс, составной процесс, именованный процесс. Процессы могут выполняться последовательно и параллельно. Параллельные процессы взаимодействуют с помощью каналов.
Программа представляет простой процесс, использующий идентификаторы, точное значение которых зависит от конкретной машины. Процесс описывает действие, подлежащие выполнению. Процесс может быть примитивным или составным, содержащим определения и более простые составляющие процессы, объединенные «конструкторами» процессов. Структура составных задается посредствам фиксированного расположения текстов, в котором каждая компонента размещается на новой строке с небольшим отступом вправо от начала ключевого слова, вводящего определенную конструкцию.
1. Процессы
1.1. Процессы, не выполняющие действий
SKIP - простейший примитивный процесс, который не выполняет никаких действий.
STOP - процесс не выполняющий никаких действий, в отличие от процесса SKIP не завершается, но параллельно с остановленным процессом могут выполняться другие процессы.
1.2. Последовательные процессы
Выполнение последовательных программ заключается в присваивании переменным определенных значений, на основании которых в дальнейшем принимаются некоторые решения. Присваивание в языке Оккам имеет следующую форму.
переменная: = выражение
Каждое выражение имеет значение в виде комбинации битов, длина которой равна значению слова, используемого компьютером, каждая переменная способна сохранить битовую комбинацию размера слова.
SEQ – последовательный процесс конструируемый посредством записи последовательности его компонент, располагаемых одна за другой с небольшим отступом от ключевого слова SEQ. Последовательный процесс реализуется посредством выполнения каждой его компоненты в порядке записи.
IF - условный процесс с помощью которого производится выбор для выполнения одного из нескольких процессов, основанный на анализе значений переменных, Конструкция состоит из ключевого слова IF, ниже которого с небольшим отступом в право записываются компоненты. IF процессы выполняются путем просмотра сверху вниз списка компонент до тех пор пока не встретится условие со значением TRUE.
1.3. Параллельные процессы.
PAR – процесс, состоящий в выполнение каждой его компоненты до полного его завершения. Конструкция состоит из ключевого слова PAR, после которого с небольшим отступом вправо один под другим записываются процессы.
Связь между процессами осуществляется посредством ввода и вывода по каналам.
Процесс вывода
канал! Выражение - передает значение выражения по каналу.
Процесс ввода
канал? Переменная - принимает значение из канала и запоминает его как значение переменной.
Выбор процесса для выполнения в зависимости от других процессов ввода может производится с использованием ALT- процесса.
1.4. Процессы времени
В языке Оккам существует два примитивных процесса, с помощью которых программа получает доступ к текущему значению времени.
Процесс считывания показаний часов
TIME? Переменная - в результате переменной присваивается значение, равное текущему показанию часов.
Процесс временной задержки
TIME? AFTER выражение - может приостановить выполнение программы.
2. Описание данных
Имя в Оккам - программе, перед использованием, должно быть описано. Описание позволяет именовать значение констант, переменных и каналов.
Для записи констант используют ключевое слово DEF, за которым следуют определения вида
имя = константное выражение
Переменные описываются перечислением их имен после ключевого слова VAR выше процесса, в котором будут использоваться.
Каналы, описываются также, как переменные, но с ключевым словом CHAN.
С помощью ключевого слова PROC, можно давать имена процессам. Описание процесса вводится строкой вида:
PROC имя = текст именованного процесса
В языке существует один вид структурированных данных – одномерный массив. Можно использовать массивы констант, переменных и каналов. Описание массива состоит из имени массива, за которым в квадратных скобках записывается константное выражение.
имя [количество]
описывает ряд переменных, на которые можно ссылаться, индексируя имя массива выражениями, значение которых принадлежат диапазону от 0 до количество – 1.
Массив констант называется таблицей и обозначается следующим образом
TABLE [выражение. 0, выражение. 1, выражение. 2, …, выражение. n]
3. Циклы
В языке Оккам существует два вида циклов: неограниченные циклы WHILE и ограниченные индексируемы циклы FOR.
Выполнение WHILE заключается в проверке значений условий и затем, если это значение равно TRUE, выполнении тела цикла.
4. Приоритеты
Приоритеты в разменных операций не определены, поэтому в выражениях более чем с одной операцией, порядок действий обычно необходимо определять с помощью скобок. С помощью операций сравнения <, ≤, =, ≥, >, <> производится сравнение операндов.
5. Структура программирования
Прием, который может заставить работать процесс, когда другой процесс занят какой – либо работой – это организовать передачу данных из одного канала в другой. Для этого надо неоднократно выполнять ввод из одного канала присваивания значения локальной переменной и последующую передачу значения переменной по другому каналу.
Структурные конфликты происходят тогда, когда программа должна выполнять операции над данными, различными на перекрывающиеся компоненты.
Естественный подход по нормированию подобных задач состоит в написании программ, структура которых отражает структуру документа.