类型的强壮性是评价程序设计语言的重要标准。涉及到类型检查的内容包括对已存在的方法的调用,方法的参数的类型,数组边界的检查,等等。
C++、Java和Object Pascal多或多或少的支持编译期类型检查,其中,C++的类型检查最弱,而Java的最强。原因是,C++保留了对C语言的支持,而C语言虽然支持编译期类型检查,却极其微弱。例如,C和C++认为所有数字类型都是兼容的(虽然向整型变量赋浮点数值时编译器会报警)。在Object Pascal和Java语言中,布尔值与整型数值不同,而字符类型则是另一个完全不兼容的类型。
虽然Java虚拟机在运行期“翻译”比特码,但并不表示它放弃了编译期类型检查。相反,在Java中类型检查进行的相当彻底。另外一些OOP语言,例如Smalltalk和CLOS,则在运行期进行类型检查。