Связывание во время программирования уравнения

Часто считают, что эти периоды времени не разделены. Например, если пишут простую программу на Фортране, которая считывает какие-либо данные, выполняет определенные вычисления и печатает результаты, то, очевидно, имеются два периода времени: программирования и прогона. Возьмем теперь в качестве примера более общий случай. Рассмотрим программу, которая необходима для решения «уравнения состояния» для материала (например, давления как функции плотности и температуры воды). Следующие методы соответствуют различным временам связывания с программой решения уравнения состояния. Случай 1: Связывание во время программирования уравнения состояния кодируется в программе явно, как внутренняя процедура или просто как последовательность строк программы. Это соответствует связыванию во время программирования. Уравнение состояния (и, следовательно, материал, для анализа которого предназначена программа) не может быть изменено после ‘ того, как программа написана. Можно, конечно, обеспечить возможность выбора из заранее определенного набора уравнений состояния, но это принципиально не меняет ситуации, так как при этом вместо одного материала просто имеется некоторое ограниченное и заранее заданное число материалов. Случай 2: Связывание во время редактирования связей. Уравнение состояния описывается в программе как внешняя процедура. Различные процедуры, соответствующие различным материалам, загружаются в различные библиотеки подпрограмм. Во время связывания всех подпрограмм в выполняемый модуль («редактирование связей») используется только одна из этих библиотек. Таким образом, функция, с помощью которой решается уравнение состояния для необходимого материала, может быть выбрана непосредственно перед выполнением программы. В этом случае ограничения на выбор материала снимаются совсем. Должно соблюдаться лишь единственное условие: каждой паре значений плотности и температуры должно соответствовать единственное значение давления.

Releated Post

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.