Чем объясняется
Цитата:
Обязательное использование ^ при обращении к указателям
В КП при обращении к указателям "^" можно опускать, в Обероне-3 нельзя.
? Только ли желанием подчеркнуть наличие указателя?
Опускать ^ в КП можно только при обращении к элементу массиву, полю записи или содержимому строки (селектор $).
Это, конечно, синтаксический сахар, но мне он кажется полезным. Он полезен тем, что сглаживает разницу между переменными в куче и в основной памяти. В большинстве случаев (если нам важно работа именно с элементами массива или записи, а не с механизмом их размещения), лишние ^ только "замусоривают" код.
Это можно сравнить с передачей параметров-переменных в языке С. Там приходится явно передавать ссылку при помощи & в параметры-указатели со значком *, а затем повсюду таскать эту звездочку (сишный аналог ^) внутри функции (и горе тому, кто забудет ее поставить). В С++ можно указать & для формальных параметров-ссылок, что дает эффект, сравнимый с пометкой VAR в Паскале. При этом, синтаксис С со & и * ближе всего к машинному коду - там явно продемонстрирован механизм. В С++ со & (и в Паскале/Модуле/Обероне с VAR) механизм передачи параметров замаскирован (можно сказать, что звездочки или ^ при параметрах-переменных невидимы), но это и хорошо.
Поэтому, думаю, лучше в О3 сделать как в КП - возможность опускать ^ при обращении к элементу массиву, полю записи или содержимому строки (селектор $).