Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Чем различаются раздельная и независимая компиляции?

Автор: Dr.Bugy 18.09.2006 2:11

Чем различаются раздельная и независимая компиляции?

Автор: volvo 18.09.2006 2:40

1) независимая:
(http://club.shelek.com/viewart.php?id=241)

Цитата
Другое расширение языка позволяло компилировать фрагменты программы отдельно, каждый фрагмент в свой объектный модуль. При этом «внешние» процедуры описывались одним лишь заголовком с ключевым словом external. Затем компоновщик собирал объектные модули воедино в загрузочный образ программы. Такой подход, получивший название независимой компиляции, позволил избежать полной перекомпиляции проекта, выигрывая немало времени.

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


2) раздельная:
(http://www.vspu.ac.ru/~chul/wirth/pascal/pascal.htm)
Цитата
Модульная конструкция могла, наверное, иметь в основном только академический интерес, если бы не техника раздельной компиляции, с самого её начала связанная с модулем. Под термином "раздельной компиляции" мы понимаем, что (1) полная проверка типов производится компилятором не только внутри модуля, но и по его интерфейсам и (2) проверка совместимости (и версий) между соединяемыми модулями достигается посредством простого ключевого сравнения, когда модули скомпонованы и загружены.

Автор: Dr.Bugy 18.09.2006 2:45

Спасибо.