作者cat99961 (阿汤)
看板PLT
标题[问题] 关於强型态语言定义的问题
时间Thu Jan 19 21:34:12 2017
请问我念书时念到有关於强型态语言的定义,撷取部分内容如下:
强势型态程式语言符合下列要求:
1. 每一个变数都静态地系结到单一资料型态
2. 变数资料型系结後,在程式执行过程不能修改其资料型态
3. 当允许一个变数储存不同资料型态之值时,其值的型态可以静态地或动态地检查出来
4.....
5....
请问这1、2点和第3点不是互相矛盾吗?前2点说一个变数只能是单一资料型态,
且型态不能修改,第3点又说允许一个变数存不同资料型态
请问有谁可以告诉我呢?
关於第3点可否举例让我明白呢?
感激不尽…
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.232.225.26
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PLT/M.1484832854.A.282.html
1F:推 CoNsTaR: 1. 在有 subtyping 的情况下是不对的 01/19 23:15
2F:→ CoNsTaR: 例如数字 2 是 Integer 也是 Number 01/19 23:15
3F:→ CoNsTaR: 2. 在 type 是 first-class value 的语言中是不对的 01/19 23:15
4F:→ CoNsTaR: 3. 我猜他指的是类似 C 语言的 union 的东西 01/19 23:15
5F:→ CoNsTaR: 维基百科说强、弱型别没有明确的定义 01/19 23:21
6F:→ CoNsTaR: 不过我私心认为会在编译时期做 type check 的语言就属於 01/19 23:21
7F:→ CoNsTaR: 强型别了 01/19 23:21
8F:推 CoNsTaR: 我发现我回错版了 我以为这是 C 版 orz 01/19 23:45
9F:→ CoNsTaR: 那 3. 指的应该是 Haskell 的 either 吧~ 01/19 23:45
10F:推 cass: 符合123的例子就是指向base class的pointer或reference(c++) 06/23 13:37