[問題] 關於強型態語言定義的問題

看板PLT (程式語言與理論)作者 (阿湯)時間7年前 (2017/01/19 21:34), 編輯推噓3(307)
留言10則, 2人參與, 最新討論串1/3 (看更多)
請問我唸書時念到有關於強型態語言的定義,擷取部分內容如下: 強勢型態程式語言符合下列要求: 1. 每一個變數都靜態地繫結到單一資料型態 2. 變數資料型繫結後,在程式執行過程不能修改其資料型態 3. 當允許一個變數儲存不同資料型態之值時,其值的型態可以靜態地或動態地檢查出來 4..... 5.... 請問這1、2點和第3點不是互相矛盾嗎?前2點說一個變數只能是單一資料型態, 且型態不能修改,第3點又說允許一個變數存不同資料型態 請問有誰可以告訴我呢? 關於第3點可否舉例讓我明白呢? 感激不盡… -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.232.225.26 ※ 文章網址: https://www.ptt.cc/bbs/PLT/M.1484832854.A.282.html

01/19 23:15, , 1F
1. 在有 subtyping 的情況下是不對的
01/19 23:15, 1F

01/19 23:15, , 2F
例如數字 2 是 Integer 也是 Number
01/19 23:15, 2F

01/19 23:15, , 3F
2. 在 type 是 first-class value 的語言中是不對的
01/19 23:15, 3F

01/19 23:15, , 4F
3. 我猜他指的是類似 C 語言的 union 的東西
01/19 23:15, 4F

01/19 23:21, , 5F
維基百科說強、弱型別沒有明確的定義
01/19 23:21, 5F

01/19 23:21, , 6F
不過我私心認為會在編譯時期做 type check 的語言就屬於
01/19 23:21, 6F

01/19 23:21, , 7F
強型別了
01/19 23:21, 7F

01/19 23:45, , 8F
我發現我回錯版了 我以為這是 C 版 orz
01/19 23:45, 8F

01/19 23:45, , 9F
那 3. 指的應該是 Haskell 的 either 吧~
01/19 23:45, 9F

06/23 13:37, , 10F
符合123的例子就是指向base class的pointer或reference(c++)
06/23 13:37, 10F
文章代碼(AID): #1OWC1MA2 (PLT)
文章代碼(AID): #1OWC1MA2 (PLT)