この試験の対策ガイド

情報処理安全確保支援士試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は ウ

解説

問われているのは、オブジェクト指向のプログラム言語であり、かつクラスや関数、条件文などのコードブロックの範囲をインデント(字下げ)の深さによって指定する言語です。これに該当するのがPythonです。Pythonは、多くの言語が中括弧 { } やキーワード(begin〜end など)でブロックの範囲を示すのに対し、行頭の字下げの深さでブロックの入れ子構造を表現する点が大きな特徴です。同じインデント幅で書かれた連続する文が一つのブロックとして扱われ、インデントが浅くなるとブロックの終わりを意味します。これにより、コードの見た目の構造と論理的な構造が一致し、可読性が高まる一方、インデントの誤りが文法エラーになるという特性もあります。選択肢cのPythonが正解です。Pythonはオブジェクト指向・手続き型・関数型の各スタイルを扱えるマルチパラダイム言語であり、機械学習やデータ分析、Web開発など幅広い分野で利用されています。他のJavaScript・Perl・Rubyは、ブロックを中括弧やキーワードで区切る点でPythonとは異なります。

なぜ他の選択肢は違うのか

選択肢 ア
JavaScript は、コードブロックの範囲を中括弧 { } で囲んで指定する言語です。インデントは可読性のために慣習的に用いられますが、文法上の意味はもたず、字下げの深さでブロックを表すPythonとは異なります。主にWebブラウザ上で動作する言語です。インデントは可読性のための慣習にすぎず文法上の意味をもたない点で、字下げの深さでブロックを表すPythonとは異なります。主にWebブラウザ上で動作する言語です。
選択肢 イ
Perl は、コードブロックの範囲を中括弧 { } で囲んで指定する言語です。インデントによってブロックを表すことはなく、字下げの深さで構造を示すPythonとは仕様が異なります。テキスト処理やシステム管理スクリプトなどで広く使われてきた言語で、正規表現の機能が強力なことでも知られています。インデントは可読性のための慣習にとどまり、文法上の意味をもたない点もPythonとの大きな違いです。
選択肢 エ
Ruby は、コードブロックの範囲を主に do〜end や中括弧 { }、あるいは if〜end のようなキーワードで指定する言語です。インデントの深さでブロックを表現することはなく、字下げで構造を示すPythonとはブロックの記法が異なります。ブロックを do〜end や if〜end などのキーワードで指定する言語であり、インデントの深さでブロックを表すPythonとはブロックの記法が異なります。

解くときのポイント

インデント(字下げ)でコードブロックを表す言語=Python。他の多くの言語(JavaScript・Perl・Ruby・C・Javaなど)は中括弧 { } やキーワード(do〜end)でブロックを区切る。Pythonはマルチパラダイムで機械学習・データ分析に多用。