程式語言的型別系統為何如此重要?

2022-07-01 15:03:10 字數 1049 閱讀 3524

程式是型別的證明。

電腦程式是建立在計算機硬體和一系列規則、協議、規範、演算法基礎之上的;

程式是建立在邏輯和嚴格證明基礎之上的;

邏輯學的基本要素是:概念、判斷、推理;

型別系統相當於邏輯和科學中的概念,在此基礎上才能進行運算和推理;

程式語言不過是建立了型別系統和在型別系統基礎上的一些列運算法則而已。

型別+運算法則+運算推演=程式;

先匿了,我不確定我說的好不好。

發現和《types and programming》說的一模一樣,不匿了

安全,有了型別系統以後就可以實現型別安全,這時候程式就變成了乙個嚴格的數學證明過程,編譯器可以機械地驗證程式某種程度的正確性,從而杜絕很多錯誤的發生。

正面例子:haskell、rust

反面例子:c,動態語言

抽象能力,在安全的前提下,乙個強大的型別系統的標準是抽象能力,能將程式中的很多東西納入安全的型別系統中進行抽象,這在安全性的前提下又不損耗靈活性,甚至效能也能很優化。動態語言的抽象能力可以很強,但安全性和效能就不行了。

泛型、高階函式(閉包)、型別類、monad、lifetime(rust) 屬於這一塊。

工程能力,乙個強型別的程式語言比動態型別的語言更適合大規模軟體的構建,哪怕不存在效能問題,但是同樣取決於前兩點。

對於編譯器來說能清楚程式的意圖,對於人來說也是如此 。乙個函式或者類似的東西,說白了就是乙個對映關係,python 中這些對映關係都是沒有很明顯的約束,要靠約定和默契才能維持,對大型軟體來說這是不行的。乙個優秀的強型別的程式,很多函式都不需要文件,光看函式申明就可以了。而在安全的前提下的抽象,也是不容易引發災難的。

不過,同時型別檢查和標註增加了學習成本和編碼時間成本(型別推倒不是萬能的),編譯不過也會挫傷初學者信心,不像動態語言上馬就能幹,邊乾邊學。不過個人覺得值。

物聯網平台為何如此重要

物聯網系統越大,遷移到物聯網平台的成本和挑戰越大,因此專業的物聯網平台不僅要具備能夠直連運營商製作自己的資源,對接第三方資源的同時,要兼具可靠性和穩定性的服務,以確保客戶提供強大有力的支撐。除了確定適合客戶需求平台型別之外,最重要的考慮因素是安全性 可靠性和易用性。物聯網卡管理平台應將物聯網系統簡化...

團隊溝通 為何如此重要以及如何改

溝通是任何業務的核心。如果您的團隊無法正確溝通,他們可能將無法完成任務並實現目標。作為經理或企業主,您的工作是建立乙個環境,使他們能夠應對新挑戰並清楚地表述自己,而不是獨自一人。以下是可用於改善團隊溝通的方法和工具。為什麼團隊溝通可以決定業務的成功或失敗 您的員工必須能夠彼此之間自信而清晰地溝通。以...

團隊溝通 為何如此重要以及如何改

溝通是任何業務的核心。如果您的團隊無法正確溝通,他們可能將無法完成任務並實現目標。作為經理或企業主,您的工作是建立乙個環境,使他們能夠應對新挑戰並清楚地表述自己,而不是獨自一人。以下是可用於改善團隊溝通的方法和工具。您的員工必須能夠彼此之間自信而清晰地溝通。以下是為何交流如此重要的快速入門 如果您的...