欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python的运行过程剖析·编程语言分类

程序员文章站 2022-10-04 18:51:18
总结: 编译型: 说明:与汇编语言类似,都有一个编译程序将源代码编译成硬件可执行的二进制代码 特点:执行速度快、同等情况下对系统要求低,适合于开发大型应用程序、数据库系统、操作系统等 代表:C/C++、VB 解释型: 说明:有个解释程序外壳,对源代码进行不停的编译和解释,省略了“编译”环节,修改调试 ......

总结:

  1. 编程语言的分类
    • 编译型:
      • 说明:与汇编语言类似,都有一个编译程序将源代码编译成硬件可执行的二进制代码
      • 特点:执行速度快、同等情况下对系统要求低,适合于开发大型应用程序、数据库系统、操作系统等
      • 代表:c/c++、vb
    • 解释型:
      • 说明:有个解释程序外壳,对源代码进行不停的编译和解释,省略了“编译”环节,修改调试方便
      • 特点:修改源代码比较方便,可移植性强,但是运行速度相比较而言就慢了一点,适合于开发网页脚本、服务器脚本以及辅助开发接口等对速度要求不高,且对不同系统之间的兼容性有要求的程序。
      • 代表:python、shell、javascript、vbscript、java、perl 
    • 强类型:
      • 说明:强制定义数据类型的语言,不予许隐式转换(不同类型之间的比较时,会自动转换变量的数据类型的一种过程)
      • 代表:python、shell、java
    • 弱类型:
      • 说明:数据类型可以被忽略的语言,允许隐式转换
      • 代表:javascript、vbscript
    • 动态型:
      • 说明:在程序执行过程中检查数据类型的语言
      • 代表:python、shell、ruby,javascript
    • 静态型:
      • 说明:在编译期间进行数据检查,且写程序时必须声明所有的变量
      • 代表:java、c
  2. python的运行过程剖析
    • 主module文件模块入口
      • python会把py结尾的文件视为module,我们可以在代码中定义或者调用模块,运行python的时候,这些module中,有一个主module,也就是程序运行的入口
    • 编译 
      • 在启动python解释器后,xx.py文件会被编译成一个字节码对象pycodeobject   其实就和java的class对象一样,有人会好奇编译过后不是生成pyc文件吗?这里解释一下,在python的世界里一切皆对象,函数是对象,类型是对象,类也是对象,甚至编译出来的字节码对象也是对象,而pyc文件只是pycodeobject在硬盘上的表现形式
    • pyc文件
      • 内存中的字节码对象pycodeobject在文件运行完成后,会写入到对应xx.pyc文件中去,目的为了让第二次访问该xx.py的时候不用再次进程编译,直接调用pyc文件,当然,python会事先判断源文件与pyc文件修改日期的最新程度,来确定是否直接调用还是重新编译。