» www.Giftbox.Az - Bir birindən gözəl hədiyyə satışı
ウィキペディアランダム
毎日カテゴリ
共有: WhatsappFacebookTwitterVK

Component Pascal

Component Pascalニクラウス・ヴィルトによる PascalModula-2OberonOberon-2 の伝統をひくプログラミング言語である。Pascal の名を持つが、Pascal 互換ではない。むしろ Oberon-2 から派生した改良版であり、チューリッヒ工科大学から分離独立したオベロン・マイクスシステムズという小さな会社によって設計、保守されている。彼らのIDE(統合開発環境)は (BlackBox Component Builder) と呼ばれる。1994年に最初のバージョンが Oberon/F としてリリースされたとき、フィールドとコマンドボタンを、エクスポートされた変数とプロシージャに結び付けた、編集可能なフォームを用いたグラフィカルユーザインターフェイスへの新しいアプローチを提案した。

オーストラリアのクイーンズランド工科大学のジョン・ゴーを中心としたガーデンズ・ポイント・チームによる .NETJava仮想マシン のためのオープンソース実装が存在する。

2004年6月23日、オベロン・マイクスシステムズは BlackBox Component Builder が無料ダウンロード可能になったことと、オープンソース版が計画されていることを発表した。最初に2004年12月にベータ版がリリースされ、2005年12月に最終V1.5にアップデートされた。IDE、コンパイラ、デバッガ、ソースアナライザ、プロファイラ、インターフェイスライブラリの完全なソースが含まれ、彼らのウェブサイトからダウンロードも可能である。

BlackBox Component Pascal は、例えばソースファイルのようなドキュメントファイルに拡張子 .odc を用い、シンボルファイルに .osf を用いる。一方、Gardens Point Component Pascal はソースに .cp、シンボルファイルに .cps を用いる。BlackBox Component Pascal は、専用の実行オブジェクトフォーマットとして .ocf を持ち、このフォーマットのための実行時リンクローダを含む。

文法

Component Pascal の完全な文法は以下の通りである。Oberon-2 よりもかなり先進的な言語であるにもかかわらず、それよりひとつ多いだけの、たった34のEBNF生成規則しか必要としない。

Module = MODULE ident ";" [ImportList] DeclSeq [BEGIN StatementSeq] [CLOSE StatementSeq] END ident ".". ImportList = IMPORT [ident ":="] ident {"," [ident ":="] ident} ";". DeclSeq = { CONST {ConstDecl ";" } | TYPE {TypeDecl ";"} | VAR {VarDecl ";"}} {ProcDecl ";" | ForwardDecl ";"}. ConstDecl = IdentDef "=" ConstExpr. TypeDecl = IdentDef "=" Type. VarDecl = IdentList ":" Type. ProcDecl = PROCEDURE [Receiver] IdentDef [FormalPars] MethAttributes [";" DeclSeq [BEGIN StatementSeq] END ident]. MethAttributes = ["," NEW] ["," (ABSTRACT | EMPTY | EXTENSIBLE)]. ForwardDecl = PROCEDURE " ^ " [Receiver] IdentDef [FormalPars] MethAttributes. FormalPars = "(" [FPSection {";" FPSection}] ")" [":" Type]. FPSection = [VAR | IN | OUT] ident {"," ident} ":" Type. Receiver = "(" [VAR | IN] ident ":" ident ")". Type = Qualident | ARRAY [ConstExpr {"," ConstExpr}] OF Type | [ABSTRACT | EXTENSIBLE | LIMITED] RECORD ["("Qualident")"] FieldList {";" FieldList} END | POINTER TO Type | PROCEDURE [FormalPars]. FieldList = [IdentList ":" Type]. StatementSeq = Statement {";" Statement}. Statement = [ Designator ":=" Expr | Designator ["(" [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 | REPEAT StatementSeq UNTIL Expr | FOR ident ":=" Expr TO Expr [BY ConstExpr] DO StatementSeq END | LOOP StatementSeq END | WITH [ Guard DO StatementSeq ] {"|" [ Guard DO StatementSeq ] } [ELSE StatementSeq] END | EXIT | RETURN [Expr] ]. Case = [CaseLabels {"," CaseLabels} ":" StatementSeq]. CaseLabels = ConstExpr [".." ConstExpr]. Guard = Qualident ":" Qualident. ConstExpr = Expr. Expr = SimpleExpr [Relation SimpleExpr]. SimpleExpr = ["+" | "-"] Term {AddOp Term}. Term = Factor {MulOp Factor}. Factor = Designator | number | character | string | NIL | Set | "(" Expr ")" | " ~ " Factor. Set = "{" [Element {"," Element}] "}". Element = Expr [".." Expr]. Relation = "=" | "#" | "<" | "<=" | ">" | ">=" | IN | IS. AddOp = "+" | "-" | OR. MulOp = " * " | "/" | DIV | MOD | "&". Designator = Qualident {"." ident | "[" ExprList "]" | " ^ " | "(" Qualident ")" | "(" [ExprList] ")"} [ "$" ]. ExprList = Expr {"," Expr}. IdentList = IdentDef {"," IdentDef}. Qualident = [ident "."] ident. IdentDef = ident [" * " | "-"]. 

外部リンク

  • Oberon microsystems
  • Open Source License for the framework
  • Gardens Point Component Pascal
  • Component Pascal Collection with many useful sources
  • Component Pascal Resources
  • Open Directory: Component Pascal

OberonOberon-2 の進化

  • From Modula-2 to Oberon」、ヴィルト、1988年
  • The Programming Language Oberon」、ヴィルト、1988年
  • Differences between Oberon and Oberon-2」、メッセンベック、ヴィルト、1991年
  • The Programming Language Oberon-2」メッセンベック、ヴィルト、計算機システム学科、チューリッヒ工科大学、1992年1月
  • What's New in Component Pascal」、プファイシュテル、2001年
ウィキペディア、ウィキ、本、library、論文、読んだ、ダウンロード、自由、無料ダウンロード、mp3、video、mp4、3gp、 jpg、jpeg、gif、png、画像、音楽、歌、映画、本、ゲーム、ゲーム。