编程语言和翻译工具

编程语言有哪些?什么是解释器、编辑器、编译器、开发工具?

python是什么?python的IDE是什么?使用pycharm可以运行程序的原理是什么?

目录

编程语言

机器语言

汇编语言

高级语言

python语言和它的解释器

python语言

python解释器

python解释器运行原理

Python IDE 介绍


编程语言

计算机编程语言主要分为三类:机器语言(第一代编程语言)、汇编语言(第二代编程语言)、高级语言。

机器语言

计算机的硬件作为一种电路元件,它的输出和输入只能是有电或者没电,也就是所说的高电平和低电平,所以计算机传递的数据是由“0” 和“1”组成的二进制数,所以说二进制的语言是计算机语言的本质。计算机发明之初,人们为了去控制计算机完成自己的任务或者项目,只能去编写“0”、“ 1”这样的二进制数字串去控制电脑,其实就是控制计算机硬件的高低电平或通路开路,这种语言就是机器语言

不同计算机的运行环境不同,指令方式操作方式也不尽相同,所以当你在这种机器语言就有了特定性,只能在特定的计算机上执行,而一旦换了机器就需要重新编程,例如ARM、DSP、51等不同处理器,电路元件的构成决定了指令方式,机器语言无法跨处理器执行。

汇编语言

为了克服机器语言编写和维护的复杂性,解决机器语言无法跨平台移植,人们把机器语言抽象成一系列直观的,比较容易记住的汇编指令,一条汇编指令可以完成诸如内存读写、算术逻辑运算、栈维护、过程调用和返回等等操作,并通过汇编器将汇编指令翻译成机器指令。

  

使用与实际意义相近的缩略词代替指定动作,例如逻辑运算符ADD、SUB,数据传送指令符MOV,设备交换数据指令IN/OUT。

汇编指令系统庞大,因而需构建指令系统体系,其指令数量庞大,格式复杂,可记忆性差等。指令中最难的是指令所支持的寻址方式,其实质就是指令中操作数如何获取,对于处理器而言,就是如何找到他所需的数据。

汇编语言仍是面向机器的语言,很难从其代码上理解程序设计意图,设计出来的程序不易被移植,故不像其他大多数的高级计算机语言一样被广泛应用。所以在高级语言高度发展的今天,它通常被用在底层,通常是程序优化或硬件操作的场合。汇编语言作为机器语言之上的第二代编程语言,它也有很多优点:

  1. 可以轻松的读取存储器状态以及硬件I/O接口情况

  2. 编写的代码因为少了很多编译的环节,可以能够准确的被执行

  3. 作为一种低级语言,可扩展性很高 

不论是机器语言还是汇编语言都是面向硬件的操作,它们对于机器是依赖的,不同的设备对应的编写方式可能不同。然而,高级语言是面向用户的语言,我们只要编写好程序内容,通过编译或者解释程序,就可以对机器进行操作。这里提到的编译或者解释程序就是一个翻译工具,将人类看懂的语言翻译成机器能看懂的东西。

高级语言

高级语言包括编译型语言和解释型语言,又主是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。编写的程序称之为源程序。如javacc++C#pascalpythonlispprologFoxPro

编译型语言就是指在我们把程序写完之后,通过编译器(预处理、编译、链接)代码编译成可执行文件,即二进制文件,通过执行该二进制文件来执行程序。例如C、C++。

 编译器工作前一般会调用预处理器,将源代码注释清除、宏定义等。

  1. 预处理器:将.c 文件转化成 .i文件,使用的gcc命令是:gcc –E,对应于预处理命令cpp;
  2. 编译器:将.c/.h文件转换成.s文件,使用的gcc命令是:gcc –S,对应于编译命令 cc –S;
  3. 汇编器:将.s 文件转化成 .o文件,使用的gcc 命令是:gcc –c,对应于汇编命令是 as;
  4. 链接器:将.o文件转化成可执行程序,使用的gcc 命令是: gcc,对应于链接命令是 ld;
  5. 加载器:将可执行程序加载到内存并进行执行,loader和ld-linux.so。

链接器的作用是,对于多源文件程序,每个源文件被汇编为目标文件(Object File),链接器负责把这些目标文件,以及相关的库文件链接到一起,形成可执行文件。

目标文件由若干段组成,包括代码段、数据段和未初始化数据段等。链接时,链接器ld将打破目标文件内部结构,把所有代码段都提取出来,共同组成最终可执行程序的代码段;把所有数据段提取出来,组成最终可执行程序的数据段;未初始化的数据段也做同样操作。

解释型语言相对于编译型语言存在的,源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。比如Python/JavaScript / Perl /Shell等都是解释型语言。

解释器(英语:Interpreter),又译为直译器,是一种电脑程序,能够把高级编程语言一行一行直接转译运行。解释器不会一次把整个程序转译出来,只像一位“中间人”,每次运行程序时都要先转成另一种语言再作运行,因此解释器的程序运行速度比较缓慢。 

解释型语言可以跨平台执行,只要这个平台有对应的解释器就行,毕竟真正执行程序的是解释器而不是平台系统。

编译器和解释器,输出的不同是这两者最大的区别,一个会输出用于执行的文件(一个二进制数据流),另一个只会输出运行的结果。

python语言和它的解释器

python语言

Python由荷兰数学计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,Python的底层是用C语言写的,很多标准库和第三方库也都是用C写的,运行速度非常快。Python丰富的标准库,提供了适用于各个主要系统平台的源码机器码

可扩展性、可扩充性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。

面向对象:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。


python解释器

python解释器常见的有以下几种:

CPython

当我们从Python官方网站下载并安装好Python 3.11后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

IPython

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。

CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

PyPy

PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。

Jython

Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

IronPython

IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

python解释器运行原理

Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。基于C的Python编译出的字节码文件,通常是.pyc格式。

Python IDE 介绍

python IDE常见的有已以下几种:

  • Pycharm
  • Microsoft Visual Studio 简称 VS。
  • Visual Studio Code 简称 vscode
  • Eclipse
  • Intellij Idea

PyCharm是由JetBrains公司打造的一款Python IDE,。PyCharm作为一款功能丰富的文本编辑器,在使用前需要先配置python解释器来解析 Python 语法。

PyCharm拥有一般IDE具备的功能,比如, 调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。另外,PyCharm还提供了一些很好的功能用于Django框架下的专业Web开发,同时支持Google App Engine,更酷的是,PyCharm支持IronPython

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值