高级语言

了解下语言的分类,以及主要的使用场合;

编译型和解析型

任何语言都有自己的一套语法,且必须被翻译成机器语言,计算机才能执行;
翻译的方式有两种:一个是编译,一个是解析;

1.编译型语言

运行前直接编译成CPU能执行的二进制机器码(所以运行速度快);

  1. 代码可以加密,只需要把编译后的机械码(例如exe文件)发布出去,不用发布源代码;
  2. 编译好的exe文件可在相对应的平台上运行,可移植性差,但是运行效率高;
    1
    C、C++、Objective-C、swift

2.解析型语言

代码在执行时会一行一行地翻译成CPU能理解的机器码(所以运行速度慢);

  1. 不能加密,必须发布源码;
  2. 不能脱离解析器运行,但是跨平台性好,只需要提供特定解析器(虚拟机)即可;
    1
    Python、Ruby、JavaScript、PHP、Erlang、Perl
  • 区别解释型语言的主要特征并不在于是否能编译它们,而是在于编译器是否是语言运行时库的一部分,即是否有能力(并且轻易地)执行动态生成的代码。

强类型和弱类型

区别:不同变量进行变量赋值时,是否需要进行强制转换;

1.强类型语言: 需要进行显式(强制)转换;

1
Java、C#、Python、Object-C、Ruby

2.弱类型语言:不需要显式转换

1
JavaScript、PHP

动态类型和静态类型

区别:类型是运行时检查,还是编译期检查;

1.动态类型语言:

变量本身类型不固定的语言,同一个变量可以赋不同类型的值;

1
Python、Ruby、Erlang、JavaScript、swift、PHP、Perl

2.静态类型语言:

类型固定的语言,在定义的时候必须指定变量类型,类型不匹配会报错;

1
C、C++、C#、Java、Object-C