AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

六大 Python 解釋器

來源: 責(zé)編: 時(shí)間:2023-10-18 17:59:12 313觀看
導(dǎo)讀作為最受歡迎的編程語言之一,Python 需要一個(gè)解釋器來執(zhí)行其代碼所定義的命令。與其他可直接編譯成機(jī)器代碼的語言不同,Python 代碼需要解釋器讀取它并把它轉(zhuǎn)譯給進(jìn)行相關(guān)操作的 CPU。那么,哪些解釋器有哪些呢?本文將對(duì)其

suP28資訊網(wǎng)——每日最新資訊28at.com

作為最受歡迎的編程語言之一,Python 需要一個(gè)解釋器來執(zhí)行其代碼所定義的命令。與其他可直接編譯成機(jī)器代碼的語言不同,Python 代碼需要解釋器讀取它并把它轉(zhuǎn)譯給進(jìn)行相關(guān)操作的 CPU。那么,哪些解釋器有哪些呢?本文將對(duì)其中幾種進(jìn)行介紹。suP28資訊網(wǎng)——每日最新資訊28at.com

解釋器簡(jiǎn)介

提到 Python 解釋器,我們通常會(huì)想到 /usr/bin/python 這個(gè)二進(jìn)制文件。它使你能夠執(zhí)行 .py 文件。然而,解釋操作僅僅是其中一環(huán)。在 Python 代碼真正被 CPU 執(zhí)行之前,都需要經(jīng)過以下四個(gè)步驟:suP28資訊網(wǎng)——每日最新資訊28at.com

  1. 詞法分析 - 將人類編寫的源代碼轉(zhuǎn)換為一序列邏輯實(shí)體,被稱為 詞法標(biāo)記lexical token。
  2. 解析 - 解析器會(huì)檢查詞法標(biāo)記的語法和語義規(guī)則生成 抽象語法樹abstract syntax tree(AST)。
  3. 編譯 - 編譯器會(huì)根據(jù) AST 創(chuàng)建 Python 字節(jié)碼,這些字節(jié)碼由非常基礎(chǔ)的,和平臺(tái)無關(guān)的指令組成。
  4. 解釋 - 解釋器處理字節(jié)碼并執(zhí)行特定的操作。

如你所見,在任何實(shí)質(zhì)性的操作發(fā)生之前,我們需要走過這些步驟。這也解釋了深入研究不同解釋器的重要性。suP28資訊網(wǎng)——每日最新資訊28at.com

1、CPython

作為 Python 的參考實(shí)現(xiàn),CPython 默認(rèn)地被許多系統(tǒng)所采用。如其名稱所示,CPython 是用 C 語言編寫的。這也意味著,我們可以 以 C 語言編寫擴(kuò)展,從而讓 Python 打通到廣泛使用的 C 語言庫代碼。CPython 廣泛應(yīng)用于各種平臺(tái),包括 ARM 和 RISC。然而,作為 Python 的參考實(shí)現(xiàn),CPython 更注重精細(xì)的優(yōu)化,而非運(yùn)行速度。suP28資訊網(wǎng)——每日最新資訊28at.com

2、Pyston

Pyston 是一個(gè)從 CPython 解釋器衍生出的分支,其中實(shí)現(xiàn)了性能優(yōu)化。該項(xiàng)目定位自己為標(biāo)準(zhǔn) CPython 解釋器在處理大型、真實(shí)世界應(yīng)用時(shí)的替代品,并有可能加速高達(dá) 30%。由于缺乏兼容的二進(jìn)制包,Pyston 在下載過程中需要重新編譯。suP28資訊網(wǎng)——每日最新資訊28at.com

3、PyPy

采用了 RPython 編寫的 PyPy 是一個(gè)專為 Python 配備的 即時(shí)(JIT) 編譯器,RPython 是 Python 的一個(gè)靜態(tài)類型的子集。不同于 CPython 解釋器,PyPy 對(duì)源代碼進(jìn)行編譯,生成 CPU 可直接執(zhí)行的機(jī)器碼。PyPy 是 Python 開發(fā)者的實(shí)驗(yàn)室,在這里他們能更容易地測(cè)試新特性。suP28資訊網(wǎng)——每日最新資訊28at.com

相較于 CPython,PyPy 的執(zhí)行速度更快。由于 JIT 編譯器的特性,長時(shí)間運(yùn)行的應(yīng)用更能從緩存中受益。PyPy 可以被視為 CPython 的有效替代。雖然其中存在一些缺點(diǎn),大部分的 C 擴(kuò)展模塊在 PyPy 中也得到支持,但運(yùn)行速度會(huì)相對(duì)慢一些。PyPy 擴(kuò)展模塊使用 Python(而不是 C)編寫,這使 JIT 編譯器能夠?qū)ζ溥M(jìn)行優(yōu)化。只要你的應(yīng)用程序不依賴于不兼容的模塊,PyPy 就是替換 CPython 的理想選擇。你可以在項(xiàng)目官網(wǎng)找到一個(gè)專門的頁面,詳細(xì)描述 PyPy 與 CPython 的不同之處:PyPy 與 CPython 的差異suP28資訊網(wǎng)——每日最新資訊28at.com

4、RustPython

顧名思義,RustPython 是一個(gè)由 Rust 編寫的 Python 解釋器。盡管 Rust 如今還是一個(gè)相對(duì)年輕的編程語言,但因其優(yōu)良特性已逐步受到開發(fā)者的推崇,甚至被視為 C 和 C++ 的可能接班人。默認(rèn)情況下,RustPython 的行為與 CPython 的解釋器類似,但它也可以選擇啟用 JIT 編譯器。值得一提的是,Rust 工具鏈能直接編譯為 WebAssembly ,進(jìn)而允許在瀏覽器中全面運(yùn)行解釋器。你可以在 這里 看到它的在線演示。suP28資訊網(wǎng)——每日最新資訊28at.com

5、Stackless Python

Stackless Python 自稱是 Python 編程語言的增強(qiáng)版本。該項(xiàng)目基本上是 CPython 解釋器衍生的一個(gè)項(xiàng)目,其為該語言添加了微線程、通道和調(diào)度器。微線程可以幫助你將代碼組織成可以并行運(yùn)行的 “小任務(wù)tasklet”。這與采用 greenlet 模塊的綠色線程模型相似。通道可以用作 “小任務(wù)” 之間的雙向通信。Stackless Python 的一個(gè)知名用戶是大型多人在線角色扮演游戲 Eve Online。suP28資訊網(wǎng)——每日最新資訊28at.com

6、Micro Python

如果你的目標(biāo)平臺(tái)是微控制器,那么 MicroPython 將是你的首選。它是一種極簡(jiǎn)的實(shí)現(xiàn),只需要 16kB 的內(nèi)存和 256kB 的存儲(chǔ)空間。由于其主要面向的是嵌入式環(huán)境,MicroPython 的標(biāo)準(zhǔn)庫只包含 CPython 豐富的 STL 的一部分。對(duì)于開發(fā)和測(cè)試,或者作為輕量級(jí)替代品,MicroPython 也可以在普通的 x86 和 x64 系統(tǒng)上運(yùn)行。MicroPython 支持 Linux、Windows,以及多種微控制器。suP28資訊網(wǎng)——每日最新資訊28at.com

性能

就其設(shè)計(jì)而言,Python 本質(zhì)上是一種運(yùn)行速度不夠快的語言。根據(jù)任務(wù)性質(zhì)的不同,各種解釋器間存在明顯的性能差異。要想弄清楚哪種解釋器最適合特定任務(wù),可以參考 pybenchmarks.org。與使用解釋器相比,另一種選擇是直接將 Python 二進(jìn)制代碼編譯成機(jī)器碼,例如,Nuitka 就是能夠完成這種工作的項(xiàng)目之一,它可以將 Python 代碼編譯成 C 代碼,然后將 C 代碼通過常規(guī)的 C 編譯器編譯成機(jī)器碼。Python 編譯器的主題范圍廣泛,值得一篇獨(dú)立的文章來詳述。suP28資訊網(wǎng)——每日最新資訊28at.com

總結(jié)

Python 是構(gòu)建快速原型和自動(dòng)化任務(wù)的優(yōu)秀語言,同時(shí)它又易于學(xué)習(xí),對(duì)初學(xué)者友好。如果你平時(shí)維持使用 CPython,那么嘗試看看你的代碼在另一解釋器上運(yùn)行會(huì)是什么樣子也許會(huì)很有趣。如果你是 Fedora 用戶,你可以輕松地測(cè)試幾種其他解釋器,因?yàn)槠浒芾砥饕呀?jīng)提供了需要的二進(jìn)制文件。你可以在 fedora.developer.org 上查找更多信息。suP28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-14008-0.html六大 Python 解釋器

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 蘋果 Vision Pro 頭顯專利獲批:自動(dòng)駕駛車內(nèi)提供沉浸式 VR 體驗(yàn)

下一篇: 為什么架構(gòu)設(shè)計(jì)總沒法一勞永逸?

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 直屏旗艦來了 iQOO 12和K70 Pro同臺(tái)競(jìng)技

    旗艦機(jī)基本上使用的都是雙曲面屏幕,這就讓很多喜歡直屏的愛好者在苦等一款直屏旗艦,這次,你們等到了。據(jù)博主數(shù)碼閑聊站帶來的最新爆料稱,Redmi下代旗艦K70 Pro和iQOO 12兩款手
  • 跑分安卓第一!Redmi K60至尊版8月發(fā)布!盧偉冰:目標(biāo)年度性能之王

    8月5日消息,Redmi K60至尊版將于8月發(fā)布,在此前舉行的戰(zhàn)略發(fā)布會(huì)上,官方該機(jī)將搭載搭載天璣9200+處理器,安兔兔V10跑分超177萬分,是目前安卓陣營最高的分?jǐn)?shù)
  • Rust中的高吞吐量流處理

    作者 | Noz編譯 | 王瑞平本篇文章主要介紹了Rust中流處理的概念、方法和優(yōu)化。作者不僅介紹了流處理的基本概念以及Rust中常用的流處理庫,還使用這些庫實(shí)現(xiàn)了一個(gè)流處理程序
  • Flowable工作流引擎的科普與實(shí)踐

    一.引言當(dāng)我們?cè)谌粘9ぷ骱蜆I(yè)務(wù)中需要進(jìn)行各種審批流程時(shí),可能會(huì)面臨一系列技術(shù)和業(yè)務(wù)上的挑戰(zhàn)。手動(dòng)處理這些審批流程可能會(huì)導(dǎo)致開發(fā)成本的增加以及業(yè)務(wù)復(fù)雜度的上升。在這
  • 多線程開發(fā)帶來的問題與解決方法

    使用多線程主要會(huì)帶來以下幾個(gè)問題:(一)線程安全問題  線程安全問題指的是在某一線程從開始訪問到結(jié)束訪問某一數(shù)據(jù)期間,該數(shù)據(jù)被其他的線程所修改,那么對(duì)于當(dāng)前線程而言,該線程
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準(zhǔn)追劇女孩們的古偶劇集,2021年有優(yōu)酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 本地生活這塊肥肉,拼多多也想吃一口

    出品/壹覽商業(yè) 作者/李彥編輯/木魚拼多多也看上本地生活這塊蛋糕了。近期,拼多多在App首頁“充值中心”入口上線了本機(jī)生活界面。壹覽商業(yè)發(fā)現(xiàn),該界面目前主要
  • 朋友圈可以修改可見范圍了 蘋果用戶可率先體驗(yàn)

    近日,iOS用戶迎來微信8.0.27正式版更新,除了可更換二維碼背景外,還新增了多項(xiàng)實(shí)用功能。在新版微信中,朋友圈終于可以修改可見范圍,簡(jiǎn)單來說就是已發(fā)布的朋友圈
  • 最薄的14英寸游戲筆記本電腦 Alienware X14已可以購買

    2022年1月份在國際消費(fèi)電子展(CES2022)上首次亮相的Alienware新品——Alienware X14現(xiàn)在已經(jīng)可以購買了,這款筆記本電腦被譽(yù)為世界上最薄的 14 英寸游戲筆
Top