Что Мориц написал (и вы согласились).
Но я чувствую, что готовлю аналогию.
как мы можем сформулировать это правильно, чтобы объяснить это в документации?
Возможно, по аналогии.Вот один из макушек моей головы.Возможно, это поможет прояснить вещи для читателей этой СО.Это ужасно неадекватно, как я упомяну в конце.Так что не используйте это в документах.Но, возможно, это поможет создать достойную аналогию для добавления в документы.
Программа - это как рецепт торта.В нашей аналогии он смешивает инструкции по его приготовлению и выпечке.
При компиляции программы следуйте инструкциям по приготовлению пирога.
Запуск программы следует инструкциям по расстановке пирога впечь и выпекание.
Прекомпиляция - это как приготовление торта и помещение его в холодильник для выпечки в другой день.
BEGIN
Время - время приготовления.Если инструкция начинается с BEGIN
, то эту инструкцию следует выполнять, как только кто-то читает ее во время приготовления пирога.
Время приготовления может быть непосредственно перед выпечкой пирога или в предыдущий день..
Обычно инструкции (программы) должны работать нормально, независимо от выбранной стратегии (приготовить и сразу испечь или приготовить, положить в холодильник и выпекать позже) шеф-повар (компилятор и человек, использующий компилятор)..
Кроме того, следует ли поощрять использование BEGIN (поскольку вычисленные значения будут сохраняться в кэше предварительной компиляции и, таким образом, эффективно исключаться из среды выполнения) или не рекомендуется?
Быть готовым, как правило, хорошо.В большинстве случаев работа по подготовке кекса для выпечки одинакова, независимо от того, хранится ли готовый кек в холодильнике некоторое время или выпекается сразу после его приготовления.
Так что я быскажем поощряется.Конечно, не dis отважно, по крайней мере, не в целом .
Но иногда имеет смысл откладывать некоторые работы, которые можно было бы назвать «подготовительными», до тех пор, пока выпечка неначалось.В этом случае не используйте BEGIN
для этого, потому что BEGIN
специально означает время компиляции в смысле перед временем выполнения , как объяснено далее.
Есть ли хороший пример использования для этого?
Константа является хорошим кандидатом для сортировки в рамках "подготовки".
Константа, представляющая Рождество2018 год является хорошим кандидатом для определения во время компиляции.
Константа, представляющая Рождество, вероятно, является хорошим кандидатом для определения во время выполнения.опущено.)
Эта аналогия отстой, потому что как только вы выпекаете торт (запускаете программу), готовый торт (запись в кэше прекомпиляции) исчезает.
Понятие приготовления чего-либодолжен быть заменен процессом, который включает подготовку (компиляцию) чего-то, что затем может быть скопировано любое количество раз для его использования (запуска).Также потребуется хорошая аналогия для объяснения того, как иногда «подготовка» должна происходить во время выполнения.
Дополнительные отметки, если аналогия имеет ту же странность, что используемый инструмент называется «нижний колонтитул», даже если он используетсяи "foo" ("compile") и "bar" ("run") вещь (программа).