Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Компонентный Паскаль является языком программирования в традиции Никлаус 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 =  [ идент "" ]  идент .ИдентОпр =  идент [ "*"  |  «-» ].

Ссылки [ править ]

  1. ^ Дженсен, Кэтлин; Вирт, Никлаус (1974–1991). Паскаль: Руководство пользователя и отчет . Springer Verlag. ISBN 978-0-387-97649-5.
  2. Вирт, Никлаус (1982–1985). Программирование в Модуле-2 . Springer Verlag. ISBN 978-3-540-15078-7.
  3. ^ Райзер, Мартин; Вирт, Никлаус (1 июня 1992 г.). Программирование в Обероне: шаги за пределами Паскаля и Модулы . Эддисон-Уэсли . ISBN 978-0201565430. PDF (334 КБ). Архивировано 3 июня 2012 г. на Wayback Machine.
  4. Вирт, Никлаус ; Гуткнехт, Юрг (1 ноября 1992 г.). Проект Оберон: Дизайн операционной системы и компилятора . Эддисон-Уэсли . ISBN 978-0201544282. PDF (4'398 КБ). Архивировано 10 июля 2012 г. на Wayback Machine.
  5. ^ Mössenböck, Hans-Peter; Вирт, Никлаус (1991). «Язык программирования Оберон-2» (PDF) . Структурированное программирование . 12 : 179–195.
  6. ^ 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
  • Последняя доступная версия бывшего официального сайта см. Также исторические заметки на странице загрузки