1. Внешний и внутренний синтаксис PDL
Внешний синтаксис определяет порядок следования и выполнения операций, организацию данных и доступа к ним и модульную структуру программы. Внутренний синтаксис имеет отношение к типам данных и операциям и выражается либо на естественном языке, либо на специализированных языках (например, на языке метаматематики), соответствующих рассматриваемой проблеме.
Внешний синтаксис языка PDL для управляющих структур включает:
последовательные структуры
последовательность
индексную последовательность (типа fordo)
разветвляющиеся структуры
ifthenelse
ifthen
структуры выбора (типа case)
циклические структуры
whiledo
dountil
dowhiledo
Внешний синтаксис структур данных предусматривает небольшой набор общепринятых методов доступ к поименованным данным (скалярам, массивам, записям) и непоименованным данным (последовательностям, очередям, стекам, множествам).
Внешний синтаксис для описания структуры системы предлагает три уровня организации: задание (job), процедуру (procedure), и модуль (module).
Задание представляет собой набор программ и данных. Они вызываются по внешним заявкам (т.е. оператором или планировщиком заданий) и выполняются до полного завершения. Задание определяется текстом на языке PDL , находящимся между ключевыми словами job и boj, причем имя задания следует за словом job.
Процедура является выполняемой единицей программ, хранимых в памяти ЭВМ. Она вызывается и выполняется до завершения без сохранения внутренних данных. Процедура определяется текстом на языке PDL, записанным между ключевыми словами proc и corp, при этом имя процедуры следует за ключевым словом proc. Процедуры могут вызываться заданиями или другими процедурами с помощью PDL-предложения вида "run имя", где "имя" является идентификатором процедуры.
Для удобства чтения обширная программа на языке PDL может быть организована не как единая процедура, а как иерархия небольших процедур, называемых сегментами. К сегментам обращаются с помощью операторов run, включенных в процедуру, которая в свою очередь может содержать дополнительные операторы run.
Аналогичным образом, хотя структуры данных могут быть описаны внутри заданий или процедур, большие наборы данных могут быть определены в отдельном в сегменте описания данных, находящемся между ключевыми словами data и atad, с указанием имени после ключевого слова data. К объявленным данным обращаются с помощью предложения "use имя" в соответствующем задании или процедуре. Описание больших наборов данных может быть организовано как иерархия описаний сегментов с использованием предложения "use имя", определяющего включение других описаний, которые находятся между data и atad и, возможно, также содержат предложения use.
Структуры данных, включаемые в списки параметров будем называть передаваемыми данными, а все другие описываемые в процедуре структуры данных - локальными данными. Результаты операций над передаваемыми данными соответствуют функции процедуры, в то время как операции над локальными данными позволяют получить промежуточные результаты вычисления этой же функции.
Данные, передаваемые как в задание (процедуру), так и из него (из нее), называют внешними данными и указывают в списке имен данных, следующем за именем задания. Данные, не являющиеся внешними, называют внутренними данными. Данные такого типа передаются, будучи включенными в список параметров предложения run, и именуются в соответствующем списке параметров вызываемой процедуры.
Данные, передаваемые в процедуру или из нее, и внешние данные, поступающие в задание или из него, далее с помощью ключевых слов alt и fix определяются как изменяемые или постоянные данные.
Для систем обработки данных обычно требуется сохранение некоторой части данных при выполнении задания. В связи с этим введем третий класс данных, относящийся к подклассу внутренних данных и называемый хранимыми данными. Например, файлы систем обработки текстовой информации должны определяться как хранимые данные. Задание, выполняемое в этой системе, будет включать внешние данные (входные и выходные данные задания), внутренние данные (промежуточные результаты вычислений) и хранимые данные (корректируемые файлы).
Создание небольшого набора программ, обеспечивающего обслуживание объектов данных, является мощным средством организации программ и данных в системе обработки данных. В связи с этим введет понятие модуля в языке PDL как поименованного множества программ, наборов данных и других модулей с помощью следующего синтаксиса:
mod имя
programms список имен программ
datasets список имен данных
modeles список имен модулей
dom
Определения модуля подразумевает, что в списке поименованных сегментов, записанном после datasets, должны быть хранимые данные и что доступ к этим данным должен быть запрещен для поименованных программ. Поименованные программы модуля могут определять внешние и внутренние данные и ссылаться к ним, как было описано выше, а также пользоваться услугами программ дру4гих поименованных модулей, как указано в определениях данного модуля.
2. Присваивание данных в PDL
Явное присваивание данных обозначается символом ":=". Так, выражение x:=y означает, что x присваивается значение y.
Одновременное присваивание обозначается списком имен данных в левой части от символа присваивания и списком выражений такой же длины в правой части. Например, выражение y,x := y,x указывает на обмен значений x и y.
3. Комментарии
Комментарии заключатся в квадратные скобки и могут располагаться в любом месте программы, записанной на языке PDL. Наиболее эффективны комментарии, сопровождающие ключевые слова.