Przejdź do zawartości

IronPython

Z Wikipedii, wolnej encyklopedii
To jest stara wersja tej strony, edytowana przez The Polish (dyskusja | edycje) o 02:36, 30 gru 2014. Może się ona znacząco różnić od aktualnej wersji.
IronPython
logo
Paradygmat

wieloparadygmatowy (obiektowy, imperatywny, funkcyjny)

Typowanie

dynamiczne

Implementacje

CPython, IronPython, Jython, PyPy

Aktualna wersja stabilna

2.7.3 (6 lipca 2012; około 12 lat temu)

Twórca

Jim Hugunin[1]

Licencja

Apache License, v2.0[2]

Platforma sprzętowa

wieloplatformowy

Platforma systemowa

wieloplatformowy

[[1] Strona internetowa]

IronPython – dynamiczny język 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 Common Language Infrastructure (CLI) i wykonywana pod kontrolą środowiska uruchomieniowego Common Language Runtime (CLR). 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 Dynamic Language Runtime (DLR), 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 – 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();
        }
    }
}

Zobacz też

Linki zewnętrzne