IPA過去問ドリル

平成26年度 秋期 システムアーキテクト試験 午前Ⅱ 問11

テクノロジ/基礎理論

論理型プログラミングにおいて,命題の証明を行うための基本的な操作はどれか。

出典:平成26年度 秋期 システムアーキテクト試験 午前Ⅱ 問11

正解:エ

解説

論理型プログラミング(Prolog に代表される)は,プログラムに“事実”と“規則”を記述し,処理系がもつ導出原理(推論規則)によって問い合わせに対する結論を導き出すパラダイムです。この推論の過程で,変数を含む二つの項(論理式)が一致するように,変数に具体的な値(項)を割り当てて同一の形にする操作をユニフィケーション(単一化)と呼び,命題の証明(導出)を行うための基本的な操作となっています。

選択肢ごとの解説

  • 誤り。オーバライドは,オブジェクト指向プログラミングにおいて,スーパークラスで定義されたメソッドをサブクラスで再定義することであり,論理型プログラミングにおける証明の操作ではありません。
  • 誤り。オーバロードは,同じ名前のメソッドや演算子に対して,引数の型や数によって異なる処理を定義することであり,論理型プログラミングにおける証明の操作ではありません。
  • 誤り。メッセージパッシングは,オブジェクト指向プログラミングにおいて,オブジェクト間でメッセージ(メソッド呼出し)をやり取りする仕組みであり,論理型プログラミングにおける証明の操作ではありません。
  • 正しい。ユニフィケーション(単一化)は,論理型プログラミングにおいて命題の証明を行うための基本的な操作です。
システムアーキテクトの過去問を演習モードで解く