作者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/m.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