Python学习笔记二(理解程序运行)

编程语言对比

语言概述

Python学习笔记二(理解程序运行)

语言抽象程度越高,开发的效率越高,但执行的效率却越来越低,这似乎是一对矛盾,高级编程语言追求开发效率,就得调用各种封装好的库与组件,用增加处理时间的代价来提高效率。现在硬件发展很快,牺牲些许时间换取高效更符合人们的需求。

低级语言

  • 机器型语言

    直接运用CPU内部工作指令来操作二进制代码0和1,只有硬件才能读懂,对于人类太烧脑

  • 汇编语言

    将机器语言转换成了符号语言,执行效率高无法移植,可读性差,对人类不够友好

高级语言

  • 编译型语言:C/C++

    高效可移植可重用且友好,解决了程序员重复搬砖烧脑的痛点

  • 解释型语言:Python,Perl,Ruby

    面向对象可移植,开发效率高且灵活,让程序员脑洞大开,没有做不到,只有想不到

程序运行流程

  • 机器语言:二进制源代码直接扔给CPU处理

 Python学习笔记二(理解程序运行)

  • 汇编语言:通过编译器转换成机器码再给CPU处理,加了一道工序

    Python学习笔记二(理解程序运行)

  • 编译语言:通过编译器转换成机器码再给CPU处理,加了一道工序

    Python学习笔记二(理解程序运行)

  • 解释语言:先用编译器转换成字节码,再用专用的解释器边解释边执行转成机器码,再交给CPU处理,多了两道工序,效率低了些。

    Python学习笔记二(理解程序运行)

◇ 术语解读

source code

源代码:即程序猿纯手工敲打没有加工过的代码。Python以.py格式保存

complier

编译器:将源代码编译成字节码

bytecode

源代码被编译之后的代码称为字节码,再次运行程序无需重复编译,Python中字节码一般是.pyc格式
字节码主要是为了实现软硬环境无关,实现可移植/跨平台,不同系统上字节码是一样的,但是根据平台不同,编译所生成的机器码有区别
字节码是源代码和机器码的中间形态

interpreter

解释器/虚拟机将字节码转译为可以直接执行的机器码,Python使用PVM(Python Virtual Machine),Java使用JVM(Java Virtual Machine)

native code

机器码:虚拟机/解释器能够读懂的语言

processor

CPU/处理器最终读取机器码执行程序

◆ 特点总结

  • 机器语言是二进制执行代码,无需“翻译”过程,CPU处理器可以直接读取,其他语言最终都需要统一编译为机器语言执行

  • 汇编语言需要一次编译过程,硬件相关无法移植,抽象程度低/可读性差,执行效率很高/开发效率较低

  • 编译语言需要一次编译过程,硬件无关可移植,抽象程度高/可读性强,执行效率较高/开发效率较高

  • 解释语言需要两次“翻译”,硬件无关可移植,抽象程度超高/可读性强,执行效率较低/开发效率很高


anzhihe安志合个人博客,版权所有丨 如未注明,均为原创 丨转载请注明转自:https://chegva.com/626.html | ☆★★每天进步一点点,加油!★★☆

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注