Парадигмы | Императивный , структурированный , модульный , объектно-ориентированный |
---|---|
Семья | Вирт Оберон |
Разработчик | Микросистемы Оберон |
Впервые появился | 1997 |
Печатная дисциплина | Сильный , статичный |
Сфера | Лексический |
Веб-сайт | blackboxframework |
Под влиянием | |
Паскаль , Оберон , Оберон-2 |
Компонентный Паскаль является языком программирования в традиции Никлаус Wirth «ы Паскаль , [1] Модуле-2 , [2] Оберон [3] [4] и Оберон-2 . [5] Он носит название языка Паскаль и сохраняет его наследие, но несовместим с Паскалем. Вместо этого это второстепенный вариант и доработка Оберона-2 с более выразительной системой типов и встроенной поддержкой строк . Компонент Pascal изначально назывался Oberon / L и был разработан и поддерживался небольшой ETH Zürich.дочерняя компания Oberon Microsystems. Они разработали интегрированную среду разработки (IDE) под названием BlackBox Component Builder . С 2014 года разработкой и поддержкой занимается небольшая группа волонтеров. Первая версия IDE была выпущена в 1994 году, как и Oberon / F . В то время он представил новый подход к построению графического пользовательского интерфейса (GUI), основанный на редактируемых формах, где поля и командные кнопки связаны с экспортируемыми переменными и исполняемыми процедурами. Этот подход имеет некоторое сходство со способом кода программной части , используемым в Microsoft .NET 3.0 для доступа к коду на Extensible Application Markup Language. (XAML), выпущенный в 2008 году.
Программное обеспечение с открытым исходным кодом реализации Компонентный Паскаль существует для .NET и Java виртуальной машины (JVM) платформ, от команды Gardens Поинт вокруг Джона Гоу в Технологический университет Квинсленда в Австралии.
23 июня 2004 года компания Oberon Microsystems объявила, что BlackBox Component Builder доступен для бесплатной загрузки и что планируется его версия с открытым исходным кодом. Бета-версия с открытым исходным кодом была первоначально выпущена в декабре 2004 г. и обновлена до последней версии v1.5 в декабре 2005 г. Она включает полный исходный код IDE, компилятора, отладчика, анализатора исходного кода, профилировщика и интерфейсных библиотек, а также может также можно скачать с их веб-сайта. Несколько версий-кандидатов для v1.6 появилось в 2009–2011 годах, последний (1.6rc6) появился на веб-страницах Oberon Microsystems в 2011 году. В конце 2013 года Oberon Microsystems выпустила финальную версию 1.6. Вероятно, это последний выпущенный ими релиз. Небольшое сообщество взяло на себя текущую разработку.
BlackBox Компонентный Паскаль использует расширения ODC - ( О Beron д о с ument) для документов файлов, таких как файлы исходного, например, и .osf ( O Beron с ymbol е Ile) для файлов символов во время садов Компонент точки Паскаль использует для .cp source и .cps для файлов символов. BlackBox Компонентный Паскаль имеет свой собственный исполняемый и загружаемый формат объекта .ocf ( O Beron с одой е Ile); он включает загрузчик связывания среды выполнения для этого формата. Формат документа (.odc) - это двоичный формат с расширенным текстом, который обеспечивает удобное форматирование, поддерживает условное сворачивание и позволяет встраивать активное содержимое в исходный текст. Он также обрабатываетэлементы пользовательского интерфейса в редактируемых формах. Это традиция формата Oberon Text. [6]
Синтаксис [ править ]
Полный синтаксис CP, представленный в отчете о языке, показан ниже. В расширенной форме Бэкуса-Наура требуется всего 34 грамматических произведения, на одну больше, чем для Оберона-2 , хотя это более сложный язык.
Module = MODULE идентификатор ";" [ ImportList ] DeclSeq [ BEGIN StatementSeq ] [ CLOSE StatementSeq ] КОНЕЦ идентификатор "." .ImportList = ИМПОРТ [ идентификатор ": =" ] идентификатор { "," [ идентификатор ": =" ] идентификатор } ";" .DeclSeq = { ФИКСИР { ConstDecl ";" } | TYPE { TypeDecl ";" } | VAR { VarDecl ";" }} { ProcDecl ";" | ForwardDecl ";" }.ConstDecl = IdentDef "=" ConstExpr .TypeDecl = IdentDef "=" Тип .VarDecl = IdentList ":" Тип .ProcDecl = PROCEDURE [ Получатель ] IdentDef [ FormalPars ] MethAttributes [ ";" DeclSeq [ BEGIN StatementSeq ] END идентификатор ].MethAttributes = [ "," НОВОЕ ] [ "," ( АБСТРАКТ | ПУСТО | РАСШИРЕНИЕ )].ForwardDecl = PROCEDURE "^" [ Получатель ] IdentDef [ FormalPars ] MethAttributes .FormalPars = "(" [ FPSection { ";" FPSection }] ")" [ ":" Тип ].FPSection = [ VAR | В | OUT ] ident { "," identify } ":" Тип .Получатель = "(" [ VAR | IN ] identity ":" identify ")" .Тип = Qualident | ARRAY [ ConstExpr { "," ConstExpr }] OF Тип | [ АННОТАЦИЯ | РАСШИРЯЕМЫЙ | LIMITED ] ЗАПИСЬ [ "(" Qualident ")" ] FieldList { ";" FieldList } END | УКАЗАТЕЛЬ НА Тип | ПРОЦЕДУРА [ FormalPars ].FieldList = [ IdentList ":" Тип ].StatementSeq = Заявление { ";" Заявление }.Заявление = [ обозначение ": =" Выражение | Обозначение [ "(" [ ExprList ] ")" ] | IF Expr THEN StatementSeq { ELSIF Expr THEN StatementSeq } [ ELSE StatementSeq ] END | CASE Expr OF Case { "|" Case } [ ELSE StatementSeq ] END | WHILE Expr DO StatementSeq END | ПОВТОРИТЬ StatementSeq, пока Expr | FOR идентификатор ": =" Выражение TO Выражение [BY ConstExpr ] DO StatementSeq END | LOOP StatementSeq END | С [ Guard DO StatementSeq ] { "|" [ Guard DO StatementSeq ] } [ ELSE StatementSeq ] END | ВЫХОД | ВОЗВРАТ [ Выражение ] ].Case = [ CaseLabels { "," CaseLabels } ":" StatementSeq ].CaseLabels = ConstExpr [ ".." ConstExpr ].Guard = Qualident ":" Qualident .ConstExpr = Выражение .Выражение = Простое выражение [ Простое выражение отношения ].SimpleExpr = [ "+" | "-" ] Срок действия { Срок действия дополнения }.Срок = Фактор { MulOp Factor }.Фактор = Обозначение | номер | персонаж | строка | NIL | Установить | "(" Выражение ")" | Фактор "~" .Set = "{" [ Элемент { "," Элемент }] "}" .Элемент = Выражение [ ".." Выражение ].Отношение = "=" | "#" | "<" | "<=" | ">" | "> =" | В | ЕСТЬ .AddOp = "+" | "-" | ИЛИ .MulOp = "*" | "/" | DIV | MOD | "&" .Обозначение = Qualident { "." идент | "[" ExprList "]" | "^" | "(" Qualident ")" | "(" [ ExprList ] ")" } [ "$" ].ExprList = Expr { "," Expr }.IdentList = IdentDef { "," IdentDef }.Qualident = [ идент "" ] идент .ИдентОпр = идент [ "*" | «-» ].
Ссылки [ править ]
- ^ Дженсен, Кэтлин; Вирт, Никлаус (1974–1991). Паскаль: Руководство пользователя и отчет . Springer Verlag. ISBN 978-0-387-97649-5.
- ↑ Вирт, Никлаус (1982–1985). Программирование в Модуле-2 . Springer Verlag. ISBN 978-3-540-15078-7.
- ^ Райзер, Мартин; Вирт, Никлаус (1 июня 1992 г.). Программирование в Обероне: шаги за пределами Паскаля и Модулы . Эддисон-Уэсли . ISBN 978-0201565430. PDF (334 КБ). Архивировано 3 июня 2012 г. на Wayback Machine.
- ↑ Вирт, Никлаус ; Гуткнехт, Юрг (1 ноября 1992 г.). Проект Оберон: Дизайн операционной системы и компилятора . Эддисон-Уэсли . ISBN 978-0201544282. PDF (4'398 КБ). Архивировано 10 июля 2012 г. на Wayback Machine.
- ^ Mössenböck, Hans-Peter; Вирт, Никлаус (1991). «Язык программирования Оберон-2» (PDF) . Структурированное программирование . 12 : 179–195.
- ^ Mössenböck, H .; Коскимиес, К. (1996). «Активный текст для структурирования и понимания исходного кода» . Программное обеспечение: практика и опыт . 26 : 833–850. DOI : 10.1002 / (SICI) 1097-024X (199607) 26: 7 <833 :: AID-SPE34> 3.0.CO; 2-Q .
Дальнейшее чтение [ править ]
- От Модулы до Оберона Вирта (1990)
- Язык программирования Оберон Вирт (1990)
- Различия между Обероном и Обероном-2 Мессенбёк и Вирт (1993)
- Язык программирования Oberon-2 H. Mössenböck, N. Wirth, Institut für Computersysteme, ETH Zürich ( ETHZ ), январь 1992 г.
- Что нового в Component Pascal (изменения с Oberon-2 на CP), Pfister (2001)
- Компоненты и объекты вместе , Клеменс Шиперски, доктор Доббс, май 1999 г.
Внешние ссылки [ править ]
- Официальный веб-сайт
- Компонент Паскаль в Curlie
- Последняя доступная версия бывшего официального сайта см. Также исторические заметки на странице загрузки