平成24年度 春期 午前 問48
開発技術
エキスパートシステムに関する問題
プログラムに“事実”と“規則”を記述し,プログラム言語の処理系がもつ導出原理によって結論を得るプログラミングパラダイムであって,エキスパートシステムの開発に適しているものはどれか。
- アオブジェクト指向プログラミング
- イ関数型プログラミング
- ウ手続型プログラミング
- エ論理型プログラミング
答えと解説を見る
✓ これが正解エ論理型プログラミング
解説
事実と規則を書き処理系が結論を導く型です。
この設問は、四つのプログラミングパラダイムを並べ、説明に合うものを選ばせています。見分けの軸は、書き手が何を書き、残りを誰が受け持つか、という一点になります。設問の中に出てくる事実、規則、導出原理という言葉は、どれも論理の世界の用語です。この並びがそのまま指しているのが論理型プログラミングです。書き手が用意するのは、成り立っている事柄と、そこから何が言えるかという関係の定めだけで、答えにたどり着くための手順は処理系の側が探します。たとえば、祖父とは親の親である、という関係さえ書いておけば、誰が誰の祖父かという問いに対して、処理系が規則をたどって答えを組み立てます。これが宣言的と呼ばれる書き方の中身です。エキスパートシステムとの相性がよいのもここから来ます。専門家の知識は、事柄と経験則の集まりとして少しずつ増えていきますから、規則を一つ書き足すだけで賢くなる形が都合よく働きます。手順を書き換える必要がないことが、この用途での強みになります。
ほかの選択肢はなぜ違うのか
- アオブジェクト指向プログラミング:オブジェクト指向プログラミングは、データとそれに対する操作をひとまとまりの部品にして、部品どうしのやり取りで組み立てる書き方です。蓄えた知識から処理系が答えを組み立てる仕掛けを土台にはしていません。
- イ関数型プログラミング:関数型プログラミングは、入力から出力への変換を関数として定め、それらを組み合わせて全体を作る書き方です。書くのは値の変換であって、成り立っている事柄と関係の定めではありません。
- ウ手続型プログラミング:手続型プログラミングは、どういう順序で何をするかという手順を書き並べる書き方です。答えに至る道筋を書き手が用意しますので、処理系が推論して結論を出す形にはなりません。
この問題の用語
- プログラム言語プログラムを書くための文法や記号の体系のこと。目的に合わせて多くの種類があり、Java、C、Pythonなどがよく使われます。
出典:平成24年度 春期 応用情報技術者試験 午前 問48
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)