IronPython

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

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.

Dynamic Language Runtime (DLR) to projekt firmy Microsoft mający na celu stworzenie zestawu usług zbudowanych na bazie Common Language Runtime (CLR) wspomagających tworzenie i wykonywanie różnych dynamicznych języków programowania oraz ich integrację z platformą .NET Framework.Ruby to interpretowany, w pełni obiektowy i dynamicznie typowany język programowania stworzony w 1995 roku przez Yukihiro Matsumoto (pseudonim Matz). W języku angielskim ruby oznacza rubin.

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 w sztandarowym środowisku programistycznym firmy Microsoft, czyli Visual Studio. Implementację IronPython można wykorzystywać również, tworząc rozwiązania w technologii internetowej Silverlight.

Common Language Runtime (z ang. Środowisko Uruchomieniowe Wspólnego Języka, w skrócie CLR) to środowisko uruchomieniowe dla platformy .NET, przewidziane do pracy na wielu systemach operacyjnych i maszynach, jak Microsoft Windows, Unix czy Macintosh. Jest to maszyna wirtualna, która wykonuje kod wyrażony w Common Intermediate Language (CIL). Specyfikacja Wspólnego Języka (z ang. Common Language Specification, w skrócie CLS) określa podzbiór CLR, który kompilatory powinny obsługiwać, aby być kompatybilnymi z językami .NET.Otwarte oprogramowanie (ang. open source movement, dosł. ruch otwartych źródeł) – odłam ruchu wolnego oprogramowania (ang. free software), który proponuje nazwę open source software jako alternatywną dla free software, głównie z przyczyn praktycznych, a nie filozoficznych.

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.

Język programowania – zbiór zasad określających, kiedy ciąg symboli tworzy program komputerowy oraz jakie obliczenia opisuje.Python – język programowania wysokiego poziomu ogólnego przeznaczenia i rozbudowanym pakiecie bibliotek standardowych, którego ideą przewodnią jest czytelność i klarowność kodu źródłowego. Jego składnia cechuje się przejrzystością i zwięzłością.

IronPython – przykłady integracji z platformą .NET Framework[ | edytuj kod]

Poniższe przykłady ilustruję specyficzne dla implementacji IronPython przykłady użycia języka.

Common Language Infrastructure (z ang. architektura wspólnego języka, w skrócie CLI) to część platformy Microsoft .NET Framework, wykorzystywana jako środowisko uruchomieniowe oprogramowania stworzonego w różnych językach. Przed opracowaniem CLI każdy język wymagał własnego środowiska: Visual Basic – VBVM, Visual C++ (aż do Visual C++ .NET) – MSVCRT.Microsoft Visual Studio – to zintegrowane środowisko programistyczne firmy Microsoft. Jest używane do tworzenia oprogramowania konsolowego oraz z graficznym interfejsem użytkownika, w tym aplikacje Windows Forms, WPF, Web Sites, Web Applications i inne. Aplikacje mogą być pisane na platformy: Microsoft Windows, Windows Phone, Windows CE, .NET Framework, Microsoft Silverlight oraz konsole XBOX.

Rozszerzanie funkcjonalności języka[ | edytuj kod]

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.

IronRuby to implementacja języka Ruby stworzona pod platformę programistyczną .NET Framework. Jest to kolejny przykład wykorzystania Dynamic Language Runtime (DLR), czyli bibliotek wspomagających wykonywanie dynamicznych języków programowania, zbudowanych na bazie Common Language Infrastructure (CLI) i uruchamianych za pośrednictwem środowiska uruchomieniowego Common Language Runtime (CLR)..NET Framework, w skrócie .NET (wym. dot net) – platforma programistyczna opracowana przez Microsoft, obejmująca środowisko uruchomieniowe (Common Language Runtime – CLR) oraz biblioteki klas dostarczające standardowej funkcjonalności dla aplikacji. Technologia ta nie jest związana z żadnym konkretnym językiem programowania, a programy mogą być pisane w jednym z wielu języków – na przykład C++/CLI, C#, F#, J#, Delphi 8 dla .NET, Visual Basic .NET. Zadaniem platformy .NET Framework jest zarządzanie różnymi elementami systemu: kodem aplikacji, pamięcią i zabezpieczeniami. W środowisku tym można tworzyć oprogramowanie działające po stronie serwera internetowego (IIS) oraz pracujące na systemach, na które istnieje działająca implementacja tej platformy. Z racji jej pochodzenia najpełniej obsługiwane są systemy z rodziny Microsoft Windows, jednak ponieważ zasadnicza część platformy została zgłoszona jako standard ECMA, powstają także jego niezależne wdrożenia, np. Mono i dotGNU.

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[ | edytuj kod]

IronPython umożliwia łatwe wykorzystanie bibliotek standardowych dostarczanych wraz z platformą programistyczną .NET Framework.

Definicja intuicyjna: Java (wym. „dżawa”) to język programowania. Programy napisane w Javie można uruchamiać na wielu urządzeniach, takich jak telefony komórkowe lub komputery oraz pod różnymi systemami operacyjnymi, przy użyciu Wirtualnej maszyny Javy, która musi być w danym środowisku zainstalowana.Wirtualna maszyna Javy (ang. Java Virtual Machine, w skrócie JVM) – maszyna wirtualna oraz środowisko zdolne do wykonywania kodu bajtowego Javy. Według szacunków różnych firm i autorów publikacji, liczba urządzeń wyposażonych w JVM wynosi od 3 do 10 miliardów, w tym 1 miliard komputerów, a liczba programistów tworzących oprogramowanie na tę platformę – od 6,5 do 9 milionów.

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[ | edytuj kod]

Implementacja IronPython dostarcza również wiele mechanizmów umożliwiających osadzanie i wykonywanie tego języka we własnych programach i aplikacjach.

Microsoft Silverlight – technika internetowa działająca na licencji freeware, umożliwiająca wyświetlanie treści multimedialnych za pomocą przeglądarki. Rozwijany był pod kodową nazwą Windows Presentation Foundation/Everywhere (WPF/E) i zaprojektowany tak, aby współpracował z językami XAML oraz JavaScript. W wersji 2.0 możliwe jest pisanie w dowolnym języku obsługiwanym przez .NET, dodatkowo obsługuje języki interpretowane takie jak Ruby i Python. Większość aplikacji napisanych na platformę Windows Phone 7 wykorzystuje tę technikę.

Przykład:

using IronPython.Hosting;

namespace PythonHostingSamples
{
    class Program
    {
        static void Main(string args)
        {
            var engine = Python.CreateEngine();
            engine.CreateScriptSourceFromString("print 'hello IronPython'").Execute();
        }
    }
}


Podstrony: 1 [2] [3]




Reklama