Zum Inhalt springen

IronPython

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 7. Juli 2007 um 19:12 Uhr durch BotMultichill (Diskussion | Beiträge) (Bot: Ergänze: nl:IronPython). Sie kann sich erheblich von der aktuellen Version unterscheiden.
IronPython
Basisdaten
Erscheinungsjahr: 2006
Designer: Jim Hugunin
Entwickler: Jim Hugunin, Microsoft
Aktuelle Version: 1.1  (17. April 2007)
Betriebssystem: Plattformunabhängig
Lizenz: Microsoft Permissive License 1.1
www.codeplex.com

IronPython ist eine Implementierung der Programmiersprache Python für die Common-Language-Infrastructure. Sie zielt also auf Microsofts .NET-Umgebung beziehungsweise auf die Open-Source-Variante Mono ab.

IronPython ist vollständig in C# geschrieben und wird im Rahmen von Microsofts Shared-Source-Initiative bereitgestellt. IronPython steht in der Version 1.1 zur Verfügung und implementiert den Sprachumfang von cPython 2.4 sowie einige der Schlüsselworte von Python 2.5.

In IronPython erstellte Programme lassen sich sowohl interpretieren als auch just-in-time in ausführbare Dateien übersetzen. Wie in .NET üblich, kann man mit IronPython auf Bibliotheken zugreifen die in anderen .NET Sprachen geschrieben wurden, ebenso wie diese mit Einschränkungen auf in IronPython geschriebene Bibliotheken zugreifen können.

Die IronPython Umgebung kann als eine Skriptsprache zum automatisieren einer .NET Anwendung genutzt werden. Dabei wird die Laufzeitumgebung in die .NET Anwendung eingebunden. Es können beliebige Objekte an das Skript übergeben werden, was z.B. für Spieleerweiterungen, Pluginentwicklungen usw. sinnvoll ist.

Beispiele

Eine Ausgabe ohne .NET Bibliothek:

print "Hallo Welt!"

Das gleiche Beispiel diesmal mit einer "internen" .NET Bibliothek:

from System import Console

Console.WriteLine("Hallo Welt!")

Und einmal mit Hilfe einer "externen" .NET Bibliothek, wobei die MyLib.dll in einer beliebigen anderen .NET Sprache (z.B. C#, VisualBasic, C++) geschrieben sein kann:

import clr
clr.AddReferenceToFile("MyLib.dll")
from MyLib import Out

Out.Print("Hallo Welt!")

IronPython in C# einbinden (z.B. als Taschenrechner):

using System;
using IronPython.Hosting;

public class Eval {
    public static void Main(string[] args) {
        PythonEngine pe = new PythonEngine();
        Console.WriteLine(pe.Evaluate(args[0]));
    }
}

Nehmen wir an, das C# Programm liegt als eval.exe kompiliert vor. Wenn jetzt die IronPython-Laufzeitbibliotheken IronPython.dll und IronMath.dll (z.B. in dem selben Verzeichnis) vorhanden sind, können wir beliebige Pythonausdrücke evaluieren:

C:\> eval.exe 2+2
4
C:\> eval.exe 2**3
8
C:\> eval.exe 5%3
2

In einem Tutorial, das mit dem IronPython-Paket mitgeliefert wird, ist ein Beispiel zu sehen, wie IronPython als Skriptsprache für C# benutzt werden kann.

Siehe auch

  • Python - Die Programmiersprache Python
  • Jython - Java-Implementierung der Programmiersprache Python.
  • PyPy - Implementierung der Programmiersprache Python in Python selbst.
  • Boo - Implementierung der Python-ähnlichen Programmiersprache Boo für .NET.