Interested Article - Компонентный Паскаль

Компонентный Паскаль ( англ. Component Pascal ) — язык программирования c парадигмой компонентно-ориентированного программирования . Входит в семейство языков Оберон и создан на основе языка Оберон-2 компанией и, соответственно, является наследником языка Паскаль .

Синтаксис языка

Основные уточнения Компонентного Паскаля по сравнению с Обероном-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 .

Реализации компиляторов для Компонентного Паскаля

BlackBox Component Builder

Среда разработки BlackBox Component Builder (Блэкбокс) разработана в компании Oberon microsystems Inc. (Швейцария) и в стабильной версии доступна для ОС Microsoft Windows , в альфа-версии — для ОС на основе GNU/Linux ( Debian , Ubuntu ), а также FreeBSD и OpenBSD . Блэкбокс выпускается под лицензией . Среда разработки включает в себя: текстовый редактор исходного кода, компилятор, среду поддержки выполнения (загрузчик модулей, сборщик мусора), профилировщик, сборщик exe , dll , elf и so, а также набор готовых компонентов для быстрой разработки приложений (создания диалоговых окон, интерактивной графики, составных документов, а также интерфейс для обращения к WinApi, WinOle, COM; подсистему для работы с базами данных, протоколами передачи данных TCP / IP , V24 ). Версия для Microsoft Windows хорошо подходит для разработки в рамках технологии OLE . Компилятор и каркас «шлифуются» с 1993 года, и в настоящий момент [ когда? ] поддерживается и развивается сообществом пользователей ( , , ). В дистрибутив встроена документация и набор примеров. Выпущено несколько учебников, посвященных работе с Блэкбоксом. Блэкбокс полностью поддерживает юникод , в том числе (в последних версиях) юникодные идентификаторы для модулей, процедур, констант, типов и переменных.

Gardens Point Component Pascal

Gardens Point Component Pascal — ещё один компилятор для языка Компонентный Паскаль, выполненный в австралийском Квинслендском Технологическом Университете (место работы сооснователя Oberon microsystems Клеменса Шиперского до его перехода в Microsoft Research). Имеющиеся ограничения: нет указателей на функции и нет доступа к не-локальным переменным во вложенных процедурах . Компилятор gpcp Квинслендского Технологического Университета имеет версию как для среды .NET , так и для виртуальной Java -машины ( JVM ) . Компилятор написан на Компонентном Паскале . Здесь же, Компонентный Паскаль был интегрирован в Visual Studio и в межплатформенную среду разработки Eclipse .

Примечания

  1. . Дата обращения: 21 августа 2012. Архивировано из 16 августа 2012 года.
  2. Цепочка наследования: Паскаль Модула Модула-2 Оберон Оберон-2 → Компонентный Паскаль
  3. Ткачёв Ф.В. от 12 марта 2013 на Wayback Machine // МИР ПК. Диск. 2005. С. 2–5.
  4. . Дата обращения: 25 августа 2012. 12 марта 2013 года.
  5. Gough K.J. Stacking them up: a comparison of virtual machines // Proceedings 6th Australasian Computer Systems Architecture Conference. ACSAC 2001. IEEE Comput. Soc. P. 55-61.
  6. Gough K.J. Parameter passing for the Java virtual machine // Proceedings 23rd Australasian Computer Science Conference. ACSC 2000 (Cat. No.PR00518). IEEE Comput. Soc. P. 81-87.
  7. Gough J. Virtual Machines, Managed Code and Component Technology // 2005 Australian Software Engineering Conference. Ieee. P. 5-12.
  8. . Дата обращения: 1 февраля 2011. Архивировано из 18 февраля 2011 года.
  9. . Дата обращения: 2 февраля 2011. Архивировано из 16 февраля 2011 года.
  10. . Дата обращения: 2 февраля 2011. Архивировано из 20 августа 2006 года.
  11. . Дата обращения: 1 февраля 2011. Архивировано из 18 февраля 2011 года.

Литература

  • , перевод Ф. В. Ткачева
  • Никлаус Вирт . Алгоритмы и структуры данных. Новая версия для Оберона. — ДМК Пресс, 2010. — 272 с. — 1000 экз. , (для BlackBox Component Builder ),
  • Никлаус Вирт . Построение компиляторов. — ДМК Пресс, 2010. — 192 с. — 1000 экз. ,
  • Виталий Потопахин. Современное программирование с нуля!. — ДМК Пресс, 2011. — 240 с. — 1000 экз. ISBN 978-5-94074-665-2 .
  • Виталий Потопахин. . — ДМК Пресс, 2012. — 320 с. — 500 экз. ISBN 978-5-94074-804-5 . (старое издание Виталий Потопахин. Искусство алгоритмизации. — ДМК Пресс, 2011. — 320 с. — 1000 экз. ISBN 978-5-94074-621-8 . )

Ссылки

  • в каталоге ссылок Curlie (dmoz) (англ.)
Источник —

Same as Компонентный Паскаль