Библиотека времени выполнения
Эта статья нуждается в дополнительных цитатах для проверки . ( декабрь 2013 г. ) |
Выполнение программы |
---|
Общие понятия |
Типы кода |
Стратегии составления |
Известное время выполнения |
|
Известные компиляторы и наборы инструментов |
|
В компьютерном программировании библиотека времени выполнения — это набор подпрограмм низкого уровня, используемых компилятором для вызова некоторых функций среды выполнения путем вставки вызовов библиотеки времени выполнения в скомпилированный исполняемый двоичный файл. Среда выполнения реализует модель выполнения , встроенные функции и другие фундаментальные особенности языка программирования . [ 1 ] Во время выполнения ( время выполнения ) этой компьютерной программы выполнение этих вызовов библиотеки времени выполнения вызывает связь между исполняемым двоичным файлом и средой выполнения. Библиотека времени выполнения часто включает в себя встроенные функции для управления памятью или обработки исключений . [ 2 ] Таким образом, библиотека времени выполнения всегда зависит от платформы и компилятора.
Библиотека времени выполнения может реализовывать часть поведения среды выполнения, но если прочитать код доступных вызовов, то они обычно представляют собой лишь тонкие оболочки, которые просто упаковывают информацию и отправляют ее в среду выполнения или операционную систему. Однако иногда термин « библиотека времени выполнения» включает в себя код самой среды выполнения, даже если большая часть этого кода не может быть доступна напрямую через вызов библиотеки.
Например, некоторые функции языка, которые могут выполняться (или являются более эффективными или точными) только во время выполнения, реализованы в среде выполнения и могут быть вызваны через API библиотеки времени выполнения, например, некоторые логические ошибки, проверка границ массива , проверка динамического типа, обработка исключений и, возможно, функции отладки. По этой причине некоторые программные ошибки не обнаруживаются до тех пор, пока программа не будет протестирована в «живой» среде с реальными данными, несмотря на сложную проверку и тестирование во время компиляции, выполняемые во время разработки.
Другой пример: библиотека времени выполнения может содержать код встроенных низкоуровневых операций, слишком сложный для их встраивания во время компиляции, например реализации арифметических операций, не поддерживаемых напрямую целевым процессором, или различные различные операции и директивы, специфичные для компилятора. [ 2 ] [ 3 ]
Понятие библиотеки времени выполнения не следует путать ни с обычной библиотекой программы , созданной программистом приложения или доставленной третьей стороной, ни с динамической библиотекой , то есть с библиотекой программы, подключаемой во время выполнения. Например, для языка программирования C требуется только минимальная библиотека времени выполнения (обычно называемая crt0
), но определяет большую стандартную библиотеку (называемую стандартной библиотекой C ), которая должна предоставляться каждой реализацией. [ 1 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б Беннетт, Джереми (июль 2010 г.). «Инициализация среды выполнения C, crt0.o» . Howto: Портирование newlib . Эмбекосм . Проверено 30 декабря 2013 г.
- ^ Jump up to: а б «4. Библиотека времени выполнения низкого уровня GCC» . Внутреннее устройство компиляторов GNU . ГНУ . Проверено 30 декабря 2013 г.
- ^ «Другие встроенные функции, предоставляемые GCC» . Введение GCC . ГНУ . Проверено 30 декабря 2013 г.