侧边栏壁纸
博主头像
小白博主等级

just do it!

  • 累计撰写 60 篇文章
  • 累计创建 77 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

编程语言的分类

小白
2019-10-19 / 0 评论 / 0 点赞 / 224 阅读 / 1,052 字

编译型语言和解释型语言

由于计算机不可以直接理解高级语言,只能理解机器语言,所以就需要将高级语言翻译成机器语言供计算机理解,翻译的方式有两种:编译&解释。两种方式的翻译只是时间不同

  • 编译型语言:即需通过编译器将源代码编译成机器码,之后才能执行的语言。优点:编译器一般会有预编译的过程对代码进行优化,因为编译只做一次,运行时不需要编译,所以编译型语言的执行效率高。可以脱离语言环境独立运行。缺点:如果代码某个模块需要改动,需要重新进行编译,编译时根据对应的运行环境生成对应的机器码,不同操作系统之间一直就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。代表语言:C、C++、Pascal、Object-c、swift等。
  • 解释性语言:即程序不需编译,在程序运行的时候才逐行翻译。因此每执行一次就绪翻译一次,效率低。优点:良好的平台兼容性,任何环境中都可运行(前提安装了解释器/虚拟机),灵活,修改代码时直接修改就可以,可以快速部署,不用停机维护。代表语言:JavaScript、python、Erlang、PHP、Perl、Ruby等。
  • 混合型语言(半编译型语言):编译时不是直接编译成机器码,而是中间码,需要依靠终中间语言运行库(不同语言不同,Java是虚拟机、C#是.NET平台),代表语言:Java、.NET等。

动态结构语言和静态结构语言

主要针对点:运行时是否可以改变代码结构。

  • 动态结构性语言:运行时可以改变代码结构的语言:如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除后世其他结构上的变化,即运行时代码可以根据某些条件改变自身结构,主要动态结构语言:Object-c、C#、JavaScript、PHP、Python、Erlang等。
  • 静态结构性语言:与动态结构性语言相对应,运行时代码结构不可以改变,代表语言:Java、C、C++。

动态类型语言和静态类型语言

主要针对数据类型检查的时间问题。

  • 动态类型语言:在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量时被赋值的那个数据的类型。代表语言:Python、Ruby、Erlang、JavaScript、Swift、PHP、SQL、Perl等。
  • 静态类型语言:编译时变量的数据类型便可确定,多数静态类型语言要求在使用变量之前必须声明数据类型。代表语言:C、C++、Java、Object-c等。

通常情况下,解释性语言是动态类型语言,编译型语言是静态类型语言,但也不全是,Swift是编译型语言但也是动态类型语言,C# 和Java是解释性语言也是静态类型语言。

强类型语言和弱类型语言

  • 强类型语言:变量一旦被指定某个数据类型,如果不进行强制类型转换,则该变量永远是这个数据类型。代表语言:Java、C#、Python、Object-c、Ruby。
  • 弱类型语言:数据类型可以被忽略,一个变量可以赋不同数据类型的值。代表语言:JavaScript、PHP、C、C++等。
    b0aeb7ffd1667b9162e5329154d43777_hd-300x202
    原图:https://www.zhihu.com/question/19918532
0

评论区