zoukankan      html  css  js  c++  java
  • 类型系统的作用

    安全,有了类型系统以后就可以实现类型安全,这时候程序就变成了一个严格的数学证明过程,编译器可以机械地验证程序某种程度的正确性,从而杜绝很多错误的发生。
    正面例子:Haskell、Rust
    反面例子:C,动态语言

    抽象能力,在安全的前提下,一个强大的类型系统的标准是抽象能力,能将程序中的很多东西纳入安全的类型系统中进行抽象,这在安全性的前提下又不损耗灵活性,甚至性能也能很优化。动态语言的抽象能力可以很强,但安全性和性能就不行了。
    泛型、高阶函数(闭包)、类型类、Monad、Lifetime(Rust) 属于这一块。

    工程能力,一个强类型的编程语言比动态类型的语言更适合大规模软件的构建,哪怕不存在性能问题,但是同样取决于前两点。
    对于编译器来说能清楚程序的意图,对于人来说也是如此 。一个函数或者类似的东西,说白了就是一个映射关系,Python 中这些映射关系都是没有很明显的约束,要靠约定和默契才能维持,对大型软件来说这是不行的。一个优秀的强类型的程序,很多函数都不需要文档,光看函数申明就可以了。而在安全的前提下的抽象,也是不容易引发灾难的。



    作者:匿名用户
    链接:https://www.zhihu.com/question/23434097/answer/42374622
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    html 简介
    MySQL事务等了解知识
    MySQL—navicat&&练习&&pymysql
    MySQL查询表(一)
    作业
    MySQL约束&&表关系
    mysql数据类型
    初识mysql
    dll 原理解析
    又过了一天
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10511080.html
Copyright © 2011-2022 走看看