目录

编程语言中, type, typed, typing 有什么区别

编程语言中, type, typed, typing 的区别是:type是类型,和term类似,是一系列元素的集合;typed是term的性质,表示在某个类型系统下这个term可以被赋予类型;typing是type + context,比如说HM之后principal type,没有principal typing,但是STLC有。

一、编程语言中, type, typed, typing 的区别

type是类型,和term类似,是一系列元素的集合,

typed是term的性质,表示在某个类型系统下这个term可以被赋予类型。

type 就是类型 T,可以看作一个有相同性质的对象的集合,或者一个空间。

term 叫做类型的项 t,记作 t : T,可以看作类型这个集合的元素,或类型空间的一个点。

举例来说,Nat 是自然数类型,可以看作自然数的集合,或者是只考虑自然数点的数轴这个空间,而 2 就是 Nat 类型的项,或者说自然数集合的元素,或者自然数轴空间上的点。

而当我们没有前面的语境(context,或译作上下文)时,单说 2 是没有类型的,它可以是整数,可以是自然数,也可以实数,此时它是未定型的(untyped)。

当我们给出 2 : Nat 时,2 就是已定型的(typed),或译「有类型的」「带类型的」「类型化的」。此时在整个语境中,2 的类型是 Nat,而不是 Int 或 Real 什么的。而赋予(或确定)2 的类型为 Nat 的过程,就叫定型(typing),也就是 2 后面的 : Nat。

typing是type + context,比如说HM之后principal type,没有principal typing,但是STLC有。也就是说HM不能把“需要的最小free varianble context”也推导出来,而STLC可以。


延伸阅读:

二、Ruby

Ruby是面向对象的编程语言,是脚本语言和PHP一样。她追求的是“简便快捷的面向对象编程”。Ruby是解释型语言,因此不需编译即可快捷地编程。同时Ruby具有类似 Perl的强大的文本处理功能,她可并不只是个玩具,您可以用她来进行实用的编程。此外,您还可以很方便地使用C语言来扩展Ruby的功能,因此可以把她当作各种库的前端来使用。若您曾经“想要一种简单的面向对象的语言”,或者认为“Perl的功能虽然好用,但它的语法真让人受不了”,又或者觉得“lisp系列语言的思想不错,但到处都是括号真让人讨厌,最起码算式应该按照通常的样式书写”。那么,Ruby或许能让您满意。


以上就是关于编程语言中, type, typed, typing 有什么区别的内容希望对大家有帮助。