Вы почти справились с упражнением о воздержании от перехода на личности, молодец. Можно обсуждать суть дела, правда, мне не совсем это интересно. Таблица приоритетов "чего-то" есть в Си, там 19 строчек. Таблица приоритетов "чего-то" есть в Обероне и там 9 строчек. Если посмотреть на содержимое этих таблиц, то они про одно и то же, в них одинаковые по смыслу элементы, я не буду давать им определение, т.к. мне лень над этим думать, но это скорее "элементы выражения", а не "операции". Отдельной таблицы приоритета операций, хоть осмысленного, хоть нет, в определении языка Оберон нет. Поэтому сравнение 9 и 19 - правомерное, а сравнение 19 и 4 - надуманное. Соответственно, и понятие "приоритета операций" отношения к делу не имеет. Имеет понятие "приоритет элементов выражения". Да, семантика накладывает доп ограничения, но на то и существует декомпозиция описания языка на лексическую, синтаксическую и семантическую структуру, чтобы можно было их рассматривать отдельно. Мы говорили про синтаксис, а не про язык в
целом. То, что семантика делает невозможным в Обероне (но не в активном Обероне) осмыслить выражение a+b(с) как (a+b)(с) - это другой вопрос, который не позволяет выкинуть числа при сравнении таблиц. И кстати, если c - имя типа - синонима INTEGER, то в АО такое осмысление возможно:
Код:
тип Р = цел64;
проц Йу(а,б:цел32): цел64;
нач
возврат (а + б)(Р);
кон Йу;
Это компилируется, и невозможно понять, что такое Р, до этапа семантического анализа. Т.е. вполне возможно, если мы не знаем соотношения приоритетов операции "Унарные постфиксные скобки" и "+", прочитать это выражение неправильно. Не знаю, может быть в других вариантах Оберона такой код не скомпилируется. Если преимущество в однозначности у Оберона за счёт семантики и возникает, то за счёт другого, и его нельзя формулировать как "в Обероне меньше операций". Как я уже сказал, с точки зрения синтаксиса точка, а также унарная операция скобки (вызов, преобразование типа и охрана типа) являются операциями в Обероне. И естественно, любой критик это тоже отметит и этим отчасти объясняются неудачи в попытках обосновать, что Оберон - лучше. Тем, что аргументы при этом неточны и, иногда, строго говоря, не соответствуют действительности. У лиспа действительно простой синтаксис (если не начинать его расширять, конечно), у Оберона он, конечно, проще, чем у Си, но не надо преувеличивать отличие.