IronPython入門:什么是IronPython?
原創(chuàng)【51CTO精選譯文】如果你知道什么是Python,那么對于什么是IronPython也便大概能夠揣摩一二。本文將為您詳細介紹IronPython的入門知識,并回答一些您可能感興趣的問題。本文涉及的主題包括:
◆IronPython與動態(tài)語言運行時簡介
◆交互式解釋器
◆與通用語言運行平臺(CLR)的集成
特別需要指出的是,交互式解釋器對于學習IronPython和探索.NET framework而言是非常有幫助的。在本文中,我們將使用交互式解釋器來考察IronPython與.NET framework的集成方式,并學習這個強大工具的有關(guān)技巧。(如果您想先了解Python語言,那么推薦瀏覽一下51CTO的Python專題。)
一、IronPython的起源
您可能會問:什么是IronPython?簡單地說,IronPython就是優(yōu)雅的python編程語言和強大的.NET平臺的有機結(jié)合。那么它又是從哪里來的呢?Jim Hugunin是IronPython的始作俑者,但是最初他并沒有打算創(chuàng)建IronPython語言,之所以后來為什么創(chuàng)建這個新的動態(tài)語言,這里還有段小故事。當初,Jim Hugunin通過閱讀網(wǎng)上的無數(shù)CLR報告了解到,對于動態(tài)語言尤其是Python來說,CLR是一個極其糟糕的平臺。按照他的話說:“最初的IronPython是作為一系列快速原型而面世的,創(chuàng)建它的初衷只是用來幫我了解這個平臺到底有多么糟糕。我的計劃是編寫一個簡練的論文,名稱為“為什么CLR是一個糟糕透頂?shù)膭討B(tài)語言平臺”。后來,這些原型這個竟然運行的很好,通常它們比基于標準C的Python實現(xiàn)要快多了,所以原來的計劃也由此被打亂了。”
后來,Jim把這些初始的原型轉(zhuǎn)換成了完整的Python實現(xiàn),并為其起名為IronPython。后來,Jim加入了微軟公司的CLR架構(gòu)小組,并共同開發(fā)供多種語言使用的通用語言運行平臺。 該團隊的動態(tài)語言小組開發(fā)IronPython后,將其作為開源軟件發(fā)布了(點擊訪問IronPython官方網(wǎng)站)。
二、動態(tài)語言運行時
創(chuàng)建IronPython版本1的微軟公司動態(tài)語言小組已經(jīng)創(chuàng)建了一個托管動態(tài)語言的框架,該框架具有完整的類型系統(tǒng)和編譯器支持,他們將該框架的部分實現(xiàn)從動態(tài)語言運行時中抽取出來,并在DLR的頂部建立IronPython版本2。
DLR提供了下列內(nèi)容:
◆創(chuàng)建動態(tài)語言的框架
◆包括各種語言(靜態(tài)語言和動態(tài)語言)之間的互操作
◆DLR將變?yōu)镃# / .NET 4的一部分
◆DLR語言:
◇OIronPython (微軟公司)
◇OIronRuby(微軟公司)
◇IronScheme ... (Codeplex)
◆可以從C#和Visual Basic.NET(VB.NET)等.NET語言使用的宿主API
此外,還可以在DLR之上構(gòu)建各種社區(qū)語言,如IronScheme、Nua、RemObjects,等等。
為了支持C# 4.0中的動態(tài)關(guān)鍵字,DLR的各部分已經(jīng)包含在了.NET 4.0的.NET framework中。從IronPython的使用者的觀點來看,DLR最重要部分就是hosting API。
三、什么是IronPython?
什么是IronPython?簡單地說,IronPython就是優(yōu)雅的python編程語言和強大的.NET平臺的有機結(jié)合。
◆IronPython是一個Python編譯器
◆一個流行的開源程序設(shè)計語言的開源實現(xiàn)
◆運行在.NET和Mono之上
◆一個微軟公司的小組仍在對其進行開發(fā)
◆為了與Python 2.6兼容,2.6 版本將構(gòu)建于動態(tài)語言運行時之上
◆可運行于Silverlight之上
IronPython是流行的程序設(shè)計語言Python通向.NET framework的一個端口。微軟公司對于.NET framework的IronPython和動態(tài)語言非常關(guān)注。微軟公司已經(jīng)在各種項目中提供了對IronPython的支持。
IronPython已經(jīng)很好的集成到了.NET framework中,Python語言中的字符串對應于.NET的字符串對象,并且Python語言中對應的方法,在IronPython中也都提供了。其它數(shù)據(jù)類型也是一樣。
51CTO兩周前的開發(fā)熱點周報上提到IronPython 2.6的RC版本已經(jīng)放出。正如同上面所介紹的那樣,IronPython 2.6將完全與CPython 2.6兼容。
有關(guān)什么是IronPython就先介紹到這里。有關(guān)交互式解釋器以及與通用語言運行平臺(CLR)的集成相關(guān)的內(nèi)容,在本文的下一部分將會進行簡單的介紹。
【編輯推薦】