忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【開発技術】エラーはいつ見つける?「静的型付け」と「動的型付け」|情報処理問題1000本ノック

プログラミング言語が変数の「データ型(数値や文字列など)」をいつ、どのようにチェックするのか。開発の安全性とスピードを左右する2つの型付け手法を攻略しましょう。

1. 【 問題 】:プログラミング言語の特性

【 問題 】 プログラミング言語のデータ型の扱いに関する記述のうち、適切なものはどれでしょうか?

① 静的型付け言語では、プログラムの実行時に変数の型が決定されるため、実行速度が高速になる。
② 動的型付け言語では、コンパイル時に厳密な型チェックが行われるため、データ型の不一致によるエラーを実行前に検知できる。
③ 静的型付け言語では、ソースコードの記述段階やコンパイル時に変数の型が決定されるため、型に関するバグを実行前に発見しやすい。
④ 動的型付け言語では、変数の型をあらかじめ宣言する必要があるため、大規模開発におけるコードの可読性が高まる。

2. 正解:

正解: ③ 静的型付け言語では、ソースコードの記述段階やコンパイル時に変数の型が決定されるため、型に関するバグを実行前に発見しやすい。

3. 解説:型をチェックする「タイミング」の違い

「型付け(Typing)」とは、変数に入れるデータの種類(整数、文字列、配列など)のルールのことです。このルールを「実行前」に決めるか、「実行しながら」決めるかが決定的な違いです。

【2つのアプローチの特徴比較】

■ 静的型付け(Static Typing)
いつ決まる?:プログラムを実行する前(コード記述時やコンパイル時)。
メリット:間違った型を代入しようとすると、実行前にエラー(コンパイルエラー)が出るため安全。大規模開発向き。
代表例:Java, C++, TypeScript, Go, Rustなど。

■ 動的型付け(Dynamic Typing)
いつ決まる?:プログラムを実行している最中(値が代入された瞬間)。
メリット:型をいちいち宣言しなくてよいため、コードが短く済み、素早く開発できる。試作向き。
代表例:Python, JavaScript, Ruby, PHPなど。
[ 選択肢のひっかけポイント ]
★ ①:実行時に型を決めるのは「動的型付け」です。
★ ②:コンパイル時にチェックするのは「静的型付け」です。
★ ④:事前に型を宣言する必要があるのは「静的型付け」です。

1. 理解のコツ: 荷物を送る「段ボール箱」をイメージしてください。あらかじめ「これは割れ物用」「これは本用」と箱にラベルを貼って指定するのが静的型付けです(違うものを入れると怒られます)。一方、中身を詰めてガムテープを貼った瞬間に「あ、これは本箱ね」と決まるのが動的型付けです。
2. 試験対策の視点: 「コンパイル時に型が決定する=静的」「実行時に型が決定する=動的」という対応関係を確実に覚えましょう。近年はJavaScript(動的)に型を導入したTypeScript(静的)が主流になるなど、トレンドとしても非常によく狙われるテーマです。


4. まとめ

「エラーを実行前に潰せる安全な静的型付け」と、「素早く柔軟にコードが書ける動的型付け」。これがプログラミング言語の2大特性です。それぞれのメリット・デメリットを正しく理解することが、堅牢なソフトウェア設計への第一歩です。


PR