Основные уточнения Компонентного Паскаля по сравнению с Обероном-2:
Главная особенность по сравнению с Обероном-2 – дать проектировщику интерфейсов модулей, определяющих абстрактные типы проблемной области, расширенный контроль в плане безопасности
. В синтаксис языка добавлены атрибуты для типов (ABSTRACT, EXTENSIBLE, LIMITED)
и методов (ABSTRACT, EMPTY, EXTENSIBLE)
. Это позволяет статически контролировать согласованность иерархий наследования и восстановить принцип тотальной статической типизации, а так же разрешать или запрещать модулям-клиентам расширять предлагаемые им типы.
Изменена система встроенных типов Оберона: набор основных типов Компонентного Паскаля является надмножеством
для основных типов языка
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
).
Полное описание синтаксиса языка в
расширенной форме Бэкуса-Наура
приведено на страницах Сообщения о языке Компонентный Паскаль
. Оно содержит 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
.
Примечания
↑
(неопр.)
. Дата обращения: 21 августа 2012. Архивировано из
16 августа 2012 года.
Ткачёв Ф.В.
от 12 марта 2013 на
Wayback Machine
// МИР ПК. Диск. 2005. С. 2–5.
(неопр.)
. Дата обращения: 25 августа 2012.
12 марта 2013 года.
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.
(неопр.)
. Дата обращения: 1 февраля 2011. Архивировано из
18 февраля 2011 года.
↑
(неопр.)
. Дата обращения: 2 февраля 2011. Архивировано из
16 февраля 2011 года.
(неопр.)
. Дата обращения: 2 февраля 2011. Архивировано из
20 августа 2006 года.
↑
(неопр.)
. Дата обращения: 1 февраля 2011. Архивировано из
18 февраля 2011 года.
Виталий Потопахин.
Современное программирование с нуля!. — ДМК Пресс, 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
.
)