心蓝的博客 心蓝的博客
首页
  • 零基础

    • python零基础入门
  • 专项

    • 正则表达式
  • web框架

    • django框架
    • drf
技术
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

心蓝

人生苦短,我用python
首页
  • 零基础

    • python零基础入门
  • 专项

    • 正则表达式
  • web框架

    • django框架
    • drf
技术
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • 编程基础

    • 零基础能学Python吗?
    • 编程语言是什么?
    • 编译型与解释型编程语言区别
      • 编译型
      • 解释型
      • 关于Python
      • 总结
    • python是什么?
    • 学python能干什么?
  • python开发环境搭建

  • 基本数据类型

  • 程序流程控制

  • 函数与代码复用

  • 面向对象

  • 模块和包

  • 文件IO操作

  • python零基础入门
  • 编程基础
心蓝
2022-08-12
目录

编译型与解释型编程语言区别

# 编译型与解释型编程语言的区别

前面我们知道了高级编程语言计算机是不能直接识别的,需要通过翻译成机器码然后交由计算机执行。

根据不同的翻译机制,又分为编译型和解释型。

注意,翻译源代码是一个非常复杂的过程,大致包括词法分析,语法分析,语义分析,性能优化,目标代码生成等五个步骤。在初学阶段没有必要研究这个,如果感兴趣可以阅读《编译原理》一书。

接下来我会使用通用的语言和类比的方式讲解编译和解释。

# 编译型

如果把高级编程语言编写的代码比作一篇英文文章,计算机比作一个不懂英文的人。那么,为了让这个人阅读这篇文章,可以找一名懂英文的翻译将这篇文章整体翻译成中文版。然后他就可以随时随地的阅读这篇翻译后的文章。

编译的过程其实跟上面翻译的过程很像。

编译型编程语言就是通过编译器(英文翻译)将源代码(编译型编程语言编写的程序,类比英文文章)编译(翻译)成可执行文件(翻译后的文章)。

1658829684074

可执行文件可以在任何支持的平台上,脱离编译环境运行。因为可执行程序就是机器码,所以它的执行效率高。但是编译型编程语言一般是不能跨平台的,也就是说不能在不同的操作系统间任意切换, 并且修改程序也非常不方便,只要源代码修改了,都需要重新编译生成新的可执行文件。C语言,C++就是典型的编译型编程语言。

# 解释型

接上面的类比,翻译这篇英文文章,还可以通过随身电子词典,逐字逐句的边看边翻译。

解释型编程语言就是通过解释器(电子词典)将源代码(解释型编程语言编写的程序)逐行解释成机器码,然后交由计算机执行。

1658904942703

解释型编程语言编写的程序离不开解释器,因为是边翻译边执行所以相对效率不高,但是修改起来非常方便,只要源代码修改了,下一次执行就是修改后的代码。解释型编程语言大都可以跨平台运行,这归功于解释器。Python,php就是典型的解释型编程语言。

# 关于Python

Python属于典型的解释型编程语言,支持所有常见的平台,例如Linux,Windows,Mac OS, Android, FreeBSD等等,只要在不同的平台上安装了对应的解释器,代码就可以正确运行,一般不需要担心任何兼容性问题,真正做到了"一次编写,到处运行"。

另外,关于执行效率,你可能会看到很多人说python的执行效率差。那只是相对而言,随着硬件性能的提升,和很多优化手段,python在某些时候执行效率甚至会超过c语言,所以忘记这个效率问题,全心全意的学习python吧。

# 总结

总结编译型编程语言与解释型语言的区别如下表:

类型 原理 优点 缺点
编译型语言 通过专门的编译器,将所有源代码一次性转换成特定平台(Windows、Linux 等)执行的机器码(以可执行文件的形式存在)。 一次编译,多次运行,脱离编译环境,并且运行效率高。 可移植性差,不够灵活。
解释型语言 由专门的解释器,根据需要将部分源代码临时转换成特定平台的机器码。 跨平台性好,通过不同的解释器,将相同的源代码解释成不同平台下的机器码。 一边执行一边转换,效率不搞。

本文完,感谢你的耐心阅读,如有需要可加我微信,备注「博客」并说明原因,我们一起进步,下次见。

上次更新: 2024/07/17, 16:18:58
编程语言是什么?
python是什么?

← 编程语言是什么? python是什么?→

最近更新
01
requests让接口测试如此简单 原创
03-31
02
最简明的python正则教程
03-30
03
pycharm激活码
12-30
更多文章>
Theme by Vdoing | Copyright © 2019-2025 心蓝
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式