IronPython入門:什麼是IronPython?

iDotNetSpace發表於2009-10-15

如果你知道什麼是Python,那麼對於什麼是IronPython也便大概能夠揣摩一二。本文將為您詳細介紹IronPython的入門知識,並回答一些您可能感興趣的問題。本文涉及的主題包括:

◆IronPython與動態語言執行時簡介

◆互動式直譯器

◆與通用語言執行平臺(CLR)的整合

特別需要指出的是,互動式直譯器對於學習IronPython和探索.NET framework而言是非常有幫助的。在本文中,我們將使用互動式直譯器來考察IronPython與.NET framework的整合方式,並學習這個強大工具的有關技巧。(如果您想先了解Python語言,那麼推薦瀏覽一下違規廣告的Python專題。)

一、IronPython的起源

您可能會問:什麼是IronPython?簡單地說,IronPython就是優雅的python程式語言和強大的.NET平臺的有機結合。那麼它又是從哪裡來的呢?Jim Hugunin是IronPython的始作俑者,但是最初他並沒有打算建立IronPython語言,之所以後來為什麼建立這個新的動態語言,這裡還有段小故事。當初,Jim Hugunin通過閱讀網上的無數CLR報告瞭解到,對於動態語言尤其是Python來說,CLR是一個極其糟糕的平臺。按照他的話說:“最初的IronPython是作為一系列快速原型而面世的,建立它的初衷只是用來幫我瞭解這個平臺到底有多麼糟糕。我的計劃是編寫一個簡練的論文,名稱為“為什麼CLR是一個糟糕透頂的動態語言平臺”。後來,這些原型這個竟然執行的很好,通常它們比基於標準C的Python實現要快多了,所以原來的計劃也由此被打亂了。”

後來,Jim把這些初始的原型轉換成了完整的Python實現,併為其起名為IronPython。後來,Jim加入了微軟公司的CLR架構小組,並共同開發供多種語言使用的通用語言執行平臺。 該團隊的動態語言小組開發IronPython後,將其作為開源軟體釋出了(點選訪問IronPython官方網站)。

二、動態語言執行時

建立IronPython版本1的微軟公司動態語言小組已經建立了一個託管動態語言的框架,該框架具有完整的型別系統和編譯器支援,他們將該框架的部分實現從動態語言執行時中抽取出來,並在DLR的頂部建立IronPython版本2。

DLR提供了下列內容:

◆建立動態語言的框架

◆包括各種語言(靜態語言和動態語言)之間的互操作

◆DLR將變為C# / .NET 4的一部分

◆DLR語言:

◇OIronPython (微軟公司)

◇OIronRuby(微軟公司)

◇IronScheme ... (Codeplex)

◆可以從C#和Visual Basic.NET(VB.NET)等.NET語言使用的宿主API

此外,還可以在DLR之上構建各種社群語言,如IronScheme、Nua、RemObjects,等等。

為了支援C# 4.0中的動態關鍵字,DLR的各部分已經包含在了.NET 4.0的.NET framework中。從IronPython的使用者的觀點來看,DLR最重要部分就是hosting API。

三、什麼是IronPython?

什麼是IronPython?簡單地說,IronPython就是優雅的python程式語言和強大的.NET平臺的有機結合。

◆IronPython是一個Python編譯器

◆一個流行的開源程式設計語言的開源實現

◆執行在.NET和Mono之上

◆一個微軟公司的小組仍在對其進行開發

◆為了與Python 2.6相容,2.6 版本將構建於動態語言執行時之上

◆可執行於Silverlight之上

IronPython是流行的程式設計語言Python通向.NET framework的一個埠。微軟公司對於.NET framework的IronPython和動態語言非常關注。微軟公司已經在各種專案中提供了對IronPython的支援。

IronPython已經很好的整合到了.NET framework中,Python語言中的字串對應於.NET的字串物件,並且Python語言中對應的方法,在IronPython中也都提供了。其它資料型別也是一樣。

違規廣告兩週前的開發熱點週報上提到IronPython 2.6的RC版本已經放出。正如同上面所介紹的那樣,IronPython 2.6將完全與CPython 2.6相容。

有關什麼是IronPython就先介紹到這裡。有關互動式直譯器以及與通用語言執行平臺(CLR)的整合相關的內容,在本文的下一部分將會進行簡單的介紹,敬請期待!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-616640/,如需轉載,請註明出處,否則將追究法律責任。

相關文章