Recentemente digitalizzato e trasformato in repository, il codice sorgente del computer di guida Apollo 11 originale è stato reso disponibile per la visualizzazione su Github .
In MAIN.agc , l'autore del repository commenta che loro
dividere l'enorme codice sorgente monolitico in blocchi più piccoli e più gestibili, ovvero in singoli file # sorgente.
Poco dopo, afferma l'autore
Si può ragionevolmente chiedere perché decine di migliaia di righe di sorgente siano unite mediante l'inclusione, anziché semplicemente assemblare i file di origine singolarmente e quindi collegarli per formare l'eseguibile. La risposta è che il team di sviluppo originale non aveva linker.
So cosa sono i linker e ne capisco il punto, ma non ho mai sentito parlare della frase (per quanto riguarda l'ASM) "unita mediante l'inclusione".
Cosa significa questo? Considerando che i linker sono molto importanti nella programmazione, sono curioso di sapere cos'è questa sostituzione dei linker con "mezzi di inclusione" e come funziona.
#include
direttivaC
. In altre parole, piuttosto che il codice bing compilato su componenti che sono poi collegati insieme, sembra che la$
notazione includa il contenuto di quel file, al fine di generare un file sorgente di grandi dimensioni. Quel file sorgente di grandi dimensioni viene quindi compilato come singola entità.