Время выполнения (фаза жизненного цикла программы)

Материал из Циклопедии
Перейти к навигации Перейти к поиску

В информатике время выполнения (англ. runtime, сл. «ранта́йм») — это время, в течение которого выполняется программа, в отличие от других этапов жизненного цикла (англ. program lifecycle phase) программы, таких как время компиляции (англ. compile time), время установления связей («линковки») (англ. link time) и время загрузки (англ. load time).

Ошибка выполнения обнаруживается во время выполнения или исполнения (состояния запуска) программы, тогда как ошибка компиляции обнаруживается компилятором до того, как программа будет выполняться. Проверка типов, распределение регистров, генерация кода и оптимизация кода обычно выполняются во время компиляции, но могут выполняться во время выполнения в зависимости от конкретного языка и компилятора.

Детали реализации[править]

Когда программа должна быть выполнена, загрузчик сначала выполняет необходимую настройку памяти и динамически связывает (англ. dynamic linking) программу с библиотеками, в которой она нуждается, а затем выполнение начинается с точки входа в программу. В некоторых случаях[нет источника] язык или реализация будут выполнять эти задачи за счет среды выполнения языка, но это нетипично для наиболее распространённых языков на основных пользовательских операционных системах.

Так отладка программы может выполняться только (или является более эффективной или точной при выполнении) во время выполнения. Логические ошибки и проверка границ массива являются примерами возможных ошибок. По этой причине некоторые ошибки не обнаружены до тех пор, пока программа не будет протестирована в производственной среде с реальными данными, несмотря на сложную проверку времени компиляции и предварительное тестирование. В этом случае конечный пользователь может столкнуться с сообщением об ошибке выполнения. Для выявление и устранения таких ошибок на раннем этапе разработки программы могут помочь модульные тесты.

Ошибки приложения (исключения)[править]

Обработка исключительных ситуаций (исключений) — это языковая функция, предназначенная для обработки ошибок времени выполнения, обеспечивающая структурированный способ обнаружения совершенно неожиданных ситуаций, а также предсказуемых ошибок или необычных результатов выполнения команд без необходимости их проверки в каждой строке или блоке операций. Более поздние улучшения в механизмах выполнения позволяют автоматическую обработку исключений[en], которая обеспечивает отладочную информацию «основной причины» для каждого исключения и реализуется независимо от исходного кода, путем присоединения к среде выполнения программного продукта специального программного обеспечения.

См. также[править]

Примечания[править]