Современное программирование предлагает пользователям использовать самые разнообразные языки программирования. Но основой основ является Паскаль.Данный язык был разработан в 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, как в примере выше, корректность полученных данных не контролируется. |
---|