平成26年度 秋期 システムアーキテクト試験 午前Ⅱ 問11
テクノロジ/基礎理論論理型プログラミングにおいて,命題の証明を行うための基本的な操作はどれか。
出典:平成26年度 秋期 システムアーキテクト試験 午前Ⅱ 問11
- アオーバライド
- イオーバロード
- ウメッセージパッシング
- エユニフィケーション
正解:エ
解説
論理型プログラミング(Prolog に代表される)は,プログラムに“事実”と“規則”を記述し,処理系がもつ導出原理(推論規則)によって問い合わせに対する結論を導き出すパラダイムです。この推論の過程で,変数を含む二つの項(論理式)が一致するように,変数に具体的な値(項)を割り当てて同一の形にする操作をユニフィケーション(単一化)と呼び,命題の証明(導出)を行うための基本的な操作となっています。
選択肢ごとの解説
- ア誤り。オーバライドは,オブジェクト指向プログラミングにおいて,スーパークラスで定義されたメソッドをサブクラスで再定義することであり,論理型プログラミングにおける証明の操作ではありません。
- イ誤り。オーバロードは,同じ名前のメソッドや演算子に対して,引数の型や数によって異なる処理を定義することであり,論理型プログラミングにおける証明の操作ではありません。
- ウ誤り。メッセージパッシングは,オブジェクト指向プログラミングにおいて,オブジェクト間でメッセージ(メソッド呼出し)をやり取りする仕組みであり,論理型プログラミングにおける証明の操作ではありません。
- エ正しい。ユニフィケーション(単一化)は,論理型プログラミングにおいて命題の証明を行うための基本的な操作です。