Лекция 01. Тема Общая характеристика языков программирования высокого уровня


Раздельная и независимая компиляция


Download 4.1 Mb.
Pdf ko'rish
bet42/57
Sana12.11.2023
Hajmi4.1 Mb.
#1767546
TuriЛекция
1   ...   38   39   40   41   42   43   44   45   ...   57
Bog'liq
Lektsii po YaP Lukinova 2 sem

4.7. Раздельная и независимая компиляция. 
Возможность компилировать части программы без компиляции всей 
программы существенна при создании больших систем программного 
обеспечения. 
Следовательно, 
языки, 
разрабатываемые 
для 
таких 
приложений, должны допускать такой вид компиляции. Существуют два 
разных подхода к компиляции частей программы:

раздельная компиляция,

независимая компиляция. 
Части программ, которые могут компилироваться отдельно, называются 
единицами компиляции.
Раздельная компиляция означает, что:

единицы компиляции могут компилироваться в разное время,

между единицами компиляции существует связь по данным

осуществляется проверка типов данных и протоколов модулей при 
компиляции.
Примером раздельной компиляции может служить возможность 
организации модулей Unit в языке Pasсal. Ниже приведен код на языке Pasсal, 
демонстрирующий описание и подключение модуля Cmplx к программе.


Unit Cmplx;
Interface
Type
Complex = record
re, im : real
end;
procedure Addc (x, y : complex; var z : complex);
procedure Subc (x, y : complex; var z : complex);
Implementation
procedure Addc ;
begin . . . . . . . end;
procedure Subc ;
begin . . . . . . . end;
end { Unit };
Program test ;
uses Cmplx;
var a, b, c : complex ;
begin
a . re := 1 ; a . im := 1;
b . re := 1 ; b . im := 2;
Addc (a, b, c )
Writeln ( ‘ ‘, c . re :5 : 1, c . im :5 : 1);
End.
В некоторых языках, среди которых выделяются ранние версии языков 
С и Fortran, допускалась независимая компиляция. При независимой 
компиляции:

программные модули компилируются без связи с другими 
программными единицами,

проверка типов и интерфейсов модулей не осуществляется.


Интерфейс подпрограммы на языке Fortran-77 представляет собой 
список параметров. Когда подпрограмма компилируется отдельно, типы ее 
параметров не хранятся вместе с компилируемым кодом или в библиотеке. 
Следовательно, при компиляции другой программы, вызывающей данную 
подпрограмму, типы фактических параметров в вызове не могут проверяться 
на совместимость с типами формальных параметров подпрограммы, даже 
если доступен машинный код вызываемой подпрограммы. 

Download 4.1 Mb.

Do'stlaringiz bilan baham:
1   ...   38   39   40   41   42   43   44   45   ...   57




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling