WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте
Component Pascal
Класс языка императивный, структурный, модульный,компонентный, объектный
Появился в 2001[1]
Автор Oberon Microsystems
Система типов сильная, статическая
Испытал влияние Цепочка наследования: ПаскальМодулаМодула-2ОберонОберон-2
Сайт oberon.ch

Компонентный паскаль (англ. Component Pascal) — язык программирования c парадигмой компонентно-ориентированного программирования. Создан на основе языка Оберон-2 компанией Oberon microsystems, Inc. Является прямым наследником языка Паскаль[2].

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

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

  1. Главная идея уточнений по сравнению с Обероном-2 была в том, чтобы дать проектировщику компонентного каркаса (т.е. интерфейсов модулей, определяющих абстрактные классы для конкретной проблемной области) более полный контроль над её проектируемыми свойствами в плане безопасности[3]. Введены специальные атрибуты для типов (ABSTRACT, EXTENSIBLE, LIMITED)[1] и методов (ABSTRACT, EMPTY, EXTENSIBLE)[1], что позволяет, во-первых, статически контролировать согласованность иерархий наследования и тем самым по сути восстановить принцип тотальной статической типизации. Во-вторых, автор программной компоненты (группы модулей) теперь может разрешать или запрещать модулям-клиентам расширять предлагаемые им типы.
  2. Модернизирована несколько устаревшая система основных типов Оберона: теперь набор основных типов Компонентного Паскаля является надмножеством[4] для основных типов языка 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).

Полное описание синтаксиса языка в расширенной форме Бэкуса-Наура приведено на страницах Сообщения о языке Компонентный Паскаль[1]. Оно содержит 34 грамматических выражения, что лишь на одно больше чем для Oberon-2.

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

BlackBox Component Builder

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

Gardens Point Component Pascal

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

Примечания

  1. 1 2 3 4 Сообщение о языке Компонентный Паскаль
  2. Цепочка наследования: ПаскальМодулаМодула-2ОберонОберон-2 → Компонентный Паскаль
  3. Ткачёв Ф.В. Краткая история Паскаля // МИР ПК. Диск. 2005. С. 2–5.
  4. The Evolution of Oberon-2 to Component Pascal (Технический отчет Oberon Microsystems) (2001), раздел "Specified Domains of Types"
  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. Component Pascal on .NET (недоступная ссылка). Проверено 1 февраля 2011. Архивировано 18 февраля 2011 года.
  9. 1 2 John Gough, Queensland University of Technology.The .NET Runtime as a Compiler Target (недоступная ссылка). Проверено 2 февраля 2011. Архивировано 16 февраля 2011 года.
  10. Download Gardens Point Component Pascal (недоступная ссылка). Проверено 2 февраля 2011. Архивировано 20 августа 2006 года.
  11. 1 2 Component Pascal for IDEs (недоступная ссылка). Проверено 1 февраля 2011. Архивировано 18 февраля 2011 года.

Литература

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии