• 编译型和解释型
  • 编译型和解释型各有利弊,随着设计技术与硬件不断发展,编译型与解释型两种方式的界限正在不断变得模糊。

类型

编译型:一次把所有代码转换为机器语言解释型:脚本语言
执行过程
  • 编译器(Compiler):一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码
  • 可执行代码:编译之后就会直接生成一个可执行文件,我们就可以直接运行了
  • 目标文件(Object file):代码分散在各个源文件中,作为不同的模块来组织。这时编译各个文件时就会生成目标文件
  • 链接程序(Linker):负责链接多个目标文件的程序
  • 链接(Link):负责链接多个目标文件的程序得到可执行文件
  • 在程序运行的前一刻,还只有源程序没有可执行程序
  • 而程序每执行到源程序的某一条指令,解释程序将源代码转换成二进制代码以供执行
  • 总言之就是不断的解释、执行、解释、执行.....
  • 预编译:执行之前已经预先进行一次,生成的代码是介于机器码和Java/C#源代码之间的中介代码
  • 执行:运行的时候则由JVM/(Java/C#的虚拟机平台,可视为解释器)解释执行
例子C/C++、Pascal/Object Pascal(Delphi)、VBJava、JavaScript、VBScript、Perl、PythonJavaScript、Python、VBScript
用途开发操作系统、大型应用程序、数据库系统网页脚本、服务器脚本及辅助开发接口 
特点程序执行速度快,同等条件下对系统要求较低对速度要求不高、对不同系统平台间的兼容性有一定要求的程序执行起来比“纯解释型”程序要快许多
  •  强类型定义语言和弱类型定义语言
  • 变量类型转换的难易程度
强类型定义语言(类型安全的语言)弱类型定义语言(类型不安全的语言)
一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了
  • 数据类型可以被忽略的语言
  • 一个变量可以赋不同数据类型的值
Python、JavaVBScript
在速度上可能略逊色于弱类型定义语言 
严谨性能够有效的避免许多错误 
  • 动态类型语言和静态类型语言
  • 动态类型语言是指在运行期间才去做数据类型检查的语言,说的是数据类型
动态类型语言静态类型语言
  • 运行期间才去对数据类型进行检查
  • 不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来
  •  
  • 编译期间对数据类型进行检查
  • 在写程序时要声明所有变量的数据类型

Python、Ruby

VBScript

C/C++

C#、Java

 

  • 动态(编程)语言和静态(编程)语言
  • 动态(编程)语言:说的是运行时改变结构,说的是代码结构
  • 动态语言静态语言
    在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。运行时结构不可变的语言就是静态语言
    Object-C、C#、JavaScript、PHP、Python、Erlangjava、C\C++
      

学习完以上内容,可知python是动态编程语言、脚本语言(解释型语言)、动态类型语言、强类型定义语言~~~

 

更多推荐

python属于什么类型的语言