SAシステムアーキテクト試験 午前Ⅱ

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

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

  1. ア
    オーバライド
  2. イ
    オーバロード
  3. ウ
    メッセージパッシング
  4. エ
    ユニフィケーション
解き方のヒントを見る

推論の流れを整理する確認ポイント

論理型プログラミングの問題では、個々の記述を暗記するより、与えられた条件から何を確かめ、どの段階で結果を判断するかという推論の流れに注目して読み進めます。操作の順序と、成立しない場合の扱いを分けると、説明の違いを比較できます。

この問題で問われていること

確認の中心は、問いかけと前提を照らし合わせる過程が、各段階の判断として一貫して説明されているかです。途中の結果だけでなく、どの情報を根拠に次の確認へ進むのかを追ってください。

視点

推論を読むときは、最初に確認したい対象を定め、利用できる前提を整理したうえで、判断がどの情報に基づいて更新されるかを追跡します。表面的な用語や操作名ではなく、入力から結論までの対応関係が途切れていないかを見ることが大切です。

確認ポイント

  • 問いが求める確認対象を一文で言い換え、前提と結論を混同していないか確認する。
  • 判断の各段階で参照される情報が、直前までに得られた内容とつながっているか確認する。
  • 結果の説明と操作の説明を分け、根拠のない飛躍や断定がないか確認する。
正解と解説を見る

正解

エ

解説

論理型プログラミングでは、命題や述語に含まれる変数・項の対応関係を調整し、同時に成立する条件を探しながら証明を進める。この基本操作がユニフィケーションです。

理由

論理型プログラミングでは、証明したい命題と既知の事実や規則を照合し、変数や項に適切な対応を与えて、論理式同士を成立する形にそろえる。この操作によって証明の探索を進められる。

比較

オーバライドとオーバロードはオブジェクト指向プログラミングの機能であり、メッセージパッシングはオブジェクト間の通信方法です。いずれも命題の項や変数を対応付ける証明操作ではありません。

選択肢ア

これは不正解だよ。オーバライドは、継承関係にあるクラスで、親クラスから受け継いだメソッドを子クラス側で再定義する仕組みである。命題の証明において、変数や項の対応関係を調整する基本操作ではない。

選択肢イ

これは不正解だよ。オーバロードは、同じ名前のメソッドなどを引数の個数や型の違いによって複数定義する仕組みである。論理式を照合して証明を進めるための、変数や項の対応付けを表す操作ではない。

選択肢ウ

これは不正解だよ。メッセージパッシングは、オブジェクトにメッセージを送り、処理の実行を依頼する通信の仕組みである。オブジェクト間の連携には関係するが、命題の証明で論理式の対応を成立させる基本操作ではない。

選択肢エ(正解)

これは正解だよ。ユニフィケーションは、論理式や項に含まれる変数へ値や別の項を対応付け、複数の式が同時に成立するように照合する操作である。論理型プログラミングでは、この処理を用いて命題の証明を進める。

学習のポイント

論理型プログラミングの証明手続と、オブジェクト指向の機能名を区別する。

出典:独立行政法人 情報処理推進機構(IPA)平成26年度秋期 システムアーキテクト試験 午前Ⅱ 問11(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針