编程语言的分类

  1. 强类型定义语言
  2. 弱类型定义语言
  3. 动态类型语言
  4. 静态类型语言
  5. 编译型语言
  6. 解释型语言
  7. 脚本语言
分类 定义 举例
强类型定义语言 强类型定义语言又称强类型语言,强类型语言要求变量严格符合定义,所有变量都必须先定义后使用。一旦一个变量被定义为某一种数据类型后,如果不经强制转换则永远都是这个数据类型。 Java,.NET,Python,C,Go,Kotlin,Switf。
弱类型定义语言 与强类型相反,弱类型的数据类型可以被忽略,一个变量可以赋不同数据类型的值。 JavaScript,VB,VBScript。

有部分人对Python有所误解,误解Python为弱类型语言

我们在Python中使用字符型和整数型相加后输入,程序报错unsupported operand type(s) for +: ‘int’ and 'str(+:“int”和“str”的操作数类型不受支持)
从中很明显能感觉到Python对类型的严格定义,所有Python并不是一个弱类型语言。在弱类型中是允许字符和整数型相加

从上图可以看出浏览器中的控制台内置的JavaScript就是一门弱类型语言。
强类型语言在速度上可能略逊色于弱类型语言,但强类型语言带来的严谨性能够有效的避免许多错误。

分类 定义 举例
动态类型语言 动态类型的语言会在运行期间再去做数据类型检查,动态类型语言的好处就是不用给变量指定任何数据类型,该类型的语言会的变量会在第一次被赋值时在内部自动将数据类型记录。 JavaScript,Ruby,VBScript,Python,Swift
静态类型语言 编译语言在编写代码时就检查变量的数据类型,使用静态类型语言必须要先声明变量的数据类型才能使用变量。 C/C++,C#,Java,Go,Kotlin

总的来说动态语言更好用,不仅能减少代码量,让代码看上更加简洁,还更接近于日常语言。想到什么用什么,不用事先声明。
“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!类型安全代码指访问被授权可以访问的内存位置。例如,类型安全代码不能从其他对象的私有字段读取值。它只从定义完善的允许方式访问类型才能读取。

分类 定义 举例
编译型语言 编译型语言有编译器,编译型语言会在运行之前将所有代码都转换成二进制机器码,相当于全文翻译 C/C++,C#,Swiper,Go,Java,Kotlin
解释型语言 解释型语言有解释器,解释型语言会在代码运行时一边解释一边运行,相当于实时翻译 Python,JavaScript,VBScript

对于运行效率来说,编译型是高于解释型语言的,因为编译型语言在执行时不用经过解释,可以直接运行。但是对于多平台的兼容性,编译型语言就不如解释型语言的兼容性强。所以编译型语言常用于大型项目,或者偏底层项目,而解释型语言则较多用于服务器等需要兼容性强的地方。

分类 定义 举例
脚本语言 脚本语言是一个很另类的分类,很多语言即是脚本语言,同时又是编程语言,脚本语言要满足可以以文字形式存在,类似于一种命令,常见的脚本语言,比如Python,JavaScript,VBScript等都是动态编译型语言 Python,JavaScript,VBScript,Ruby

编程语言的各种类型详解 - 程序员小知识1相关推荐

  1. 详解程序员驻场开发服务的具体流程

    近年来,随着大数据.云计算等高科技技术的高速发展,越来越多的企业为了提高市场竞争力都会有软件开发的需求.有些企业会选择全部招聘自己的软件人才进行项目开发,而有的企业为了控制人力成本.灵活发展公司业务, ...

  2. python变量类型-Python 变量类型详解

    变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整 ...

  3. python指定变量类型_Python 变量类型详解

    变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整 ...

  4. C++中size_type类型详解

    介绍 是和string类类型和vector类类型定义相关的类型,用以保存任意string对象或vector对象的长度,标准库类型将size_type定义为unsigned类型 string抽象意义是字 ...

  5. python动态类型的坑_python进阶教程之动态类型详解

    动态类型(dynamic typing)是Python另一个重要的核心概念.我们之前说过,Python的变量(variable)不需要声明,而在赋值时,变量可以重新赋值为任意值.这些都与动态类型的概念 ...

  6. 自定义类型详解:结构体(内存对齐、位段) + 枚举 + 联合

    目录 一.结构体 1.特殊的声明 2.结构体自引用 3.结构体变量的定义和初始化 4.打印结构体 二.==结构体内存对齐== 1.内存对齐 结构体嵌套如何求 为什么存在内存对齐? 2.修改默认对齐数 ...

  7. 国内Linux认证类型详解

    国内Linux认证类型详解  提供多层次服务方案的拓林思 Linux认证介绍 作为Linux行业的佼佼者,拓林思推出的TLCE认证是世界上最具有权威性的Linux认证之一. TLCE认证简介 TLCE ...

  8. MySQL字段类型详解

    MySQL字段类型详解 2009-01-05 09:25 来源:泡菜博客 0个评论 分享文章 A- A+ 百度权重查询 词库网 网站监控 服务器监控 SEO监控 Swift编程语言教程 MySQL支持 ...

  9. (转)C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解

    原文链接:https://www.cnblogs.com/landeanfen/p/5501487.html 阅读目录 一.void无返回值 二.IHttpActionResult 1.Json(T ...

最新文章

  1. 【73套】Epic Stock Media配乐音效素材合集包
  2. JAVA Future
  3. MongoDB使用小结:一些常用操作分享
  4. 2019寒假作业二:PTA7-1币值转换
  5. 一个完备的要素SHAPE裁剪函数
  6. javaweb学习总结(二十五):jsp简单标签开发(一)
  7. 螺钉装弹垫平垫机器人_【经验总结】什么时候用平垫,什么时候用弹垫?
  8. 关于将vrep和matlab或者python结合的两种方法的比较
  9. x86 服务器常见问题和故障诊断流程
  10. iOS中分段控制器与UIScrollView结合使用
  11. 如何测试光纤系统中的插入损耗
  12. 链游玩家寻找新一代武侠小说掌门人,签约青年武侠作家常博涵
  13. qt实现windows系统下录屏功能
  14. (Arduino)蓝牙和 APPinventor实现一键SOS求救(一)
  15. Html设置表格撑开,【CSS】表格或div被撑开的解决办法
  16. tomcat日志格式转化为json
  17. 第1章 开篇-为什么要做CI/CD?
  18. Pytorch遇到权重不匹配的问题
  19. 计算机新生导论感言,大学生感言与寄语新生
  20. pgsql之create user与create role的区别

热门文章

  1. 计算机硬件保留内存,win7系统电脑给硬件保留内存太多的解决方法
  2. [美文][悟道]《无根树》 -- 张三丰祖师
  3. 计算机专业四大是指哪四所学校,我国社会广泛认可的“京城四大名校”,你知道都是哪四所大学吗!...
  4. python字典操作练习题
  5. 社会主义核心价值观PPT模板
  6. linux smartgit客户端,SmartGit 7.1.3 发布下载,Git 客户端
  7. 利用js点击小眼睛图片实现转换明文暗码的效果
  8. 移除 WordPress 分类链接的前缀
  9. 一文学懂过滤器和监听器
  10. 自定义video播放器的常用的事件。