IronPython

作者
開発元
初版 2006年9月5日 (19年前) (2006-09-05)[1]
最新版
3.4.2 / 2024年12月20日 (17か月前) (2024-12-20)[2]
リポジトリ ウィキデータを編集
プログラミング
言語
C#
プラットフォーム
種別 Python実装
ライセンス Apache License 2.0
公式サイト ironpython.net ウィキデータを編集
テンプレートを表示

IronPythonとは、.NET Framework/Mono/.NET Core上で動作するPythonの実装である。Jim Huguninによって開発が進められ、2006年9月5日に初版がリリースされた。バージョン1.x系のIronPythonはPython 2.4.3と互換性がある。IronPython 2.7はPython 2.7互換である[3]

.NET Frameworkの持つ豊富なクラスライブラリをPythonの文法でシームレスに利用できるだけでなく、従来のPython(CPython)のコード資産さえもある程度そのまま利用できることが特徴である。また、.NETの実行環境に対応した各種ツールが、そのまま利用できる点もメリットといえる。

もともとPythonはスクリプト言語であるが、IronPythonコンパイラサービスによって.NETアセンブリにコンパイルすることも可能である。これは、スクリプト言語として利用する場合はバイトコードに動的コンパイルし、アセンブリの場合は、それが事前コンパイルされたものと考えることができる。

IronPython自身はC#で実装されている。

開発の歴史

編集

IronPythonの起源は、「CLIの設計は動的言語との相性が悪い」という.NET Frameworkの問題点を検証するために作成された検証用のプロトタイプであった。IronPythonの作者であるJim Huguninは2003年に、この論文を発表した。その後、「何故、.NET Frameworkは動的言語として駄目なプラットフォームなのか?」という短い論文を書くために、Pythonの移植を試みたところ、彼の意に反して良く動くものができてしまった。そこで、彼は開発を継続することとし、Open Source Conference 2004 でIronPython 0.6をCommon Public Licenseでリリースした。2003年の論文が間違いであったことを、彼自身の手で証明したことになる。

その後、Jim Huguninはマイクロソフトに合流してIronPythonの開発を継続、.NET Framework 2.0に対応したバージョンを作成し、現在ではShared Source Licensing Programとしてリリースしている。

IronPython 2.x系列は.NET 4に対応し、DLR(動的言語ランタイム)上に実装されている。なお、IronPython 2.7までは、対話環境であるIronPython Interactiveや、IronPython用の各種プロジェクト テンプレートをVisual Studio 2010に統合する"IronPython Tools for Visual Studio"がインストーラに含まれていたが[4]、2.7.1以降は"Python Tools for Visual Studio" (PTVS) への将来的な移行を見越して、"IronPython Tools~"は廃止されている[5]。PTVS 2.2はVisual Studio 2013と2015に対応する[6]。Visual Studio 2015のインストーラーには、PTVSをインストールするオプションが正式に含まれている。

2022年12月12日、Python 3.xをサポートする初の正式版のIronPython 3.4.0がリリースされた[7]。IronPython 3.4.0は.NET Framework 4.6.2、.NET Core 3.1および.NET 6をターゲットにしている。

コード例

編集

Hello, World

編集

CPythonの機能と.NET Frameworkの機能を併用する例を示す。

# -*- coding: utf-8 -*-
# CPython 2.x の組み込み命令を使って標準出力する。
print '%d, %f, %s' % (10 * 10, 2 + .3, '"Hello, CPython"')
# .NET Framework の基本クラスライブラリを使って標準出力する。
import System
System.Console.WriteLine('{0}, {1}, {2}', 10 * 10, 2 + .3, '"Hello, IronPython"')

脚注

編集
  1. ^ Hugunin, Jim (2015年2月19日). “IronPython 1.0 released today!”. Microsoft Docs. 2020年9月21日閲覧。
  2. ^ Releases · IronPython 3.4.2”. GitHub. 2025年2月2日閲覧。
  3. ^ IronPython.net / Documentation
  4. ^ RELEASE NOTES IronPython”. CodePlex (2011年3月13日). 2015年7月1日閲覧。
  5. ^ RELEASE NOTES IronPython”. CodePlex (2011年10月22日). 2015年7月1日閲覧。
  6. ^ 「Visual Studio 2015」に対応した「Python Tools for Visual Studio 2.2」が正式版に - 窓の杜
  7. ^ Release IronPython 3.4.0”. IronPython Team. 2022年12月13日閲覧。

関連項目

編集

外部リンク

編集

📚 Artikel Terkait di Wikipedia

IronRuby

Licensing Changes for IronRuby and IronPython” (2010年7月17日). 2010年7月18日閲覧。 ^ “New Components and Contributors for IronPython and IronRuby” (2010年10月21日). 2010年10月22日閲覧。

動的言語ランタイム

PythonやRubyのような動的言語を.NET Framework上に実装することを意図したものである。例えば、具体的な処理系としてはIronRuby、IronPython 2.0、動的Visual Basic .NET(VBx)、マネージJScriptなどで使われている。

SharpDevelop

対応するプログラミング言語は、C#、Visual Basic .NET、Boo、IronPython、IronRubyがあり、パーサにより、C#、Microsoft Visual Basic .NET、Boo、IronPython、IronRubyの各言語を相互に変換できるコンバータが含まれている。バージョン5

Python

ずデストラクトされることを保証している。なおJythonおよびIronPythonではマーク・アンド・スイープ方式を採用しているため、スコープアウトした時点で必ずデストラクトされることが前提のコードだとJythonやIronPythonでは正しく動かない。 イテレータを実装するためのジェネレータが

プログラミング言語一覧

HyperTalk Icon ID IDL (Interactive Data Language) Inform INTERCAL Io IPL IronPython ISWIM J Jancy Java Java FX Script(英語版) JavaScript JHDL JScript .NET JSFuck

Jython

Java仮想マシンでの作動を前提とする独自の動的言語 Jacl - JavaによるTclの実装 JRuby - JavaによるRubyの実装 IronPython - .NET/Mono向けのPython実装。Jythonを作ったJim Huguninによって開発が始められた。 Jython ホームページ

CLPython

Lisp による Python の実装である。 ポータル Free software CPython - C による標準の Python 実装 IronPython - .NET と Mono をプラットフォームとした C# による Python 実装 Jython - JVM 上の Python 実装

Phalanger

ーム非依存の最適化、実行時にプラットフォーム依存の最適化を行うなど、あらゆる時点でPHPプログラムを極限まで最適化するためである。 この点はIronPythonやIronRuby、F#などといった.NET Framework対応言語間の相互運用を重視したものとは異なる点である。 ^ “DEVSENSE/Phalanger: