IronPython入門:什麼是IronPython?
如果你知道什麼是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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C#呼叫IronPython動態執行Python程式碼C#Python
- Docker 入門:什麼是 Docker ?Docker
- gRPC(一)入門:什麼是RPC?RPC
- MyCat入門篇-什麼是MyCat
- webgl入門(1)-什麼是webglWeb
- 【入門必看】比特幣到底是什麼?比特幣
- Springboot是什麼?Springboot詳解!入門介紹Spring Boot
- 什麼是Python Web框架?Python入門知識!PythonWeb框架
- Python Django框架是什麼?Python學習入門!PythonDjango框架
- 小白入門微服務(0) - 什麼是微服務微服務
- 【微服務入門】kubernetes是什麼?K8S能幹什麼?微服務K8S
- 什麼是SCADA?SCADA組態軟體入門指南
- Kubernetes 小白入門基礎教程(5)--kubernetes是什麼
- WordPress 是什麼?TechMoon 科技月球 - 新手入門教學
- 入門級(共享)是什麼意思?和通用型的什麼區別
- 什麼是Python爬蟲?python爬蟲入門難嗎?Python爬蟲
- 機器學習最好的入門課程是什麼?機器學習
- 熱門股是什麼意思?捕捉熱門股看什麼?
- 什麼是事件門戶?- solace事件
- 軟體測試入門【1】什麼是軟體測試
- Linux介面是怎樣的?入門Linux運維學什麼Linux運維
- Linux作業系統的優勢是什麼?Linux入門Linux作業系統
- Spring入門學習手冊 3:AOP是個什麼鬼?Spring
- 【Linux入門】FTP協議與SFTP協議是什麼?兩者有什麼聯絡?LinuxFTP協議
- 網路安全知識入門:Web應用防火牆是什麼?Web防火牆
- 新媒體是什麼?新媒體運營入門基礎
- Jenkins入門系列之——01第一章 Jenkins是什麼?Jenkins
- [轉帖]由淺入深瞭解GC入門篇(一):什麼是垃圾回收?GC
- 程式設計入門學什麼?程式設計
- 什麼是開源軟體?Linux怎麼學?linux入門學習書籍Linux
- DNS入門學習:什麼是雲解析?雲解析有哪些特點?DNS
- 【網路安全入門】什麼是DOS?DOS攻擊型別有哪些?型別
- Python開發中TCP和UDP區別是什麼?Python入門教程PythonTCPUDP
- 【網路安全入門】CSRF攻擊是什麼?它的危害有哪些?
- Python列表、元組、集合、字典的區別是什麼?入門知識!Python
- 什麼是linux虛擬機器?如何安裝?Linux學習入門!Linux虛擬機
- Dagger2 簡單入門三部曲(一)——是什麼?
- SEO新手初入門,認識什麼是SEO教學 Read more at TechMoon
- python是什麼?python熱門的原因!Python