Библиотека среды выполнения
Библиотека среды выполнения (также библиотека времени исполнения; англ. runtime library, RTL) — набор библиотек (модулей) той или иной системы программирования, поставляемых вместе с компилятором, операционной системой или средой разработки программ. Как следует из названия, RTL обеспечивает поддержку функций, предоставляемых системой программирования, во время выполнения программы от начала до её завершения.
Современные RTL включают также и свою среду выполнения, где программы выполняются, своеобразную «виртуальную машину», в рамках которой и выполняется программа. Такая система обеспечивает безопасность — всё, к чему программа имеет доступ, настраивается политиками безопасности RTL и переносимость — программы пишутся под RTL, а не операционную систему и тем более не под определённый процессор, а перенос RTL на разные платформы — забота разработчиков. Однако, программы при выполнении под RTL часто показывают отнюдь не высокие показатели быстродействия.
Принцип работы
Когда исходный код программы компилируется на соответствующий язык нужного компилятора, это приводит к крайнему увеличению размера программного кода, если каждая команда в программе и каждый вызов встроенной функции приведет к полному перекомпилированию всей программы. Вместо этого компилятор использует конкретные для данного языка программирования вспомогательные функции, которые в основном не доступны для программистов и которые работают в библиотеках времени исполнения. В зависимости от производителя компилятора, библиотека времени исполнения иногда также содержит стандартные библиотеки соответствующего компилятора.
Программа, написанная на управляемом языке программирования, сначала транслируется в специальный байт-код, а потом выполняется в RTL.
Многие операционные системы имеют свои RTL.
Некоторые функциональные виды библиотек времени исполнения:
- библиотеки (как правило, встроенные) сборки мусора;
- библиотеки обработки исключений;
- библиотеки динамического определения типа и др.[уточнить]
Современные RTL могут комбинировать эти виды, например, JRE и Apache Harmony — RTL для выполнения программ, написанных на языке Java, — обладают всеми вышеперечисленными функциями.