我们编写的代码都属于高级语言,比如OC JAVA python C C++ JavaScript 等,计算机是不能理解这些高级语言的,他只能理解机器语言,所以要把高级语言转换成机器码。转换方式有两种:编译
和 解释
编译型语言
使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台的硬件执行的机器码,并包装成该平台所能识别的可执行性程序格式。以后再运行直接使用编译结果即可。现有的C 、 C++ 、OC 等都属于编译型语言
总结
1.一次性的编译成平台相关的机器语言,运行时脱离开发环境,运行效率高;
2.与特定平台相关,一般无法移植到其他平台;
解释型语言
使用专门的解释器对源代码逐行解释成特定平台的机器码并立即执行。因此某一平台只要提供相应的解释器即可运行该程序 Python JavaScript PHP Ruby Java 等就是解释型语言
总结
1.解释型语言每次运行都需要将源代码解释成机器码执行,效率低下;
2.只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植;
动态语言
运行时代码可以通过某些条件改变自身结构,比如:Objective-C、JavaScript、PHP、Python、C#
静态语言
与动态语言相对应的,运行时结构不可变的语言就是静态语言比如:Java、C、C++
补充:
动态语言和动态类型的语言完全不同的两个概念。动态类型语言是指在运行期间才去做数据类型检查的语言,说的是数据类型,动态语言说是运行时改变结构,说的是代码结构。
动态类型语言的数据类型不是在编译阶段决定的,而是把类型绑定延后到了运行阶段。
主要语言:Python、JavaScript、swift、PHP
静态类型语言
静态类型语言是在编译期间确定的,编写代码的时候要明确变量的数据类型。
主要语言:Java、Objective-C、C
因此
OC 属于编译型语言 & 动态型语言 & 静态类型语言
swift 属于编译型语言 & 动态型语言 & 动态类型语言
Java 属于解释型语言 & 静态型语言 & 静态类型语言
JavaScript 属于解释型语言 & 动态型语言 & 动态类型语言