IronPython
![]() | |
Paradygmat | |
---|---|
Typowanie | |
Implementacje | |
Aktualna wersja stabilna |
2.6.2 (21 października 2010; około 14 lat temu) |
Aktualna wersja testowa |
2.7 beta 1 (21 października 2010; około 14 lat temu) |
Twórca | |
Licencja | |
Platforma sprzętowa | |
Platforma systemowa | |
[[1] Strona internetowa] |
IronPython - dynamiczny jezyk programowania napisany w języku C# i stworzony na platformie programistycznej .NET Framework 2.0. Jest to pełnoprawna implementacja języka Python stworzona na bazie specyfikacji CLI (Common Language Runtime) i wykonywana pod kontrolą środowiska uruchomieniowego CLR (Common Language Runtime). Jego twórcą jest Jim Hugunin, który jest również twórcą implementacji Jython, napisanej w języku Java i uruchamianej pod kontrolą maszyny wirtualnej Javy.
Do najważniejszych cech implementacji IronPython należy zaliczyć jej pełną integrację z platformą .NET Framework, co wiąże się z możliwością wykorzystania olbrzymiej ilości standardowych i zewnętrznych bibliotek stworzonych dla tej platformy, przy zachowaniu pełnej zgodności z samym językiem Python. Implementacja ta odznacza się dodatkowo doskonałą wydajnością oraz posiada zaimplementowaną w kodzie zarządzanym większą część bibliotek standardowych dostarczanych wraz z językiem Python. IronPython posiada również wsparcie we flagowym środowisku programistycznym firmy Microsoft, czyli Visual Studio. Implementację IronPython można wykorzystywać również, tworząc rozwiązania w technologii internetowej Silverlight.
Rozwój implementacji IronPython przyczynił się do powstania uniwersalnego środowiska uruchomieniowego dla dynamicznych języków programowania o nazwie DLR (Dynamic Language Runtime), który stał się zarówno integralną częścią platformy .NET Framework 4.0, jak i samodzielnym, otwartym dla społeczności, projektem typu Open Source. Innym znanym projektem stworzonym na bazie środowiska DLR jest IronRuby, będący implementacja języka Ruby.
IronPython jest projektem typu Open Source udostępnianym na licencji Apache License 2.0.
IronPython – przykłady integracji z platformą .NET Framework
Poniższe przykłady ilustruję specyficzne dla implementacji IronPython przykłady użycia języka.
Rozszerzanie funkcjonalności języka
W implementacji IronPython, własne metody, klasy, czy komponenty tworzy się tak samo łatwo jak w każdym innym, wspieranym przez tę platformę, języku programowania. Innymi słowy, każdy komponent stworzony np. w języku C# da się wykorzystać z poziomu języka IronPython bez najmniejszego problemu, a w dodatku bez żadnych dodatkowych warstw pośredniczących, czy konwersji typów danych, co ma bardzo pozytywny wpływ na wydajność i łatwość ich tworzenia.
Kod prostego komponentu w języku C#:
using System;
namespace CSharpLib
{
public class SampleClass
{
public string SayHello(string name)
{
return String.Format("Hello, {0}!", name);
}
}
}
Przykład użycia powyższego komponentu z poziomu języka IronPython:
import clr
clr.AddReference("CSharpLib.dll")
from CSharpLib import SampleClass
sc = SampleClass()
print sc.SayHello("IronPython")
Wykorzystanie bibliotek standardowych platformy .NET
IronPython umożliwia łatwe wykorzystanie bibliotek standardowych dostarczanych wraz z platformą programistyczną .NET Framework.
Przykład:
import clr
clr.AddReference('System.Windows.Forms')
from System.Windows.Forms import (Application, Form)
form = Form( Text = 'Hello, Windows Forms!' )
Application.Run(form)
Osadzanie języka IronPython
Implementacja IronPython dostarcza również wiele mechanizmów umożliwiających osadzanie i wykonywanie tego języka we własnych programach i aplikacjach.
Przykład:
using IronPython.Hosting;
namespace PythonHostingSamples
{
class Program
{
static void Main(string[] args)
{
var engine = Python.CreateEngine();
engine.CreateScriptSourceFromString("print 'hello IronPython'").Execute();
}
}
}