Русская Википедия:Компонентный Паскаль
Шаблон:Карточка языка программирования Компонентный Паскаль (Шаблон:Lang-en) — язык программирования c парадигмой компонентно-ориентированного программирования. Входит в семейство языков Оберон и создан на основе языка Оберон-2 компанией Oberon microsystems, Inc и, соответственно, является наследником языка Паскаль[1].
Синтаксис языка
Основные уточнения Компонентного Паскаля по сравнению с Обероном-2:
- Главная особенность по сравнению с Обероном-2 – дать проектировщику интерфейсов модулей, определяющих абстрактные типы проблемной области, расширенный контроль в плане безопасности[2]. В синтаксис языка добавлены атрибуты для типов (ABSTRACT, EXTENSIBLE, LIMITED)[3] и методов (ABSTRACT, EMPTY, EXTENSIBLE)[3]. Это позволяет статически контролировать согласованность иерархий наследования и восстановить принцип тотальной статической типизации, а так же разрешать или запрещать модулям-клиентам расширять предлагаемые им типы.
- Изменена система встроенных типов Оберона: набор основных типов Компонентного Паскаля является надмножеством[4] для основных типов языка Java. Основные «рабочие» типы INTEGER, REAL и CHAR соответствуют 32-, 64- и 16-(Unicode)-битовым переменным, что позволяет уменьшить разнообразие основных типов; использование других типов (LONGINT, SHORTREAL, SHORTCHAR и т. д.) ограничивается специальными приложениями.
- Встроены средства для работы с цепочками литер (неявный тип String) и добавлен стандартный модуль Strings в системе программирования BlackBox для работы со строками. Цепочки литер представляются массивами литер (ARRAY OF CHAR или ARRAY OF SHORTCHAR), причем значением считается последовательность литер до первого вхождения специальной литеры-ограничителя 0X. Цепочки литер можно сравнивать (подразумевается лексикографическое сравнение) и складывать (конкатенация). Конструкция a := b$ позволяет скопировать в массив литер a цепочку, хранящуюся в массиве литер b (включая литеру-ограничитель 0X), даже если присваивание a := b запрещено (например, из-за разной длины массивов a и b).
Полное описание синтаксиса языка в расширенной форме Бэкуса-Наура приведено на страницах Сообщения о языке Компонентный Паскаль[3]. Оно содержит 34 грамматических выражения, что лишь на одно больше чем для Oberon-2.
Реализации компиляторов для Компонентного Паскаля
BlackBox Component Builder
Среда разработки BlackBox Component Builder (Блэкбокс) разработана в компании Oberon microsystems Inc. (Швейцария) и в стабильной версии доступна для ОС Microsoft Windows, в альфа-версии — для ОС на основе GNU/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, командой кросс-платформенной сборки). В дистрибутив встроена документация и набор примеров. Выпущено несколько учебников, посвященных работе с Блэкбоксом. Блэкбокс полностью поддерживает юникод, в том числе (в последних версиях) юникодные идентификаторы для модулей, процедур, констант, типов и переменных.
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].
Примечания
Литература
- Компания Oberon microsystems. «Сообщение о языке Компонентный Паскаль», перевод Ф. В. Ткачева
- Шаблон:Книга, примеры к книге (для BlackBox Component Builder), английский оригинал
- Шаблон:Книга, примеры и дополнительные материалы к книге плюс обновлённый английский оригинал на сайте OberonCore
- Шаблон:Книга
- Шаблон:Книга (старое издание Шаблон:Книга)
Ссылки
Шаблон:^ Шаблон:Языки программирования
- ↑ Цепочка наследования: Паскаль → Модула → Модула-2 → Оберон → Оберон-2 → Компонентный Паскаль
- ↑ Ткачёв Ф.В. Краткая история Паскаля Шаблон:Wayback // МИР ПК. Диск. 2005. С. 2–5.
- ↑ 3,0 3,1 3,2 Ошибка цитирования Неверный тег
<ref>
; для сносокcpReport
не указан текст - ↑ Шаблон:Cite web
- ↑ 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.
- ↑ 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.
- ↑ Gough J. Virtual Machines, Managed Code and Component Technology // 2005 Australian Software Engineering Conference. Ieee. P. 5-12.
- ↑ Шаблон:Cite web
- ↑ 9,0 9,1 Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ 11,0 11,1 Шаблон:Cite web
- Русская Википедия
- Процедурные языки программирования
- Структурные языки программирования
- Объектно-ориентированные языки программирования
- Языки программирования платформы .NET
- Языки программирования семейства Оберона
- Языки программирования с автоматическим управлением памятью
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Википедия
- Статья из Википедии
- Статья из Русской Википедии
- Страницы с ошибками в примечаниях