Python實現Python解釋器

2022-01-24 藍橋雲課精選

你也許會覺得很奇怪,用Python實現Python解釋器?!好比「自己生下了自己」這種說法一樣奇怪。其實也沒那麼奇怪,你看gcc就是用 C 寫的,你也可以使用別的語言來實現python解釋器,其實除了實現的功能之外,解釋器跟一般的程序並沒有什麼不同。

小編介紹的這個項目課程就是教你用Python來實現一個Python解釋器!

項目名稱:

【Python實現Python解釋器】

項目簡介:

該項目從實現一個玩具解釋器開始學習解釋器的基本知識。之後通過考察Python字節碼進一步學習理解Python解釋器的內部機制。最終參考``Byterun``(一個現有的Python解釋器)實現一個500行以內的Python解釋器。

涉及知識點:

Python程序的運行原理

Python解釋器的內部機制

如何實現一個Python解釋器

一些編寫Python程序的小技巧

關於該項目的詳細開發文檔及代碼詳解,點擊最下方的「閱讀原文」,即可查看學習!

在線開發環境:

既然是項目,那麼肯定是需要動手去實現的,實驗樓提供了在線開發環境,可以跟著文檔動手實現Python解釋器。

如下圖,左邊是項目開發文檔,詳細的講解項目開發步驟以及相關知識點,右邊是在線開發環境,隨時跟著文檔動手開發,邊看邊動手的學習模式可以更高效快速的掌握Python項目開發。


點擊「閱讀原文」,即可馬上查看如何利用Python開發一個Python解釋器~

相關焦點

  • python解釋器到底是什麼?
    有很多入門學習python的同學都沒有搞清python解釋器是怎麼回事,所以今天在這裡追根溯源的解釋一下。 計算機程式語言 從計算機程式語言說起,它主要分為三類:機器語言、彙編語言、高級語言。
  • 用 Python 實現 Python 解釋器
    我們自己實現了Function,以便我們控制新的Frame的創建。Block類,它只是包裝了塊的 3 個屬性。(塊的細節不是解釋器的核心,我們不會花時間在它身上,把它列在這裡,是因為 Byterun 需要它。)VirtualMachine 類每次程序運行時只會創建一個VirtualMachine實例,因為我們只有一個 Python 解釋器。
  • 11 個優秀的 Python 編譯器和解釋器
    其解釋器可在Windows、Linux 和 Mac OS 等多種作業系統上使用。它的可移植性和可伸縮性等特性使得它更加容易被運用。網址:https://winpython.github.io4.SkulptSkulpt 是 Python 的瀏覽器版實現,可以被添加到 HTML 代碼中。此 Python 編譯器使用 Javascript 編寫,在客戶端運行代碼,無需其它插件、加工或伺服器支持。
  • 用 Python 實現 Python 解釋器(下)
    我們自己實現了Function,以便我們控制新的Frame的創建。Block類,它只是包裝了塊的 3 個屬性。(塊的細節不是解釋器的核心,我們不會花時間在它身上,把它列在這裡,是因為 Byterun 需要它。)VirtualMachine 類每次程序運行時只會創建一個VirtualMachine實例,因為我們只有一個 Python 解釋器。
  • 用Python實現一個Python解釋器
    IntroductionByterun是一個用Python實現的Python解釋器。隨著我在Byterun上的工作,我驚訝並很高興地的發現,這個Python解釋器的基礎結構可以滿足500行的限制。在這一章我們會搞清楚這個解釋器的結構,給你足夠的知識探索下去。我們的目標不是向你展示解釋器的每個細節-—像編程和計算機科學其他有趣的領域一樣,你可能會投入幾年的時間去搞清楚這個主題。
  • 【Python面試】 說說Python解釋器種類以及特點?
    開始今天的題目:問:說說Python解釋器種類以及特點?答:Python是一門解釋器語言,代碼想運行,必須通過解釋器執行,Python存在多種解釋器,分別基於不同語言開發,每個解釋器有不同的特點,但都能正常運行Python代碼。
  • 使用 Python 開發一個 Python 解釋器
    原文地址:https://python.plainenglish.io/introduction-to-creating-interpreter-using-python-c2a9a6820aa0原文作者:Umangshrestha譯文出自:掘金翻譯計劃本文永久連結:https://github.com/xitu/gold-miner/blob
  • Python 探針實現原理
    同時為了驗證這個原理,我們也會一起來實現一個簡單的統計指定函數執行時間的探針程序。探針的實現主要涉及以下幾個知識點:sys.meta_pathsys.meta_path 這個簡單的來說就是可以實現 import hook 的功能, 當執行 import 相關的操作時,會觸發 sys.meta_path 列表中定義的對象。
  • MicroPython的交互式解釋器模式 (又稱REPL)
    此部分介紹了MicroPython的交互式解釋器模式的特性,其常用術語為REPL(讀取read-評估eval-列印print-循環
  • Shell+Python混合編程的實現
    bin/shecho "hello shell"#下面是調用python解釋器/usr/bin/python<<-EOFprint('hello python')EOF輸出結果:hello this is shell
  • 科悟學院介紹什麼是Python、python能做什麼?
    既然計算機語言也是一門語言,那麼就像我們使用外語一樣,只不過面向對象改成了計算機,我們將根據規定的語法講出我們想要表達的意思,經過解釋器的翻譯,從而讓計算機實現某項具體的功能,整個過程就像我們在對話計算機一樣。那麼我們如何開始嘗試編寫這一語言呢?
  • Python語言之Python探針實現原理
    探針的實現主要涉及以下幾個知識點:sys.meta_pathsitecustomize.pysys.meta_pathsys.meta_path這個簡單的來說就是可以實現 import hook關於 sys.meta_path 更詳細的資料請查閱 python 文檔中 sys.meta_path 相關內容以及 PEP 0302 。
  • Python環境搭建
    本節概要:1.python的介紹python如此火爆的原因如下:1.1 了解python的解釋器種類想要學習一門程式語言:安裝python解釋器,學習python語法並編寫代碼、使用python解釋器去執行編寫好的代碼
  • 用 Python 編寫的 Python 解釋器
    IntroductionByterun是一個用Python實現的Python解釋器。隨著我在Byterun上的工作,我驚訝並很高興地的發現,這個Python解釋器的基礎結構可以滿足500行的限制。在這一章我們會搞清楚這個解釋器的結構,給你足夠的知識探索下去。我們的目標不是向你展示解釋器的每個細節—像編程和計算機科學其他有趣的領域一樣,你可能會投入幾年的時間去搞清楚這個主題。
  • python基礎學習教程:Python基礎語法
    第一個 Python 程序交互式編程交互式編程不需要創建腳本文件,是通過 Python 解釋器的交互模式進來編寫代碼。在 Python 2.7.6 版本中,以上實例輸出結果如下:腳本式編程通過腳本參數調用解釋器開始執行腳本,直到腳本執行完畢。當腳本執行完成後,解釋器不再有效。讓我們寫一個簡單的 Python 腳本程序。所有 Python 文件將以 .py 為擴展名。將以下的原始碼拷貝至 test.py 文件中。
  • 慢步python,如何用python語言創造出一個真正的獨立exe程序?
    在筆者文章Python程序的編輯及運行,Pycharm的下載安裝中有說到,我們下載安裝好python後有三種運行方式,這裡的編輯與運行,其實是依託IDE(集成開發環境 integrated development environment)與python解釋器的。比如一個外賣店家說它能服務全市人民,為全市人民提供送餐服務。
  • Python遇到性能瓶頸怎麼辦?
    一、Python的C語言接口Python語言最初是用C語言實現的一種腳本語言,後來被稱為CPython,是因為後來又有其它語言實現的Python,比如Python實現的Python——PyPy,Java語言實現的Python——Jython,.Net實現的Python——IronPython
  • 零基礎Python入門教程 - 第三節 搭建Python開發環境
    為了驗證我們的Python是否正確安裝,我們在cmd命令行下鍵入python並回車,如果出現如下回復,則代表我們的已經成功安裝了python環境。2.安裝代碼編輯器有了python執行環境了,我們還需要一款代碼編輯器寫完成python代碼,python代碼編輯工具眾多,這裡給大家推薦兩款工具,分別是Sublime Text3和PyCharm,兩款工具都是跨平臺的,即使我們以後在linux上開發python依然可以使用。
  • 初識Python
    1991年2月:第一個Python編譯器(同時也是解釋器)誕生,它是用C語言實現的(後面),可以調用C語言的庫函數。在最早的版本中,Python已經提供了對「類」,「函數」,「異常處理」等構造塊的支持,還有對列表、字典等核心數據類型,同時支持以模塊為基礎來構造應用程式。1994年1月:Python 1.0正式發布。
  • Python|實現屬於自己的數據類型
    Python|實現屬於自己的數據類型我們今天聊聊怎麼使用python中的特殊方法來實現屬於自己的數據類型。python 中有很多的數據類型,比如說數組、字典等等。❝Python 解釋器碰到特殊的句法時(例如 len()),會使用特殊方法去激活一些基本的對象操作,這些特殊方法的名字以兩個下劃線開頭,以兩個下劃線結尾(例如__len__)。❞我們在使用 len() 這個函數的時候,解釋器會去調用__len__方法。而由於 int 中沒有內嵌__len__這個方法,所以代碼會顯示報錯。