Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Реферат - Язык программирования Оккам

.doc
Скачиваний:
33
Добавлен:
02.05.2014
Размер:
53.25 Кб
Скачать

Уфимский Государственный Авиационный

Технический Университет

Кафедра ТК

Реферат

На тему:

Язык программирования Оккам

Уфа 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. Структура программирования

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

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

Естественный подход по нормированию подобных задач состоит в написании программ, структура которых отражает структуру документа.