您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Python編程語言的實現內幕是怎么樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
Python“ 時,他們可能想到的是有時稱為 ”CPython“(因為它是以 C 實現的)的這種特定實現。但 Python 作為一種語言規范,已隨著 Guido van Rossum 的參考實現的演變而實現了多次。包含對兩種非標準 Python -- Stackless 和 Vyper。
developWorks 網站上的 Linux 專區是有關 Linux、Linux 資源和 Linux 開發的開發者資源。
據我了解,現在可以下載并運行四種 Python 的實現,還有一種實現正在創建中。每種實現都有其存在的特殊理由,這些理由可以在這里從實現開發者自己的話語里了解到。
對不同的平臺重新編譯編譯器或解釋器所產生的實現只是略有不同(可能有少量的條件性編譯和更改),但最有趣的實現(就我而言)是超越平臺問題的那些。實際上,我們在這篇文章中將要看到的那些 Python 實現大多本身就是多平臺。實現的概念也與 版本的概念有所區別。
就語言特性而言,這里談到的所有實現基本上都處于同一語言版本 (1.5.2)。很明顯,CPython 1.6/2.0/3000 已經有一個部分屬于新的基本實現,但其它實現可以同樣地與那些語言級別的特性一致。
重新實現了哪些編程語言,實現的頻率怎樣,出于什么原因,以及由誰實現?要形容這組語言非常困難。某些與 Python 幾乎處同一地位的流行語言 -- 例如 perl、REBOL 和 PHP -- 只有一種實現(編譯成許多平臺)。TCL 與 Perl/PHP 最為相似,但 確實有一種稱為 Jacl 的 Java 平臺版本。
從另一個極端來看,例如 C、Awk、Cobol、REXX 和 Java 這樣的語言,每個都曾經被無數次地實現。但那些再實現是為了許可和營銷等考慮,而不是出于實現的概念和抽象問題。似乎有特殊學術意味的那些語言重新實現得很多(特別是函數性、邏輯性或超純 OOP 語言,例如Smalltalk 和 Eiffel)。Lisp 沒有幾百個也有幾十個實現和派生。
與我們將要討論的 Python 實現不同,Lisp 的派生在提供新實現的同時往往引入許多新穎的 語言特性。Python 實現在很大程度上實現和主要 CPython 版本 相同的 Python 語言。所有現有的版本都是開放源碼合作努力的結果,這種情況下,創新與市場定位沒有太大關系,甚至與有時導致開放源碼項目分裂的許可證爭斗也沒有什么關系。
而且,不同的 Python 版本也不是真正傳統意義上的 支流,而集中于不同的概念,正是這些概念證明它本身就是 Python 實現。
兩種沒有詳細說明的實現是 JPython 和 Python.NET。JPython 是以 Java 編寫的編譯器,用于將 Python 源代碼編譯成 Java 字節碼。Python 應用程序最終是在 JVM(用戶可能不知道它是以 Python 源代碼而不是 Java 編寫的,他們也不需要關心)中運行的。Python.NET 是個還未交付的實現,但它 -- 至少在結構上 -- 將與 JPython 相似。
Python.NET 將讓 Python 參與到微軟的 .NET 項目中,該項目基本上接近于一個可以運行以各種語言(例如新的 C#、Visual、Basic、C++,以及 Python)編寫的程序的非 Java VM。請隨時關注這些實現的開發者發布的信息。
關于Python編程語言的實現內幕是怎么樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。