Недавно оцифрованный и превращенный в репозиторий исходный компьютерный исходный код Apollo 11 был доступен для просмотра на Github .
В репозитории MAIN.agc автор репозитория комментирует, что они
разбить огромный монолитный исходный код на более мелкие, более управляемые куски - т.е. на отдельные исходные # файлы.
Чуть позже автор заявляет
Можно разумно спросить, почему десятки тысяч строк исходного кода объединяются с помощью включения, а не путем простой сборки исходных файлов по отдельности и последующего связывания их для формирования исполняемого файла. Ответ заключается в том, что в первоначальной команде разработчиков не было линкера.
Я знаю, что такое линкеры, и я понимаю их смысл, но я никогда не слышал о фразе (насколько это касается ASM), «соединенной посредством включения».
Что это значит? Учитывая, что линкеры имеют большое значение в программировании, мне любопытно, что такое замена линкеров «средствами включения» и как она работает.
#include
директива вC
. Другими словами, вместо того, чтобы код кода компилировался на компоненты, которые затем связывались вместе, похоже, что$
нотация включает в себя содержимое этого файла, чтобы создать один большой исходный файл. Этот один большой исходный файл затем компилируется как единый объект.