解释器与编译器都是什么?

哈喽~我是北方素素。

在看书的时候,我发现了一些对编译器和解释器的解释,觉得很通俗易懂,所以在这里转载给大家,希望对大家的学习有所帮助。

Tip:可以在群文件里找到这本电子书。

本文的以下内容出自《Python for Informatics(中文版)》。

Python是一种高级语言,旨在较为方便地让人类进行读写,让计算机进行读取与处理。其他高级语言包括:Java、C++、 PHP、Ruby、Basic、Perl以及JavaScript等。CPU里的硬件并不能理解任何一种高级语言。 

CPU能理解的语言称之为机器语言。机器语言非常简单,坦白讲,编写起来非常无聊。它全部由0和1组成: 

01010001110100100101010000001111 

11100110000011101010010101101101 ... 

虽然机器语言表面看起来很简单,只有0和1,但它的语法比Python复杂得多。所以,很少有程序员用机器语言编程。相反, 借助各种翻译器,程序员可以编写像Python或JavaScript这样的高级语言,这些翻译器会将程序转换成机器语言,再交由 CPU执行。 

因为机器语言依附于计算机硬件,所以不能在不同类型硬件之间移植。使用高级语言编写的程序可以在不同的计算机之间移植,通过在另一台计算机上使用不同的编译器,或者重新编译代码,生成一个适合这台计算机的机器语言版本。 

编程语言的翻译器大体可分为两类:(1)解释器 与 (2) 编译器。

解释器读取程序员所写程序的源代码,解析源代码并实时解释指令。Python是一种解释器。当交互式执行Python时,输入一 行Python语句,Python就会立即处理它,并做好准备让我们输入下一条语句。

Python语句中有一些地方会告诉Python,你想要Python记住等下会用到的一些数据。这时就需要为数据挑选一个名称来记住它,这样之后就可以通过这个名称来获取对应的数据了。我们使用变量(variable)来代表存储的数据。 

>>> x = 6 

>>> print x 6 

>>> y = x * 7 

>>> print y 42 

>>> 

在这个例子中,我们让Python记住数值6,并将6赋值给变量x,以便后续使用。为了确认Python已经记住这个数值,使用print命令打印变量x的值。接下来,我们让Python获取变量x的值并乘以7,然后将结果赋给新变量y。最后,打印出当变量y的当前值。

一次输入一行命令,Python将其视为一个语句序列,后面的语句可以获取前面语句的数据。四句组成的段落以一种有逻辑的和有意义的顺序编写,这就是我们写出的第一个简单的多行程序。 

如上所示,解释器的本质是进行交互式对话。编译器需要将整个程序放在一个文件中,将高层次的源代码翻译成低层次的机器语言,然后编译器将生成的机器语言放到一个文件中以便后续执行。 

如果你使用Windows系统,这些可执行的机器语言程序通常带有“.exe”或“.dll”后缀,分别代表这是“可执行的”和“动态可加载库”。在Linux和Mac中没有这样的后缀来明确表示文件是否是可执行的。 

如果在文本编辑器中打开一个可执行文件,满眼望去完全看不懂:

^?ELF^A^A^A^@^@^@^@^@^@^@^@^@^B^@^C^@^A^@^@^@\xa0\x82 ^D^H4^@^@^@\x90^]^@^@^@^@^@^@4^@ ^@^G^@(^@$^@!^@^F^@ ^@^@4^@^@^@4\x80^D^H4\x80^D^H\xe0^@^@^@\xe0^@^@^@^E ^@^@^@^D^@^@^@^C^@^@^@^T^A^@^@^T\x81^D^H^T\x81^D^H^S ^@^@^@^S^@^@^@^D^@^@^@^A^@^@^@^A\^D^HQVhT\x83^D^H\xe8 .... 

机器语言的读写并不容易,好在借助解释器和编译器,能够使用Python或C这样的高级语言编写程序。

通过对解释器与编译器的讨论,你应该对Python解释器本身有了一些了解。那它又是用什么语言写的?是用汇编语言写的吗?当我们输入“python”,究竟发生了什么? 

Python的解释器是用C语言编写的。你可以访问http://www.python.org网站,查看Python解释器的源代码,如有你有意愿改造这些源代码也是可以的。Python本身就是一个程序,它被编译成机器代码。当你(或硬件供应商)在计算机上安装了 Python,实际上是将一份编译好的Python程序的机器代码拷贝到你的计算机系统。

要成为一名Python程序员,你知道这些还远远不够。但在一开始,花一些时间解释这些细节问题,还是值得的。

作者:北方素素

https://www.bilibili.com/read/cv289714/

出处: bilibili

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入...
    小小不懂11阅读 3,404评论 2 30
  • 文/Bruce.Liu1 1.Python前世今生 1.1.Python历史 Python的创始人: Guido ...
    BruceLiu1阅读 11,766评论 3 120
  • 前段时间,一则“女博士被骗85万”的新闻迅速窜红网络,上了百度热搜,并被新浪、微博、网易、腾讯等媒体纷纷转载。事情...
    夜半鸣阅读 196评论 0 1
  • 意犹未尽,是读完《呼兰河传》的感觉。 一个人,怎么可以,既能那样入骨的描写那种让我一度看不下去的凄惨的现实生活,《...
    尚小迪阅读 1,728评论 10 30
  • 妈妈年前赶着春运来了。她平时给哥哥看孩子,根本出不来。但是她是一个喜欢外出,喜欢旅游的人,只不过现在年老,又没钱,...
    山东大妞0525阅读 256评论 0 0