На что бы хотел обратить внимание:
пример функции:
error(s, p1, p2) {
extern printf, line, fout, flush, putchar, nerror;
int f;
nerror++;
flush();
f = fout;
fout = 1;
printf("%d: ", line);
printf(s, p1, p2);
putchar('\n');
fout = f;
}
Во-первых в исходниках нет никаких хедеров - изначально их никто не планировал, и они были не нужны. Зато каждая функция, ЯВНО указывает какие именно другие функции и внешние/глобальные она в своем теле использует (в данном случае это printf, line, fout, flush, putchar, nerror).
Таким образом, единицей инкапсуляции, и, потенциально, компиляции а также загрузки и выгрузки является Функция. Кстати, ровно то же самое мы наблюдаем и в Алголе-68.