動的型付けは、プログラムを実行してから、実際の値が何であるかによって型が決定されます。たとえば、変数 a に対する初期化の式が a = read_data()
であったとすると、変数 a の型は read_data関数が返した戻り値の型によって決定されます。
ソースコード上ではまったく同じように、a = read_data()
のような、型を明示しない記述をするとしても、プログラムの実行前までには型が決定されるのならば、それは動的型付けではなく、静的型付けと呼ばれるものです(この場合、型推論という方法で、コンパイラなどが型を決定します)。
動的型付けでは、プログラムの実行を開始する時点では、最低限の文法ルールさえ守られていればよいため、気軽にソースコードを書いては実行して確認することを繰り返す方法が取りやすい利点があります。型が一致していないミスは、実際にそれが起こる箇所が実行されないかぎりは問題になりませんが、これは潜んでいる問題をいち早く検出できないという意味では欠点にもなりえます(静的型付けの場合なら、この手のミスの多くがコンパイルなどで検知できる)。
動的型付け言語の例として、JavaScript、Python、Ruby、PHP などがあります。
動的型付けのほかに、静的型付けという方法があり、こちらを採用しているプログラミング言語は、静的型付け言語と呼ばれます。ただし、静的型付け言語であっても、リフレクションと呼ばれる機能を使うなどして、動的型付けのような柔軟さを得られる言語もありますし、基本的には動的型付け言語であっても、型を指示する方法を備えている言語もあります。
なお、動的言語(動的プログラミング言語)というものもありますが、これは動的型付け言語とは異なるものです。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |