От переводчика
От переводчика
Язык программирования Оберон создан автором Паскаля и Модулы-2 Никлаусом Виртом в 1987 году в ходе разработки одноименной операционной системы для однопользовательской рабочей станции Ceres. Язык и операционная система названы именем одного из спутников планеты Уран - Оберона, открытого английским астрономом Уильямом Гершелем ровно за двести лет до описываемых событий.
"Сделай так просто, как возможно, но не проще того" - это высказывание А.Эйнштейна Вирт выбрал эпиграфом к описанию языка. Удивительно простой и даже аскетичный Оберон является, вероятно, минимальным универсальным языком высокого уровня. Он проще Паскаля и Модулы-2 и в то же время обогащает их рядом новых возможностей. Важно то, что автором языка руководили не сиюминутные коммерческие и конъюнктурные соображения, а глубокий анализ реальных программистских потребностей и стремление удовлетворить их простым, понятным, эффективным и безопасным образом, не вводя по возможности новых понятий.
Являясь объектно-ориентированным языком, Оберон даже не содержит слова object. Оберон представляется идеальным языком для изучения программирования. Сочетание простоты, строгости и неизбыточности предоставляет начинающему программисту великолепную возможность, не заблудившись в дебрях, выработать хороший стиль, освоив при этом и структурное и объектно-ориентированное и модульно-компонентное программирование.
В 1992 году сотрудничество Н.Вирта с привело к добавлению в язык ряда новых средств. Новая версия получила название Оберон-2. Описание именно этого языка по состоянию на 1 октября 1996 года (последние изменения внесены авторами в июле 1996 года) и дается в настоящем переводе. Оберон-2 представляет собой почти правильное расширение Оберона и является фактическим стандартом языка, который поддерживается большинством современных Оберон-систем. В Оберон-2 добавлены:
Отдельного внимания заслуживает само описание, с которым вам предстоит познакомиться. Вирт и его соавтор достигли совершенства не только в искусстве разработки, но, несомненно, и в деле описания языков программирования. Поражают изумительная точность и краткость этого документа. Почти каждая его фраза превращается при написании компилятора в конкретные строки программного кода.
Возникшие при переводе описания Оберона-2 на русский язык терминологические вопросы решались исходя из следующих соображений: предпочтительным является буквальный перевод; недопустимо добавление терминов, отсутствующих в оригинале; должны быть учтены отечественные традиции в терминологии алголоподобных языков; предпочтительно использование терминов, привычных широкому кругу программистов, вместо узкоспециальных. Ниже приведен список терминов, перевод которых не представляется очевидным.
| (direct) base type | (непосредственный) базовый тип |
| array compatible | совместимый массив |
| array type | тип массив |
| assignment compatible | совместимый по присваиванию |
| basic type | основной тип |
| browser | смотритель |
| case statement | оператор case |
| character | символ, знак |
| declaration | объявление |
| designator | обозначение |
| direct extension | непосредственное расширение |
| equal types | равные типы |
| exit statement | оператор выхода |
| expression compatible | совместимое выражение |
| for statement | оператор for |
| function procedure | процедура-функция |
| if statement | оператор if |
| loop statement | оператор loop |
| matching | совпадение |
| operator | операция |
| pointer type | тип указатель |
| predeclared | стандартный |
| private field | скрытое поле |
| proper procedure | собственно процедура |
| public field | доступное поле |
| qualified | уточненный |
| real | вещественный |
| record type | тип запись |
| repeat statement | оператор repeat |
| return statement | оператор возврата |
| same type | одинаковый тип |
| scale factor | порядок |
| scope | область действия |
| statement | оператор |
| string | строка |
| symbol | слово |
| type extension | расширение типа |
| type guard | охрана типа |
| type inclusion | поглощение типа |
| type tag | тег |
| type test | проверка типа |
| type-bound procedures | связанные с типом процедуры |
| while statement | оператор while |
| with statement | оператор with |
с3с@uni-vologda.ac.ru
2 октября 1996 г. - 12 июня 1998 г.
Вологда