Бібліотека виконання () — це бібліотека підпрограм, яка надає доступ до середовища виконання, доступного комп'ютерній програмі, — адаптованого до платформи хоста. Середовище виконання реалізує модель виконання, необхідну для середовища розробки, такого як певна мова програмування. Бібліотека виконання може надавати базові засоби програми, такі як керування пам'яттю та обробка винятків.
Бібліотека виконання є результатом проєктування ланцюжка інструментів, що використовується для побудови програми, — вона не є невід'ємно необхідною для хостової операційної системи або мови програмування, якою написано програму. Набір інструментів розроблений для абстрагування аспектів платформи хоста — часто для спрощення розробки інструментів. Ланцюжок інструментів створює програму так, щоб вона залежала від бібліотеки виконання та використовувала її під час роботи програми — під час виконання програми.
Бібліотека виконання може безпосередньо реалізовувати поведінку під час виконання, але часто є тонкою оболонкою над засобами операційної системи. Наприклад, деякі можливості мови, які можуть виконуватися лише під час виконання (або є ефективнішими чи точнішими під час виконання), реалізуються в середовищі виконання та можуть викликатися через API бібліотеки виконання, наприклад деякі логічні помилки, перевірка меж масивів, динамічна перевірка типів, обробка винятків і, можливо, функціональність налагодження. З цієї причини деякі програмні помилки не виявляються доти, доки програму не буде протестовано в «живому» середовищі з реальними даними, незважаючи на складні перевірки під час компіляції та тестування, проведені під час розробки.
Як інший приклад, бібліотека виконання може містити код вбудованих низькорівневих операцій, надто складних для їх вбудовування під час компіляції, таких як реалізації арифметичних операцій, які безпосередньо не підтримуються цільовим CPU, або різноманітних інших операцій і директив, специфічних для компілятора.
Бібліотеку виконання часто плутають зі стандартною бібліотекою мови, яка реалізує функціональність, визначену мовою. Стандартна бібліотека може бути реалізована платформозалежним способом або може використовувати бібліотеку виконання, щоб бути платформонезалежною. Наприклад, стандартна бібліотека C є відносно великою, тоді як платформозалежна бібліотека виконання (яку зазвичай називають crt0) є відносно малою, що полегшує підтримку кількох платформ.
Приклади glibc msvcrt
Примітки