第1章 基礎

概要

コンピュータ上の様々な概念(値,オブジェクト,型,手続き,コンセプト)を説明しています。
この章だけで何か理解できるわけではないので用語だけ拾ってさっさと先に進みましょう。
後で出てきたとき戻って来れれば十分です。

各節概要

1-1 分類学の概念:実体,種,属
 プログラミングにおける概念を分類するため,生物学の分類学の考え方を
導入しています。2章以降で目にすることはほとんどありません。

1-2 値
 値型とは種とdatum(0と1の有限数列)間の対応のことです。値型に関して
表現,等価性を導入して,正則関数を定義しています。

1-3 オブジェクト
 オブジェクト型を定義しています。オブジェクトはメモリに値をもち,シリアライズして
通信で送ることも可能です。

1-4 手続き
 手続きは,何らかのオブジェクトの状態を修正する一連の命令の並びです。
オブジェクトを構築,または破壊することもあります。
 計算基底とはその型に対する任意の手続きを構築できる手続きの有限集合です。

1-5 正則型
 型が正則であるとは,型の計算基底が下記の手続きを含んでいる場合をいいます。
  • 等価性
  • 代入
  • デストラクタ
  • デフォルトコンストラクタ
  • コピーコンストラクタ
  • 全順序
  • 実際の型

1-6 正則手続き
 手続きが正則であるとは,手続きの入力を等しいオブジェクトに置き換えても
出力オブジェクトが等しい場合をいいます。
 非正則な手続きの例としては,オブジェクトのアドレスを返す手続きや
擬似乱数生成器などがあります。
 関数的手続きとは,正則型に対して定義された正則手続きで,かつ1つ以上の入力と
1つ以上の出力を返すものをいいます。2章以降,「関数」と呼んでいます。
 関数の入力の型を定義域,出力の型を余定義域といいます。

1-7 コンセプト
 手続きやデータ構造が有効となるたに必要な特性の集まりをコンセプトと呼びます。
コンセプトを記述するための関数として下記のものがあります。
  • Arity(F) ・・・ 関数型手続きで引数の数を返します。
  • Codomain(F) ・・・ 関数型手続きで結果の型を返します。
  • InputType(F, i) ・・・ 関数型手続きでi番目のパラメータの型を返します。

 コンセプトの定義は下記のように記述します。
  {\cal C}({\rm T}_0, {\rm T}_1, \ldots, {\rm T}_{n-1}):={\cal E}_0\wedge{\cal E}_1\wedge\ldots\wedge{\cal E}_{k-1}

  • 単項関数的手続き
\begin{equation}UnaryFunction({\rm F}):= \\\quad FunctionalProcedure({\rm F}) \\\quad\wedge {\rm Arity(F)}=1 \\\quad\wedge {\rm Domain}:UnaryFunction \rightarrow Regular\end{equation}

  • 同次関数的手続き
\begin{equation}HomogeneousFunction({\rm F}):= \\\quad FunctionalProcedure({\rm F}) \\\quad\wedge {\rm Arity(F)}>0 \\\quad\wedge {\rm (\forall i,j \in N)(i,j<Arity(F)) \Rightarrow (InputType(F,i)=InputType(F,j))} \\\quad\wedge {\rm Domain}:HomogeneousFunction \rightarrow Regular\end{equation}

 コンセプトはある型のすべてのオブジェクトが満たすべき特性を記述します。
これに対し、事前条件は特定のオブジェクトの特性を記述します。
 事前条件の例として、整数の素数を次のように定義します。

property(N:Integer)
prime:N
p\mapsto(\left|p\right|\neq1)\wedge(\forall u,v\in N)uv=p \Rightarrow(\left|u\right|=1 \vee \left|v\right|=1)

1-8 まとめ
 省略

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2013年03月25日 02:11