甲府方重信Blog

...Shigenobu Koufugatas Blog

  • Increase font size
  • Default font size
  • Decrease font size
Error
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
Home 業務日誌 Adaプログラミング Adaチュートリアル セクション11.2 ジェネリック・フォーマル・パラメーター

Adaチュートリアル セクション11.2 ジェネリック・フォーマル・パラメーター

E-mail Print PDF

セクション 11.2 - ジェネリック・フォーマル・パラメーター

私たちはジェネリックスについて少しだけ見ていくことにしますが、というのもそれだけでプログラマーは自分たちが何が出来るのかを理解するのに十分であるだろうからです。しかしながら、プログラマーがジェネリック・フォーマル・パラメータにおいて、何を使うことが出来るのかを理解していない場合には、ジェネリックスに読んで、使いこなすのは難しいのです。(すなわち、キーワード「generic」の後ろに来るべき正しいもののことです). ここでは、ジェネリック・フォーマル・パラメーター・リストに含まれる可能性のある事柄を記述しています。

  • あらゆる型の値、もしくは変数。これらは、「フォーマル・オブジェクト」と呼ばれます。例えば、最大サイズの値は、有益なフォーマル・オブジェクトとなります。
  • 全ての型。これらは、「フォーマル型」と呼ばれます。
  • (複数の)パッケージ。これらは、他のジェネリック・パッケージのインスタンス。これらは「フォーマル・パッケージ」と呼ばれます。私たちはここではフォーマル・パッケージについては議論しません。

ここではフォーマル・オブジェクトの宣言の例を見てみましょう。

   Maximum_Size : Integer;

次に、フォーマル・オブジェクトとしての値、もしくは変数の構文に対する定義として、BNFフォーマットで見てみます。

  formal_object_declaration ::= identifier_list ":" [ "in" | "in out" ]
                                type_name [ ":=" default_expression ] ";"

私たちは既に、フォーマル型の宣言の例については見てきています。フォーマル型は、型の名前を特定し、どんな「種類の型」が許されるかを特定します。一つのフォーマル型の宣言は、「最小」であったり、要求される「最悪なケース」の型の種類を特定します。Adaでもっとも最小限の型は、「limited private」型と呼ばれています。キーワード「private」は、プログラマーがそれがどのように実装されたかをについて、何も知らない可能性があることを意味し、「limited」はそこに、代入がないか、それに対して定義されている等号操作が存在しない可能性を意味するので、これが「最悪のケース」となる訳です。

フォーマル型の宣言は、次のような書式を取ります。(これは実際、高度にシンプル化されています。もっと多くのことが許されています。):

  formal_type_declaration ::= "type" defining_identifier "is"
                              formal_type_definition ";"

  formal_type_definition ::= ["tagged"] ["limited"] "private" | "(<>)"

さて、いくつかの例を見ることによって、それぞれが宣言の中でLe書かれている意味を見てみましょう。

  type Item is limited private;  -- Item型は、あらゆる型でありうる。
  type Item is private;          -- Item型は、代入(:=)もしくは等号操作(=)をもつあらゆる型でありうる。

  type Item is tagged limited private; -- Item型は、あらゆるタグ付けされた型でありうる。 
  type Item is tagged private;   -- Item型は、代入を伴うあらゆるタグ付けされた型でありうる。
  type Item is (<>);             -- Item型は、整数型と論理型を含む、あらゆる不連続型でありうる。

次のセクションにおいて、私たちはこれらの事柄をはっきりとさせるための例を見ていくことにしましょう。

出典: http://www.adahome.com/Tutorials/Lovelace/s11s2.htm

Last Updated on Sunday, 01 April 2012 04:15  

ニュース速報

[リナックスアカデミー]Linuxセキュリティ(企業研修)

企業研修で、受講生は2名。5日間。

企業研修にしては、一日の時間が短いかもしれない。

もう少し演習を増やしたほうがいい。

アンケートの結果は、「満足」「満足」。

講師の評価は、「非常に満足」「満足」。

受講生の皆さん、お疲れ様でした。