Ада-95. Компилятор GNAT


Инструкции, выражения и элаборация


Очевидно, что исполнение инструкций осуществляется во время выполнения программы с целью выполнить какие-либо действия.

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

Кроме того, во время выполнения программы происходит вычисление различных имен, которые указывают на соответствующие объекты (содержащие какие-либо значения) или другие сущности (такие как подпрограммы и типы).

Некоторые конструкции языка содержат описательные части, сопровождаемые последовательностями инструкций.

Например, тело процедуры может иметь следующий вид:

procedure P( ... ) is

I: Integer := 1; -- описательная часть . . . begin

. . . -- последовательность инструкций I := I * 2; . . . end P;

Перед выполнением тела процедуры происходит элаборация (elaboration) всех описаний, которые указаны в описательной части.

Последовательность элаборации описаний определяется порядком их следования в описательной части.

Эффект от элаборации описаний заключается в создании сущностей, определенных в описаниях, и в выполнении прочих действий, которые специфичны для описаний.

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

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

После завершения элаборации, осуществляется исполнение последовательности инструкций, в порядке их следования (за исключением случаев, когда осуществляется передача управления в какое-либо другое место, отличное от последующей инструкции).

Инструкция присваивания позволяет заменить значение переменной результатом вычисления выражения того же самого типа.

Обычно, присваивание осуществляется простым побитовым копированием значения, которое получено в результате вычисления выражения.

Однако, в случае нелимитированных контролируемых типов, после осуществления побитового копирования, пользователь (при необходимости) может определить дополнительную последовательность действий.




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



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