TURBO PASCAL |
Новости
|
Эффективная компоновкаКомпоновщик Borland Pascal автоматически удаляет неиспользу- емый код (по процедурам), то есть процедуры и функции, являющиеся частью скомпилированной программы, но к которым нет обращений, не включаются в файл типа .EXE. Процедуры, функции, переменные и ти- пизованные константы, участвующие в процессе компиляции, но ссыл- ки на которые отсутствуют, удаляются из файлa .EXE. Удаление не- используемого кода выполняется по процедурам, а удаление неис- пользуемых данных - по секциям, где эти данные описываются. Рассмотрим следующую программу: program SmartLink; const H: array[0..15] of char = '0123456789ABCDEF'; var I,J : integer; X,Y : real; var S: string[79]; var A: array[1..10000] of integer; procedure P1: begin A[1] = 1; end; procedure P2; begin I := 1; B.Pascal 7 & Objects/LR - 410 - end; procedure P3; begin S := 'Borland Pascal'; P2; end; begin P3; end; Основная программа вызывает процедуру P3, которая вызывает процедуру P2, поэтому обе процедуры P2 и P3 включаются в файл .EXE. Поскольку P2 ссылается на первый раздел описания перемен- ных, а P3 ссылается на второй раздел описание переменных, пере- менные I, J, X, Y, S также включаются в выполняемый файл. Однако на процедуру P1 никаких ссылок нет, а включенные в выполняемый файл процедуры не ссылаются на переменные Н и A, поэтому эти объ- екты удаляются. Эффективная компоновка имеет особую ценность в связи с ис- пользованием модулей, которые реализуют библиотеки процедур и функций. Примером такого модуля является стандартный модуль Dos, который содержит ряд процедур и функций. При этом программа редко использует все эти процедуры. Если она использует только одну или две процедуры или функции, то только эти процедуры включаются в полученный в результате код. |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |