基于C語言的Python編譯
也許大家對于Python編譯還不是很了解,看完本文后對您一定會大有幫助,下文除了學習Python編譯的基本性質外還對Python編譯的新特性進行全面研究,希望大家能夠學習研究。
之所以選中 Python(大蟒蛇的意思)作為程序的名字,是因為他是一個Monty Python的飛行馬戲團的愛好者。
ABC是由Guido參加設計的一種教學語言。
就Guido本人看來,ABC 這種語言非常優美和強大,是專門為非專業程序員設計的。但是ABC語言并沒有成功,究其原因,Guido 認為是非開放造成的。Guido 決心在 Python 中避免這一錯誤(的確如此,Python 與其它的語言如C、C++和Java結合的非常好)。同時,他還想實現在 ABC 中閃現過但未曾實現的東西。
就這樣,Python在Guido手中誕生了。實際上,***個實現是在Mac機上。可以說,Python是從ABC發展起來,主要受到了Modula-3(另一種相當優美且強大的語言,為小型團體所設計的)的影響。并且結合了Unix shell和C的習慣。Python在編程語言中的定位很多大規模軟件開發計劃例如 Zope, Mnet 及 BitTorrent. Google都在廣泛地使用它。
通常認為,Python是一種解釋性的語言,但是這種說法是不正確的,實際上,Python在執行時,首先會將.py文件中的源代碼編譯成Python的byte code(字節碼),然后再由Python Virtual Machine來執行這些編譯好的byte code。
這種機制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine與Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一種更高級的Virtual Machine。這里的高級并不是通常意義上的高級。
不是說Python的Virtual Machine比Java或.NET的功能更強大,而是說和Java 或.NET相比,Python的Virtual Machine距離真實機器的距離更遠。或者可以這么說,Python的Virtual Machine是一種抽象層次更高的Virtual Machine。
基于C的Python編譯出的字節碼文件,通常是.pyc格式。在實際開發中,python常被昵稱為膠水語言,這不是說他會把你的手指粘住,而是說他能夠很輕松的把用其他語言制作的各種模塊(尤其是C/C++)輕松地聯結在一起。#t#
常見的一種應用情形是,使用python快速生成程序的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,速度要求非常高,就可以用C++重寫。
可擴充性可說是Python作為一種編程語言的特色。新的內置模塊(module)可以用C 或 C++寫成。而我們也可為現成的模塊加上Python的接口。Python可以使用戶避免過分的語法的羈絆而將精力主要集中到所要實現的程序任務上。
Python編譯也被稱為是一門清晰的語言。因為它的作者在設計它的時候,總的指導思想是,對于一個特定的問題,只要有一種***的方法來解決就好了。這在由Tim Peters寫的python格言(稱為The Zen of Python)里面表述為。有意思的是,這正好和Perl語言(另一種功能類似的高級動態語言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。
這似乎是人們常把Perl和Python互相比較的重要原因。Python編譯是一種清晰的語言的另一個意思是,它的作者有意的設計限制性很強的語法。使得不好的編程習慣(例如if語句的下一行不向右縮進)都不能通過編譯。這樣有意的強制程序員養成良好的編程習慣。其中很重要的一項就是Python的縮進規則。