Современное программирование предлагает пользователям использовать самые разнообразные языки программирования. Но основой основ является Паскаль.Данный язык был разработан в 1971 году в Университете Цюриха профессором Никлаусом Виртом. Его предназначение изначально было учебным. Имея достаточно четко выраженную структуру и систему предоставления данных Паскаль имел ограничения в функциях ввода - вывода, при создании подпрограмм.

Инициализированные и наложенные переменные

Инициалазированные переменные - переменные с заданным начальным значением, объявляются в специальной конструкции const.

Синтаксическая диаграмма конструкции <Объявление инициализированных переменных>

С точки зрения идеологии языка объявление инициализированных переменных в конструкции const является некорректным. В следующих версиях это было исправлено. Инициализированные переменные в программе можно изменять как и обычные. Например:

Const a: real = 5/6;...

a:= (n-1)/k;...

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

Синтаксическая диаграмма конструкции <Объявление наложенной переменной>

Из данной диаграммы следуют два варианта наложения переменных:

1. Наложение по абсолютному адресу - за словом absolute следует пара чисел типа word, разделенных двоеточием. Первое чило трактуется как адрес сегмента, второе - смещение. Такое объявление сегмента соответстует физическому связыванию переменной и области памяти по указанному физическому адресу. Например:

Var A: word absolute $000: $00FF;

L: array [1...2] of char absolute 128: 0; ...

Данный вариант используется при обращении к таблицам операционной системы.

2. Наложение на ранее определенную переменную - за словом absolute размещают идентификатор ранее определенной переменной. При этом переменной, описанной с absolute, присваивается адрес переменной, идентификатор, который стоит после него. Таким образом происходит смещение в памяти данных с разными именами и возможно, типами. Например:

Var C:byte;

a:real absolute c; ...

Вследствие наложения любое изменение одной переменной отражается на значении другой. При несовпадении размеров областей внутреннего представления данных, связанных по absolute, как в примере выше, корректность полученных данных не контролируется.

Hosted by uCoz