强弱类型(Strong and weak typing)表示在计算机科学以及程序设计中,经常把编程语言的类型系统分为强类型(英语:strongly typed)和弱类型(英语:weakly typed (loosely typed))两种。这两个术语并没有非常明确的定义,但主要用以描述编程语言对于混入不同资料类型的值进行运算时的处理方式。强类型的语言遇到函数引数类型和实际调用类型不符合的情况经常会直接出错或者编译失败;而弱类型的语言常常会实行隐式转换,或者产生难以意料的结果。这对术语在短短的电脑历史中,早已含括了更多的意义,而且时常很难知道写的人究竟要表达哪个意思。
编程语言专家 Benjamin C. Pierce,《Types and Programming Languages》和《Advanced Topics in Types and Programming Languages》的作者,曾说:
大致而言,“强类型”隐含着编程语言对容许混合情况出现加上了严格的限制,以避免代码以无效的资料使用方式编译或运行。例如,整数除法运算不可用于字符串;链表上的运算步骤不可用于数字。然而,这些限制的本质和效力是极易改变的。
已经被写作者认定为“强类型”的一些要素包括: