型安全、動的/静的な型付け、強い/弱い型付け


たいへん分かりやすい説明。要約するとこんな感じか。

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


詳しくは上のページをご覧あれ。