Python 是一门解释型的编程语言,因此它具有解释型语言的运行机制。

计算机程序,其实就是一组计算机指令集,能真正驱动机器运行的是机器指令,但让普通开发者直接编写机器指令是不现实的,因此就出现了计算机高级语言。高级语言允许使用自然语言(通常就是英语)来编程,但高级语言的程序最终必须被翻译成机器指令来执行。

高级语言按程序的执行方式可以分为编译型和解释型两种。

编译型语言是指使用专门的编译器,针对特定平台(操作系统)将某种高级语言源代码一次性“翻译”成可被该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行程序的格式,这个转换过程称为编译(Compile)。编译生成的可执行程序可以脱离开发环境,在特定的平台上独立运行。

有些程序编译结束后,还可能需要对其他编译好的目标代码进行链接,即组装两个以上的目标代码模块生成最终的可执行程序,通过这种方式实现低层次的代码复用。

因为编译型语言是一次性编译成机器码的,所以可以脱离开发环境独立运行,而且通常运行效率较高。但因为编译型语言的程序被编译成特定平台上的机器码,因此编译生成的可执行程序通常无法移植到其他平台上运行,如果需要移植,则必须将源代码复制到特定平台上,针对特定平台进行修改,至少需要采用特定平台上的编译器重新编译。

现有的 C 、C++、Objective-C、Pascal 等高级语言都属于编译型语言。

解释型语言是指使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行的语言。解释型语言通常不会进行整体性的编译和链接处理,解释型语言相当于把编译型语言中的编译和解释过程混合到一起同时完成。

可以这样认为,每次执行解释型语言的程序都需要进行一次编译,因此解释型语言的程序运行效率通常较低,而且不能脱离解释器独立运行。但解释型语言有一个优势,就是跨平台比较容易,只需提供特定平台的解释器即可,每个特定平台上的解释器都负责将源程序解释成特定平台的机器指令。解释型语言可以方便地实现源程序级的移植,但这是以牺牲程序执行效率为代价的。

编译型语言和解释型语言的对比如图 1 所示。



图 1 编译型语言和解释型语言

此外,还有一种伪编译型语言,如 Visual Basic,它属于半编译型语言,并不是真正的编译型语言。它首先被编译成 P- 代码,并将解释引擎封装在可执行程序内,当运行程序时,P- 代码会被解析成真正的二进制代码。

从表面上看,Visual Basic 可以编译生成可执行的 EXE 文件,而且这个 EXE 文件也可以脱离开发环境,在特定平台上运行,非常像编译型语言。实际上,在这个 EXE 文件中,既有程序的启动代码,也有链接解释程序的代码,而这部分代码负责启动 Visual Basic 解释程序,再对 Visual Basic 代码进行解释井执行。

Python 语言属于解释型语言,因此运行 Python 程序时需要使用特定的解释器进行解释、执行。

解释型的 Python 语言天生具有跨平台的能力,只要为 Python 提供相应平台的解释器即可。

转载于:https://www.cnblogs.com/w-s-l123/p/10366177.html

python----运行机制相关推荐

  1. Python运行机制以及pyc/pyo文件的作用

    作者:知乎用户 链接:https://www.zhihu.com/question/30296617/answer/112564303 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业 ...

  2. python 运行机制

    1.执行过程 当python运行脚本时,Python先会把.py文件中的每一条语句都编译成字节码. 如果Python有写入权限,那么Python会把这一组字节码保存为一个.pyc文件.下次运行时,如果 ...

  3. python运行方式特点_编程必修课:一文弄懂python的运行机制

    Python的维基百科说明:"是一种广泛使用的解释型,高级编程,通用型语言,具有动态类型和垃圾回收功能,能够自动管理内存使用" Python的设计哲学:优美优于丑陋,明了优于隐晦 ...

  4. codeblocks无法编译运行_编程必修课:一文弄懂python的运行机制

    Python的维基百科说明:"是一种广泛使用的解释型,高级编程,通用型语言,具有动态类型和垃圾回收功能,能够自动管理内存使用" Python的设计哲学: 优美优于丑陋,明了优于隐晦 ...

  5. python 运行pyc_python项目运行后产生__pycache__包含pyc格式文件

    一. python项目第一次运行,根目录下会生成一个__pycache__文件夹,里面的文件名和Python项目中的*.py文件名称相同,只是扩展名称不同为 *.pyc 或者 *.pyo *.pyc文 ...

  6. python运行pyc文件_Python什么情况下会生成pyc文件?

    作为Python爱好者,需要了解.py脚本的基本运行机制及特性: 在很多工作上Python的运行流程基本上取决于用户,因此源码不需要编译成二进制代码(否则无法实现大部分贴近用户的特性),而直接从源码运 ...

  7. python模块:运行机制与编写方法

    文章目录 python模块的导入机制: python模块编写方法: #mod1: def printer(x):print(x) #mod2: print('hello') n=1 #mod3: x= ...

  8. python语言程序的特点_Python语言概述及其运行机制详解

    即日起,我们将打开一个新的编程世界的大门--Python语言.Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新 ...

  9. Python语言概述及其运行机制详解

    即日起,我们将打开一个新的编程世界的大门--Python语言.Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新 ...

  10. Python list.sort()里面的key 运行机制

    list.sort() 对列表进行升序排序,会修改原来的列表变成排序完成后的列表 仅对list对象进行排序,会改变list自身的顺序,没有返回值,即原地排序; list.sort(key=None, ...

最新文章

  1. usaco Telecowmunication(网络流)
  2. 创建自定义排序用户界面
  3. mysql 数据库引擎
  4. linux 服务器安装mysql5.6
  5. 避免CONVT_NO_NUMBER的Runtime Errors
  6. 用C语言做一个横板过关类型的控制台游戏
  7. 与word2vec_Word2vec算法图解(一)
  8. ios内购二次认证服务器代码
  9. 循环斐波那契数列_第五课:斐波那契数列(第一课时)
  10. fastReport 小总结
  11. centos普通用户修改文件权限_centos6.5下修改文件夹权限和用户名用户组
  12. 医院耗材管理系统开发_4
  13. java自学网视频教程,系列教学
  14. 511 排序预演_最小数简单置前
  15. eclipse-Mars2-4.5.2安装Tomcat插件
  16. H3C交换机基本命令
  17. 把酸性体质改变成碱性体质的秘密
  18. 我的精神家园——陈皓专访
  19. 1.SPSS概述(安装与界面基本认识)
  20. C#访问网页、保存网页

热门文章

  1. 山西2019数据结构专升本_喜讯!临汾这个学院专升本通过率创新高
  2. php生成静态页面的方法,php生成静态页面的办法
  3. RSA、DSA算法原理与举例
  4. CentOS配置history记录每个用户执行过的命令
  5. mysql分表和表分区详解
  6. grails 保存图片
  7. 基于cocos2d-x引擎的游戏框架设计
  8. cygwin中访问windows分区
  9. 【WebTerminal】gotty工具
  10. 第四季-专题1-课程规划与学习方法