Реферат: Распределение памяти
фиксируемого при генерации взаимного их расположения, причем
для адресов тех объектов, расположение которых в памяти нельзя
определить статически ( при трансляции ), генерируются
динамические вычисления этих адресов.
Информационные объекты в процессе эволюции языков
программирования также развивались - от простых переменных
целого, символьного типов до субстанций которыми оперируют
современные объектно-ориентированные языки. Ниже будут
изложены механизмы распределения памяти для самых
разнообразных информационных объектов.
1. Области данных
Областью данных является ряд последовательных ячеек - блок
оперативной памяти, - выделенный для данных, каким-то образом
объединенных логически. Часто ( но не всегда ) все ячейки
области данных принадлежат одной и той же области действия в
программе на исходном языке; к ним может обращаться один и тот
же набор инструкций ( т.е. этой областью действия может быть блок
или тело процедуры ).
Во время компиляции ячейка для любой переменной времени
счета может быть представлена упорядоченной парой чисел ( номер
области данных, смещение ), где номер области данных - это
некоторый единственный номер, присвоенный области данных, а
смещение - это адрес переменной относительно начала области
данных. Когда мы генерируем команды обращения к переменной, эта
пара переводится в действительный адрес переменной. Это обычно
выполняется установкой адреса базы ( машинного адреса первой
ячейки ) области данных на регистр и обращению к переменной по
адресу, равному смещению плюс содержимое регистра. Пара ( номер
области данных, смещение ) таким образом переводится в пару