Здравствуйте, zelenprog, Вы писали:
Z>А версия языка, которую я сейчас использую — это еще более древняя версия, которая даже не умеет работать с несколькими модулями.
Z>То есть программа — это один монолитный большой программный файл-модуль.
Z>Но это не исключает того, что этот модуль надо организовать так, чтобы методы были разделены по обязанностям. Чтобы между методами, относящимися к разным обязанностям, было как можно меньшее связывание.
Z>Так как по объему кода, по количеству функций, этот модуль получится достаточно большой.
Z>Без "логичного" разделения в нем будет трудно ориентироваться.
Ну раз нет возможности использовать полиформизм на уровне кода, значит придётся использовать полиморфизм на уровне данных.
В качестве примера можно подсмотреть стек TCP, виндовый WinAPI — структуры переменного размера, в начале размер и тип данных. Внутри обработчика анализ заголовка и передача по цепочке. Т.е. в какой-то точке программы будут собраны все обработчики. Это не хорошо, но и не плохо. Чудес не бывает, какие-то накладные расходы всегда будут.
Наконец, вспомнить, как работал Int 21h
Если есть доступ к ОСи (надеюсь, язык не совершенно оторван от реалий), то можно использовать системозависимые механизмы для обмена данными, выше камрады об этом упомянули.