Компонентный Паскаль/История: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 60:
 
===Oberon===
В ходе создания этого языка Никлаус Вирт пришёл к мысли о том, что поддержка языка при модульной структуре требует соответствующей операционной системы. Такая поддержка нужна на этапе динамической загрузки модулей в память ЭВМ по требованию уже работающих модулей. Кроме того, нужно как-то освобождать память. Для этого нужен [[{{w|сборщик мусора]]}}. А как быть с уже существующими операционными системами? Подходящим решением тут стали промежуточные операционные системы, такие как [[{{w|BlackBox Component Builder]]}}, [[ETH Oberon]], [[{{w|WinOberon]]}}, [[{{w|A2]]}}. По-сути, это маленькие операционные системы над реальными операционными системами. Такими же операционными системами следует признать появившиеся много позже [[Java]] и [[.Net]].
Так появился Oberon в 1989 г. за авторством Никлауса Вирта и Юрга Гуткнехта. Это была сразу и операционная система Oberon, и компилятор языка Oberon. Компилятор занимал 50 кБ и компилировал сам себя за 15 сек при тактовой частоте ЦП 25 МГц. По сути, Oberon впитал объектные расширения, при этом отказался от динамической типизации, которая, по сути, -- снижала надёжность программ. Отказ от динамической типизации позволил применить тот самый сборщик мусора. Оказалось, что кроме этого, количество исключительных ситуаций уменьшилось на порядок. При дальнейшей оптимизации языка, оказалось, что если и происходили ошибки, то происходили они исключительно со стороны аппаратуры. В конечном итоге, от исключительных ситуаций также удалось отказаться. Отказ от средств параллельного программирования был в какой-то мере вынужденной мерой. В Modula-2 параллельность была также обеспечена на 75% сторонними библиотеками, а не встроенными средствами. Они себя почти не оправдали. Также были существенные сокращения по работе с указателями. Как оказалось, в многих случаях можно обойтись без них, а контролировать типы данных стало заметно проще. Были добавлены средства для контроля модулей ,ведь теперь основной единицей становился сам модуль.
Язык получился компактным и эффективным. Вирт однажды заявил, что разработчики [[Java]] хорошо изучили подход Oberon, и многие идеи заимствовали из него. Хронологически это было вполне возможно, да и многие решения в Java весьма похожи на те, что были применены в Oberon.