令和2年度 10月 午前 問7
基礎理論
オブジェクト指向に関する問題
オブジェクト指向のプログラム言語であり,クラスや関数,条件文などのコードブロックの範囲はインデントの深さによって指定する仕様であるものはどれか。
- アJavaScript
- イPerl
- ウPython
- エRuby
答えと解説を見る
✓ これが正解ウPython
解説
コードブロックの範囲を字下げで決めるのは Python です。
設問はオブジェクト指向のプログラム言語で、クラスや関数、条件文などのコードブロックの範囲を字下げの深さで決める仕様を持つものを選ばせています。ですから、その仕様の一点、つまり範囲の区切り方の仕組みで見分けます。多くの言語は、範囲の始まりと終わりを中括弧で囲うか、あるいは end のような特別なキーワードで閉じるかのどちらかを取りますが、字下げの深さそのものを構文の一部として扱う言語は多くありません。字下げを構文にすると、書き手が見ているインデントと処理系が実行するブロックの境目が一致するため、書式の乱れが構文の乱れとして即座に検出される利点があります。一方で、字下げに空白とタブを混ぜると構文誤りとして拒まれるので、書き方の統一が必要です。設問の条件を満たすのは Python です。
ほかの選択肢はなぜ違うのか
- アJavaScript:JavaScript が選択肢に挙げられています。オブジェクト指向の性格を持つ言語ですが、if や関数などのブロックの範囲は中括弧 { と } で囲って示す仕様で、字下げの深さそのものが構文上の意味を持つ言語ではありません。
- イPerl:Perl が選択肢に挙げられています。ブロックの範囲は中括弧 { と } で囲って示す仕様で、字下げの深さは書き手が見やすさのために整えるものであって、構文の区切りとして処理系に読ませる仕組みではありません。
- エRuby:Ruby が選択肢に挙げられています。オブジェクト指向の言語で、if や def などのブロックは end というキーワードで閉じる仕様です。字下げは見やすさのためで、構文の区切りに使われていません。
この問題の用語
- プログラム言語プログラムを書くための文法や記号の体系のこと。目的に合わせて多くの種類があり、Java、C、Pythonなどがよく使われます。
出典:令和2年度 10月 応用情報技術者試験 午前 問7
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)