久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python屬于解釋型語言么

瀏覽:97日期:2022-07-21 11:02:31

通常的說法,編譯代表著將一個(gè)高級(jí)語言轉(zhuǎn)化為 CPU 能執(zhí)行的機(jī)器碼。當(dāng)你編譯 C 的時(shí)候,的確是做的這樣的操作。編譯的結(jié)果是一個(gè)二進(jìn)制可執(zhí)行文件,這時(shí)你的系統(tǒng)可直接運(yùn)行這個(gè)程序。

與此相對(duì)的,解釋的意思是這樣的:程序運(yùn)行時(shí)每次讀源文件中的一行代碼,并執(zhí)行相應(yīng)的操作,就這樣一行一行的重復(fù)下去。當(dāng)然,所謂的腳本語言就是這么運(yùn)行的。

在 Python 中,源代碼會(huì)被編譯為更低級(jí)的一種形式,我們稱之為字節(jié)碼。字節(jié)碼是一串指令,和 CPU 的指令集類似。但是字節(jié)碼并不直接被 CPU 執(zhí)行,而是在虛擬機(jī)中執(zhí)行的。當(dāng)然,這里的虛擬機(jī)并不模仿整個(gè)操作系統(tǒng)的環(huán)境,只是提供了字節(jié)碼執(zhí)行的一個(gè)環(huán)境。

Python 還有一個(gè)重要的特性,就是交互式命令行。你可以敲入一行 Python 語句,然后立刻回車執(zhí)行。實(shí)際上,即使是這個(gè)過程,Python 同樣是先轉(zhuǎn)為字節(jié)碼,然后執(zhí)行。而這個(gè)交互式命令行這個(gè)特性,在很多編譯型語言里是沒有的。同樣因?yàn)闆]有顯示的調(diào)用編譯程序,很多人將執(zhí)行 Python源文件的程序叫做 Python 解釋器。

解釋型語言和編譯型語言

計(jì)算機(jī)是不能夠識(shí)別高級(jí)語言的,所以當(dāng)我們運(yùn)行一個(gè)高級(jí)語言程序的時(shí)候,就需要一個(gè)“翻譯機(jī)”來從事把高級(jí)語言轉(zhuǎn)變成計(jì)算機(jī)能讀懂的機(jī)器語言的過程。這個(gè)過程分成兩類,第一種是編譯,第二種是解釋。

編譯型語言在程序執(zhí)行之前,先會(huì)通過編譯器對(duì)程序執(zhí)行一個(gè)編譯的過程,把程序轉(zhuǎn)變成機(jī)器語言。運(yùn)行時(shí)就不需要翻譯,而直接執(zhí)行就可以了。最典型的例子就是C語言。

解釋型語言就沒有這個(gè)編譯的過程,而是在程序運(yùn)行的時(shí)候,通過解釋器對(duì)程序逐行作出解釋,然后直接運(yùn)行,最典型的例子是Ruby。

通過以上的例子,我們可以來總結(jié)一下解釋型語言和編譯型語言的優(yōu)缺點(diǎn),因?yàn)榫幾g型語言在程序運(yùn)行之前就已經(jīng)對(duì)程序做出了“翻譯”,所以在運(yùn)行時(shí)就少掉了“翻譯”的過程,所以效率比較高。但是我們也不能一概而論,一些解釋型語言也可以通過解釋器的優(yōu)化來在對(duì)程序做出翻譯時(shí)對(duì)整個(gè)程序做出優(yōu)化,從而在效率上接近編譯型語言,而不能超過編譯型語言。

此外,隨著Java等基于虛擬機(jī)的語言的興起,我們又不能把語言純粹地分成解釋型和編譯型這兩種。

用Java來舉例,Java首先是通過編譯器編譯成字節(jié)碼文件,然后在運(yùn)行時(shí)通過解釋器給解釋成機(jī)器文件。所以我們說Java是一種先編譯后解釋的語言。

內(nèi)容擴(kuò)展:

一個(gè)經(jīng)常聽見的問題,那就是:Python 是解釋型的語言嗎?它會(huì)被編譯嗎?這個(gè)問題沒有想象中那么好回答。和很多人認(rèn)識(shí)世界一樣,習(xí)慣以一個(gè)簡(jiǎn)單的模型去評(píng)判一些事物。而事實(shí)上,里面包含了很多很多的細(xì)節(jié)。

通常的說法,編譯代表著將一個(gè)高級(jí)語言轉(zhuǎn)化為 CPU 能執(zhí)行的機(jī)器碼。當(dāng)你編譯 C 的時(shí)候,的確是做的這樣的操作。編譯的結(jié)果是一個(gè)二進(jìn)制可執(zhí)行文件,這時(shí)你的系統(tǒng)可直接運(yùn)行這個(gè)程序。

與此相對(duì)的,解釋的意思是這樣的:程序運(yùn)行時(shí)每次讀源文件中的一行代碼,并執(zhí)行相應(yīng)的操作,就這樣一行一行的重復(fù)下去。當(dāng)然,所謂的腳本語言就是這么運(yùn)行的。

但事實(shí)上,上面的定義有太多的局限。一門真正的語言,為了擁有更多有用和強(qiáng)大的特性,通常采用了各種各樣的實(shí)現(xiàn)方式。我們可以將編譯理解為更通用一些:將一種語言轉(zhuǎn)化為另一種語言形式。通常來說,源語言比目標(biāo)語言要更高級(jí)一些,比如將 C 轉(zhuǎn)化為機(jī)器碼。當(dāng)然,JavaScript 8 到 JavaScript 5 的轉(zhuǎn)化也算是一種編譯。

到此這篇關(guān)于python屬于解釋型語言么的文章就介紹到這了,更多相關(guān)python是解釋型語言嗎內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 日韩在线观看毛片 | 中文字幕亚洲欧美精品一区四区 | 夜夜艹| 亚洲免费视频在线观看 | 激情久久久久 | 日韩免费视频 | 日韩在线中文字幕 | h视频免费观看 | 国产xnxx| 我爱操 | 91精品国产免费 | 欧美福利一区二区 | 欧美一级欧美三级在线观看 | 国产精品女同一区二区久久夜 | 日韩色综合 | 亚洲一区免费在线观看 | 国产免费自拍 | 一道本一区 | 久久777| 亚洲a在线观看 | 午夜一级黄色片 | 亚洲三级免费观看 | 亚洲精品乱码久久久久久蜜糖图片 | 香蕉三级 | 欧美精品一区在线观看 | 黄色一级视频 | www九九热| 国产精品色在线网站 | 自拍偷拍第一页 | 久久r免费视频 | 在线一区二区三区视频 | 一级a性色生活片久久毛片明星 | 91视频入口 | 国产精品久久二区 | 午夜成人在线视频 | 欧美色性| 国产一区二区在线免费观看 | 国产成人免费视频网站高清观看视频 | 色呦呦网站在线观看 | 久久成人国产精品 | 黄色毛片免费看 |