КП позиционируется как диалект (фактически надмножество) Оберона-2 для промышленного применения. Прикладному программисту КП покажется более удобным и фичастым. Некоторые приятные мелочи, как: IN/OUT параметры процедур, расширенная работа с битами. Главная фича КП, отсутствующая в О2, - реализация абстрактных интерфейсов.



Цитата Сообщение от wikipedia
Основные уточнения Компонентного Паскаля по сравнению с Обероном-2 касаются следующего:

  1. Главная идея уточнений по сравнению с Обероном-2 была в том, чтобы дать проектировщику компонентного каркаса (т.е. интерфейсов модулей, определяющих абстрактные классы для конкретной проблемной области) более полный контроль над её проектируемыми свойствами в плане безопасности. Введены специальные атрибуты для типов (ABSTRACT, EXTENSIBLE, LIMITED) и методов (ABSTRACT, EMPTY, EXTENSIBLE), позволяя автору программной компоненты (группы модулей) осуществлять контроль в плане того, разрешать или нет модулям-клиентам расширять предлагаемые им типы.
  2. Модернизирована несколько устаревшая система основных типов Оберона: теперь набор основных типов Компонентного Паскаля является надмножеством для основных типов языка Java. Основные «рабочие» типы INTEGER, REAL и CHAR соответствуют 32-, 64- (т. н. двойная точность) и 16-(Unicode)-битовым переменным, что позволяет уменьшить разнообразие основных типов, реально используемых в большинстве случаев; использование других типов (LONGINT, SHORTREAL, SHORTCHAR и т. д.) ограничивается специальными приложениями.
  3. Добавлены базовые средства для работы с цепочками литер (неявный тип String), что вместе со стандартным модулем Strings в системе программирования BlackBox делает Компонентный Паскаль более удобным, чем Паскаль или Оберон, для работы со строками. Цепочки литер представляются массивами литер (ARRAY OF CHAR или ARRAY OF SHORTCHAR), причем значением считается последовательность литер до первого вхождения специальной литеры-ограничителя 0X. Цепочки литер можно сравнивать (подразумевается лексикографическое сравнение) и складывать (конкатенация). Конструкция a := b$ позволяет скопировать в массив литер a цепочку, хранящуюся в массиве литер b (включая литеру-ограничитель 0X), даже если присваивание a := b запрещено (например, из-за разной длины массивов a и b).

Полное описание синтаксиса языка в расширенной форме Бэкуса-Наура приведено на страницах Сообщения о языке Компонентный Паскаль. Оно содержит 34 грамматических выражения, что лишь на одно больше чем для Oberon-2.
Имеется 2 реализации КП: BlackBox Component Builder (Windows/Linux) и GPCP (.NET/JVM). Последний ещё более расширен: добавлена обработка исключений, новые типы и т.д. Также в XDev реализованы некоторые возможности языка КП.

Рекомендую относиться к О2/КП как к "ассемблеру ООП", т.е. с точки зрения фичь они проигрывают C#/Java. Среды разработки на О, О2, AO, КП - чаще всего не классические IDE + отладчик (хотя встречаются и такие), и с этой точки зрения тоже проигрывают.

А ещё есть Модула-2 и Модула-3. Тоже хорошие языки. Даже несколько больше и фичастее Оберона, но намного меньше Ada/C++.

Цитата Сообщение от Andrew771 Посмотреть сообщение
Исходник ZX Like Pascal положил тут
Андрей, благодарю, что ты решился.

Практика показывает, что страх потерять контроль над разработкой, открыв исходники, - неоправдан. Честно. Взамест проект может приобрести более конструктивную и качественную критику (уже на основе взгляда на код), новых участников и новую жизнь. А может и не приобрести. Как повезёт. У наший с тобой проектов потенциальная аудитория маловата, увы. Мои самые лучшие юзеры, как правило, уходили непонятно куда. Вот и Руслан в теме испрашивал что-то вроде лазер бейсик, а что может быть ближе к Laser Basic, чем ZXDev + библиотека Laser? Я ему даже засмартлинковал (порезал на части) библиотеку Laser, потратил на это несколько дней. Очень кропотливая работа. Хотя по-честному его целиком переписывать надо. С учётом новых достижений кодерской мысли. Но то мечты, а это уже реальная отлаженная библиотека. Но, упс, получается, зря делал.