Стандартная библиотека: различия между версиями

[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
оформление
→‎История: стилевые правки, дополнение
Строка 5:
В ранних языках программирования (таких как Фортран, Алгол, Кобол, Бейсик) функциональность, не связанная непосредственно с языком, но необходимая для создания большинства реальных программ, включалась непосредственно в язык и нередко реализовывалась непосредственно на уровне транслятора или среды исполнения (для интерпретируемых языков). К числу таких функций относились прежде всего те, которые было невозможно, неудобно или неэффективно реализовывать средствами самого языка программирования: команды ввода-вывода, вычисление стандартных математических и логических функций, специфические операции с некоторыми типами данных, работа с внешними устройствами, с «сырой» памятью, взаимодействие с операционной системой и прочее. Такой подход был не лишён недостатков: компилятор оказывался привязан не только к архитектуре компьютера, которая статична и меняется не так часто, но и к его программной среде, в первую очередь — к операционной системе, которая может меняться гораздо чаще.
 
В 1970-х годах в процедурных языках широко распространилась концепция модульности. Появились синтаксические средства для описания программы как набора относительно независимых модулей. Естественным следствием стало то, что разработчики языков программирования стали выносить входившие ранее в состав языков универсальные функции во внешние библиотечные модули и подключать эти модули к программам при необходимости. Но исключение стандартных функций из языка могло привести к проблемам совместимости: каждый производитель компилятора мог предоставлять собственные библиотеки. Поэтому вместе со спецификацией языка программирования разработчики начали предлагать спецификацию на стандартную библиотеку — ту часть программного окружения, которая обязана присутствовать в любой реализации данного языка. С этого момента любая реализация того или иного языка программирования разделяется на три части: реализация собственно языка (компилятор), реализация стандартной библиотеки и дополнительные средства (среда разработки, редактор связей, средства документирования, дополнительные библиотеки), которые обычно не стандартизируются вместе с языком, хотя на них могут существовать отдельные стандарты. Теоретически, любой программист, использующий только стандартные языковые средства и стандартную библиотеку, может быть уверен, что его программа будет работать одинаково на любой платформе, где реализован язык и стандартная библиотека.
 
В некоторых случаях стандартная библиотека описывается непосредственно в стандарте языка ([[Python]], [[Perl]], [[Java]]), в некоторых — отдельными стандартами ([[Си (язык программирования)|Си]]), илииногда она определяется исходя из практического наличия функций в реализациях языка ([[Basic]], [[Pascal]]).
 
== Типовые подходы к проектированию ==