在编译器中键入检查

时间:2015-04-06 01:41:01

标签: compiler-construction semantics typechecking

是否可以在使用之前未声明变量的语言中键入检查表达式,例如x + y?有人可以用一个例子来解释。提前谢谢。

1 个答案:

答案 0 :(得分:2)

没有关于类型检查的变量声明的主要影响是你的变量没有显式声明的类型。因此,您的问题可以简化为是否可以在没有或可选类型签名的语言中键入检查表达式。答案是肯定的,因为有静态类型语言,其中类型签名是可选的,只是推断出类型。

这方面的一个例子是Haskell:

f x y = x + y

此处f获取类型Num a => a -> a -> a,这意味着它需要两个相同类型的数字并返回该类型的另一个数字。如果您没有明确提供,则编译器会自动推断出这种类型。