【IronPython】數據庫
IronPython is an implementation of the Python programming language written by the CLR team at Microsoft. IronPython runs on the Microsoft® .NET Framework and supports an interactive console with fully dynamic compilation. 網絡
It is well integrated with the rest of the .NET Framework and makes all .NET libraries easily available to Python programmers, while maintaining full compatibility with the Python language.app
This column will give a brief overview of Python and what sets dynamic languages apart from other languages. I will discuss iterative development, describe how IronPython integrates with .NET while staying true to Python syntax, and show the advantages of using IronPython to utilize .NET.less
【Dynamic Languages and Iterative Development】oop
Dynamic programming languages allow for a program's structure to be changed while it runs: functions may be introduced or removed, new classes of objects may be created, and new modules may appear. These languages are usually dynamically typed, allowing variable declarations to change type during execution. But just having dynamic types does not make a language dynamic. 單元測試
觀點一:僅僅有dynamic type並不能讓一門語言成爲動態語言,如Objc,有動態類型,但並非動態語言。測試
he most common question I hear about dynamic languages is "why should I use them?". One concrete benefit of dynamic languages is that they facilitate an iterative development cycle. Interactive console, a high-level syntax, and extensive standard libraries.this
【How the .NET Framework Fits In】spa
觀點二:全部語言都提供相似的庫,如網絡、GUI、集合、數據庫、單元測試等。每一種語言都有各自的一套實現,對於多語言Coder來講每學一種語言就要掌握其背後的一堆庫,很是痛苦。3d
The .NET Framework is intended to be a single runtime engine for many programming languages. It does this via a shared byte code intermediate language, just-in-time (JIT) and ahead-of-time compilers, a highly tuned garbage collector, and reflection and dynamic loading support. The academic world has envisioned this common runtime for decades, but .NET is the first runtime engine with many languages used in production today. Microsoft maintains .NET support for C#, Visual Basic®, C++, J#, and JScript®, while others have integrated languages like Eiffel, COBOL, FORTRAN, RPG, and Delphi with .NET.
The common language runtime (CLR) enables deep integration among languages; a single project could use many languages that work together seamlessly. This allows developers to choose the best language for the problems they are trying to solve, rather than settling on one language.
【IronPython Architecture】
IronPython uses a common type of compiler architecture; the noticeable difference is in code generation. The IronPython byte code is MSIL, intermediate language for the CLR, and will eventually be converted into native code (see Figure 4), whereas CPython (the standard Python implementation, done in the C language) has a runtime loop that interprets its byte code.
IronPython先被解析成MSIL,後再轉成Native Code執行。而CPython是轉成字節碼,而後被虛擬機執行。注意區別在於,一個是NativeCode執行,一個是字節碼(由虛擬機執行)。
IronPython has two important, often-conflicting goals: it needs to be seamlessly integrated with .NET and it needs to be a true implementation of the Python language.
To utilize additional .NET libraries, the clr module must be imported and then specific assemblies referenced. The additional library assemblies can then be imported and used seamlessly. Once the library is imported, it can be used just as before.
參考:http://msdn.microsoft.com/zh-cn/magazine/cc300810(en-us).aspx