型安全、動的/静的な型付け、強い/弱い型付け
たいへん分かりやすい説明。要約するとこんな感じか。
- 型安全な言語
- 型の食い違いによる「意味のない」「正しくない」操作を全て検出できる言語。例: Ruby や Java は実行時エラーがでるので型安全、C はキャストがあるので型安全でない。
- 静的型付けな言語
- コンパイル時に全ての式、変数の型が決まるような言語。例: C, Java。
- 動的型付けな言語
- プログラムを実行してからでないと決まらない式がある言語。例: Lisp, Ruby。
- 強く型付けされた言語
- 静的型付けのシステムにより、型エラーがおこる可能性をすべてコンパイル時に検出できる言語。例: キャストが存在しない ML や Haskell は強い型付け。Java はキャストによるエラーが実行時にしか分からないので弱い型付け。
詳しくは上のページをご覧あれ。