Reobne писал(а):
1. Это означает, что любой правильный текст программы на одном из Оберонов, будет также правильным текстом на КПаскале, и результат работы программы будет тем-же?
Абсолютно да, за исключением косметики — некоторых отличий в синтаксисе. У этого есть свои причины. Например, в Обероне-2 нельзя запретить наследовать запись. В КП можно это сделать — появился атрибут записи
EXTENSIBLE. Поэтому, переписывая с Оберона-2 на КП мы можем его добавить если наследование предусматривается, и не добавлять если нет.
Ещё навскидку приходит на ум, что в Обероне и Обероне-2 есть встроенная процедура
COPY для копирования строк. А в КП уже нету:
Код: "OBERON"
(* Oberon, Oberon-2: *)
COPY("This is a string", str);
(* Component Pascal: *)
str := "This is a string";
Вариант Оберона явнее показывает, что осуществляется не просто присваивание, а копирование целого массива данных, а эта операция может быть ёмкой. Вариант КП более традиционный.
Может что-то ещё упустил, но Оберон-программы переписываются на КП легко.
Reobne писал(а):
2. Это означает, что любая правильная литература по Оберону, если в её тесте заменить слово "Оберон" на "КПаскаль", станет правильной литературой по КПаскалю?
Уверен, что да (за исключением сказанного выше).
Reobne писал(а):
Конечно! Если Уточнят неправильно, то всегда можно вернуться назад. Только один минус, к страшным словам (компонентный, активный, паскаль, оберон, модула) добавятся ещё более страшные слова.
Наверное диалекты это всё-таки чем-то лучше, чем совсем разные языки. И портировать легче — языковое ядро общее. Вспоминаются Visual C++ и Borland C++ Builder. И язык вроде один, а попробуй-ка перенеси, особенно что-то связанное с GUI.
Reobne писал(а):
Само понимание что диалектов много - пугает. В первую очередь хочется разобраться насколько они отличаются.
Можно провести 3 линии диалектов.
- Oberon => Oberon-2 => Component Pascal: наращивающаяся линия по превращению языка из академической игрушки или, если угодно, эксперимента в язык, подходящий для решения различных практических задач, притом с выводом его из экзотических Оберон-систем в те, которыми мы пользуемся.
- Oberon => Active Oberon => Zonnon: AO: эксперименты с какой-то хитрой очень эффективной многозадачностью. Zonnon — даже уже не совсем диалект Оберона — развитие идей, воплощённых в .NET. Мне эта ветвь как-то не пригодилась. В AO уже отошли от принципа "запись как объект", к тому же он работает только внутри ОС A2. Впрочем, есть версии этой ОС, работающие поверх Windows и Linux.
- Oberon => Oberon-07 (Revised Oberon): некоторые господа считают его наиправильнейшим и наикошернейшим Обероном. Ввиду простоты это самый лёгкий в реализации диалект. Последняя работа Н.Вирта в области языкостроения. До сих пор уточняется — выходят новые поправки к репортам. Можно сказать, ультрарадикальный диалект. Очень маленький, урезано такое, от чего даже я могу смело назвать его маргинальным. Но кое-что и добавилось, например, цикл Дейкстры:
Код: "OBERON"
WHILE a < b DO
...
ELSIF a = b DO
...
END;
Всё перечисленное пусть будет моё "имхо", кто-то, быть может, и не согласится. Но для меня вывод очевиден: для целей традиционной разработки под традиционные ОС больше всего подходят Оберон-2 и КП. Они могут составить в этом смысле конкуренцию и Си, и Паскалю, и Модуле-2, и Java/C#.
На мой взгляд, Оберону-2 присущи недостатки, некоторые из них исправлены в КП, а некоторые остались, ожидая исправления. В XDev поддержаны Оберон/Оберон-2, добавлены некоторые фишки из КП, но я отнюдь не погнушаюсь "разбить совместимость" если увижу необходимость добавить туда что-то ещё.
Reobne писал(а):
Несмотря на то что КПаскаль ближе всего к Оберону2, в интернете ищутся статьи сравнивающие КПаскаль с простым Паскалем.(Похоже на попытку переманить паскалистов на Оберон)
Да, наверное OMinc хотели сыграть на популярности имени Паскаля. Кому-то это не нравится. Но имидж Паскаля всё ещё котируется.
Reobne писал(а):
Короче говоря, мне кажется, что не хватает вводной статьи для новичков, где бы рассказывалось что язык КПаскаль простой. Что он имеет большое общее ядро с языками Модула и Оберон, и это только на пользу, потому что можно смело читать литературу по этим языкам и относить её к КПаскалю. Что на КПаскале вырабатывается хороший стиль сразу писать программы с минимумом ошибок.
А не пугать новичков "промышленностью", знаменитыми предками, знаменитым создателем. Может даже такая статья где-то есть, но она затерялась среди тех, которые мне не понравились. Те которые мне попадались, ориентированы на то чтобы создать впечатление среди начальничьих мозгов, которые не собираются сами программировать, а только руками махать - дирижировать.
Вот
Илья Евгеньевич недавно новой статьёй порадовал. И вроде совсем неплохо. И
ваш покорный слуга как-то пытался что-то такое на Хабре писать, только ниасилил.
Вернее, сумел получить самую большую посещаемость форума за всё время его существования.
Такие статьи должны быть.
Алекс Черемхин неплохо обосновал достоинства Оберона. Ещё можно посмотреть
у И.Ермакова на сайте. В связи с этим вспоминаются и
статьи Р.Богатырёва. Что-то такое есть в
торрент-раздаче литературы по Оберон-технологиям, это вообще бомба нашего местного разлива.
Не, популяризация Оберона — больная тема, лучше будем элитарными товарищами.
А если серьёзно, то нужен повод заняться Обероном. Кто его находит — тот к нам и приходит. И обычно остаётся.
А господа менеджеры и дирижёры обычно больше тяготеют к тому, что у всех на ушах. Их убедить в пользе Оберона — это как объяснить юзеру с пылающими глазами, что Windows 8.1 примерно ничем не лучше Windows XP, т.е. она где-то рядом, а очи-то горят недоверием. Ведь юзер искренне считает, что ему принесли на блюдечке за его деньги чудо технического прогресса.
P.S. Под "адаптацией к промышленности" я имел ввиду: бери, изучи и решай задачи. А не принимайся сразу допиливать юникод, стыковку с популярными ОС и т.п.