От переводчика
От переводчика
Язык программирования Оберон создан автором Паскаля и Модулы-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 г.
Вологда