Нещодавно оцифровані та перетворені на репо, оригінальний вихідний код комп'ютерного наведення Apollo 11 став доступним для перегляду на Github .
У MAIN.agc автор репо коментує, що вони
розділити величезний монолітний вихідний код на менші, більш керовані фрагменти - тобто, на окремі # вихідні файли.
Трохи пізніше автор констатує
Можливо, може бути запитано, чому десятки тисяч рядків джерела з'єднуються за допомогою включення, а не просто збирають вихідні файли окремо, а потім пов'язують їх для формування виконуваного файлу. Відповідь полягає в тому, що в початковій команді розробників не було зв’язків.
Я знаю, що таке лінкери, і я розумію їхню суть, але я ніколи не чув про фразу (наскільки це стосується ASM) "приєднаний шляхом включення".
Що це означає? Враховуючи, що лінкери - це велика справа в програмуванні, мені цікаво, що таке заміна лінкерів на "засоби включення" і як це працює.
#include
директива вC
. Іншими словами, замість того, що кодовий бінг, складений на компоненти, які потім пов'язані між собою, схоже, що$
позначення включає вміст цього файлу, щоб генерувати один великий вихідний файл. Потім один великий вихідний файл збирається як єдине ціле.