Comdiv писал(а):
Насколько можно судить по постоянно возникающим обсуждениям то тут, то там, то это вопрос дискусионный. Связанных методов как понятия языка в Обероне-07 действительно нет, тем не менее, я считаю, что ООП в нём есть из-за широты этого понятия. Если быть точным - Oberon-07 поддерживает ООП, но не является ориентированным на ООП.
Также, в Oberon-07 нет указателей на массивы и соответственно массивов с динамически задаваемыми размерами. Меньшее количество числовых типов: из целочисленных есть только 32-битный INTEGER и беззнаковый BYTE, из двоичных дробей - только REAL. Ещё много чего по мелочи.
Oberon-07 ООП поддерживает. Там только нет синтаксического сахара, которое скрывает то, как реализованы некоторые вещи в ООП. И можно применять различные подходы, кто-то может в записи добавлять поля, которые являются указателями на функции, но при этом, если есть несколько функций, то каждая запись будет нести накладные расходы на указатели в каждой записи. Те, кто знают, внутренности ООП в C++ могут также реализовать подобное и на Оберон-07 (если интересно могу рассказать, как я себе это представляю, но это уже другой вопрос).
По поводу указателей на массивы, да, в языке Oberon-07 их нет, но компилятор Oberon-07М дополняет язык этой возможностью. Я считаю, что если есть открытые массивы, как параметры процедур, то должны быть и указатели на массивы, ради симметрии. Какой-то существенной критики в отношении указателей на массивы кроме того, что это немного усложняет компилятор, я не знаю. Если кто-то знает причину, почему (*эти молодые люди не могут соединить сердца*)указатели на массивы должны быть запрещены – скажите сейчас или вечно храните молчание.