型安全性
プログラムが未定義動作を絶対に起こさないように記述されている場合、プログラムが完全に定義されている(well defined)と言うことにしよう。言語の安全チェック機能が、すべてのプログラムが完全に定義されていることを保証してくれるなら、その言語が型安全(type safe)である、と言うことにする。
C/C++を使ってプログラムを書くと、随所に「未定義動作」が発生しうる
例えばヌルポインタや無効なポインタを参照解決(dereference)する
0で除算する
慎重にプログラミングすることでそのような未定義動作がないプログラムを作れる可能性がある
そのようなプログラムは完全に定義されている
しかしC/C++の処理系は型安全ではない
プログラムが完全に定義されることを保証はしてくれないから
Pythonは型安全
型安全性を実現するために動的な検査を惜しまない