Cтраница 2
Блок программы состоит из шести разделов, записываемых в следующем порядке: описание меток, определение констант, определение типов, описание переменных, описание процедур и функций, раздел операторов. Каждое описание и определение заканчивается символом - точкой с запятой. [16]
Последним элементом описания функции является раздел операторов, выполнение которых приводит к вычислению результата функции. Раздел операторов заключен в операторные скобки BEGIN... Рассмотрим в качестве примера описание функции MEAN для вычисления среднего значения чисел, содержащихся в массиве. N, причем N - константа, значение которой задано в основной программе. [17]
В разделе объявлений SAB, кроме характерных для любых архитектурных тел деклараций, таких как декларации типов, сигналов, констант, включаются специфические подразделы: обязательный подраздел декларации прототипов используемых компонентов и необязательный подраздел объявления конфигураций. Раздел операторов SAB содержит операторы вхождения компонентов, которые, собственно, и определяют порядок соединения компонентов. Могут включаться и другие параллельные операторы, а если таких операторов относительно много, подобное архитектурное тело называют смешанным, или структурно-поведенческим. [18]
![]() |
Предопределенные атрибуты типов. [19] |
Например, атрибуты типа используются для сжатого представления информации о множестве значений, объединенных типом, а атрибуты сигнала - для представления временных свойств сигнала. В разделах операторов нельзя присваивать значение атрибуту, способ его определения задается декларацией атрибута. Атрибуту присваивается имя и тип, имя используется как обычная переменная в выражениях того типа, который присвоен атрибуту. [20]
![]() |
Структура программы на языке Фортран. [21] |
После раздела описаний следует часть, которая выполняет какие-либо действия. Она называется разделом операторов. [22]
Между словами BEGIN ( начало) и END ( конец) заключен текст программы, реализующий данный алгоритм. Среди конструкций языка в разделе операторов записаны READ ( N) и WRITELN ( N -, N, N. F), являющиеся процедурами языка ПАСКАЛЬ. Они выполняют ввод данных и вывод результатов программы. [23]
Синтаксическая диаграмма составного оператора была приведена на рис. 2.5. Мы уже видели много примеров применения составного оператора. Так, по существу, разделы операторов программы, процедуры или функции представляют собой составной оператор. [24]
Программа на языке ПАСКАЛЬ состоит из заголовка и тела, которое называется блоком. Блок имеет две основные части: раздел описаний и раздел операторов. В состав программы обычно включают также комментарий, поясняющий назначение отдельных частей и программы в целом. Комментарий не оказывает влияния на выполнение программы. [25]
Раздел описаний состоит из предложений описания переменных, именованных констант, coMMON - блоков и некоторых других. Предложений описания переменных может быть несколько, размещаются они между заголовком программного компонента и его разделом операторов. Располагаться предложения описания переменных могут вместе ( это - одна из составных частей хорошего стиля программирования), но могут и чередоваться с описаниями других объектов. Предложения описаний должны находиться до предложений DATA и исполняемых операторов. [26]
Диаграмма представляет гипотетический проект с интерфейсом, заданным entity main, которому подчинены два архитектурных тела first и second. Рассмотрим подробнее архитектурное тело first. В разделе операторов этого тела присутствуют два независимых блока blocki и block2, причем в blocki вложен еще один программный модуль вьоскз. Соотношения видимости не изменятся, если на месте операторов блоков blocki и BLOCK2 записать операторы процесса. [27]
Как и в случае процедуры, метки из раздела меток и все имена, которые введены в разделах формальных параметров, констант, типов, переменных и процедур или функций, являются локальными по отношению к описанию функции, и это описание есть область действия для этих объектов. Вне области действия они неизвестны. В начале раздела операторов значения локальных переменных неопределены. [28]
Из разделов описаний имеется лишь один - раздел переменных. Он начинается со служебного слова Var, после которого идет последовательность объявления переменных. После описательной части идет раздел операторов, начинающийся со служебного слова Begin, после которого идут операторы языка. Первый встречающийся оператор - это Writeln ( текст); - записать ( вывести) на экран текст, заключенный между апострофами, In добавляется в конце этого оператора для того, чтобы курсор автоматически переходил на следующую строку при выводе на экран текстов или результатов выполнения программы. Следующий оператор - это Readln ( а, Ь); - читать данные с клавиатуры. В данном случае необходимо ввести два целых числа через пробел, тогда переменной а присваивается значение, равное первому введенному числу, а переменной Ъ присваивается значение, равное второму введенному числу. [29]
Если в устройстве есть несколько одинаковых модулей, то прототип декларируется только один раз. Например, если в проект входит несколько однотипных регистров, представленных в библиотеке одним и тем же entity, to в структурном теле размещается единственная декларация прототипа регистра, даже если конкретные экземпляры имеют различные параметры. Тем не менее каждому экземпляру, включаемому в проект, называемому также вхождением модуля ( instance), при структурном описании присваивается собственное имя. Это собственное имя предъявляется в разделе операторов архитектурного тела в виде метки оператора вхождения компонента. [30]