Языки программирования - концепции и принципы

с динамической загрузкой, при этом


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

 

3.5. Загрузчик

Как подразумевает название, загрузчик загружает программу в память и инициализирует ее выполнение. На старых компьютерах загрузчик был не-тривиален, так как должен был решать проблему перемещаемости программ. Такая команда, как load 140, содержала абсолютный адрес памяти, и его приходилось настраивать в зависимости от конкретных адресов, в которые загружалась программа. В современных компьютерах адреса команд и данных задаются относительно значений в регистрах. Для каждой области памяти с программой или данными выделяется регистр, указывающий на начало этой области, поэтому все, что должен сделать загрузчик теперь, — это скопировать программу в память и инициализировать несколько регистров. Команда load 140 теперь означает «загрузить значение, находя­щееся по адресу, полученному прибавлением 140 к содержимому регистра, который указывает на область данных».

 

 

 

 

 

 

 

 

 

 

3.6. Отладчик

Отладчики поддерживают три функции.

 

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

 

Контрольные точки. Средство, предназначенное для того, чтобы заставить программу выполняться до конкретной строки в программе. Специ­альный вид контрольной точки — точка наблюдения — вызывает вы­полнение программы, пока не произойдет обращение к определенной ячейке памяти.

 

Проверка/изменение данных. Возможность посмотреть и изменить значе­ние любой переменной в любой точке вычисления.


Содержание  Назад  Вперед