Модульді компиляциалау

Турбо Паскаль ортасында модуль компиляциясының жолын таңдауға және ірі программалық проекттерді жасақтауды оңайлататын құралдар бар. Дербес жағдайда, компиляцияның үш режимі анықталған: COMPILE, MAKE және BUILD. Режимдер бірі-бірінен компиляцияланатын модульдің немесе негізгі программаның USES –те жарияланған басқа модульдермен байланысу түріне қарай айырмашылық етеді.

Модуль немесе негізгі программа COMPILE режимінде компиляцияланатын болса, онда USES-те жарияланған барлық модульдер алдын-ала компиляцияланып, олардың нәтижелері TPU кеңейтпелі файлда( атауы модуль не программа атауымен бірдей болады) сақталыну тиіс. Мысалы, программада(модульде) былай жазылса

Uses Global;

онда дисктің UNIT DIRECTORIES опциясымен жарияланған катологында GLOBAL.TPU файлы бар болуы керек. TPU кеңейтпелі файл модуль компиляцисяының нәтижесінде автоматты түрде құрылады (егер негізгі программа орындалатын ЕХЕ-файлды құрмай-ақ компиляция жасалынуы мүмкін болса, ал модульдің компиляциясының нәтижесінде әрдайым TPU-файл құрылады).

  1. МАКЕ режимі

Компилятор МАКЕ режимінде әрбір жарияланған модуль үшін әрдайым TPU-файлдың бар-жоқтығын тексереді. Егер файлдың біреуі табылмаса, онда жүйе сәйкес атаулы PAS кеңейтпелі файлды табуға тырысады. Тауып алса, оны компиляциялауға кіріседі. Бұдан бөлек бұл режимде қолданылатын модульдердің бастапқы тексттеріндегі –өзгерістерді бақылап отырады.ЕгерPAS-файлға(модульдің бастапқы тексті) өзгеріс енгізілген болса, ондакатологта сәйкес TPU-файл-дың бар-жоқтығына қарамастан негізгі программаны компиляциялаудан бұрын оны компиляциялап шығады.Егер өзгеріс модульдің интерфейс бөліміне енгізілсе, онда оны пайдаланатын басқа барлық модульдер де қайта компиляцияланады.Осылайша,МАКЕ режимі көп модулі бар ірі программаларды жасақтау процессін жеңілдетеді:программист TPU-файлдардың бастапқы текстпен сәйкестігін тексеру қажеттілігінен құтылады, себебі, автоматты түрде жүйенің өзі мұны атқарады.

  1. BUILD режимі

 BUILD режимінде бар TPU-файлдар қабылданбайды, жүйе USES-те жарияланған әр модуль үшін сәйкес РAS-файлды табуға (және компиляциялауға) тырысады. BUILD режимінде компиляциялаған соң программист кез-келген модульдегі жасаған барлық өзгерістері есепке алынғандығына сенімді бола алады.

Негізгі программаға модульдерді қосу және оларды компиляциялау USES-те жариялану реті бойынша орындалады.Кезекті модульге өту кезінде жүйе алдын-ала осы модульде сілтеме жасалынатын барлық модульдерді түгендеп алады. Модульдердің бір-біріне сілтемесі ағаш құрылымды бола алады, алайда өзіне сілтеме жасауға(айқын не жанама түрде) тиым салынады.Мысалы, келесі түрде жариялауға болмайды:

Unit A; Unit В;

Interface Interface

Uses В;Uses А;

Implementation Implementation

end.end.

Бұл шектемені USES-ті бағыныңқы модулдің орындалу бөліміне “жасыру” арқылы айналып өтуге болады.

Unit A;Unit В;

InterfaceInterface

Implementation Implementation

Uses B;Uses A;

end.end.

Мұның мәні мынада: Турбо Паскаль жартылай компиляция жасалған модульге сілтеме жасауға рұқсат етеді, бұл көмекші программаны алдын-ала сипаттап қоюға ұқсайды.Егер екі модульдің интерфейс бөлімдері бір-бірінен тәуелсіз болса (бұл қажетті шарт), онда Турбо Паскаль барлық әрбір модульдегіглобал идентификаторлардыидентификация жасай алады, бұдан соң кәдуілгі әдспен компиляциялайды.