IronPython

IronPython — одна з основних реалізацій мови Python, призначена для платформи Microsoft .NET або Mono. Повністю написаний на C#, і є транслятором компілюючого типу.

IronPython

Тип Інтерпретатор мови програмування Python
Розробник Jim Hugunin, Dino Viehland
Перший випуск 5 вересня, 2006
Стабільний випуск 2.7.5 (6 грудня, 2014)
Версії 2.7.11 (17 листопада 2020)[1]
Репозиторій https://github.com/IronLanguages/ironpython2, https://github.com/IronLanguages/ironpython3
Платформа .NET Framework, Mono
Мова програмування C Sharp і Python
Ліцензія Apache License version 2.0[2]
Вебсайт ironpython.net

В IronPython можна використовувати типи .NET. Також можна з .NET коду використовувати IronPython код, з застосуванням хостингу IronPython системи або попередньої збірки IronPython коду.

Версії

  • Версія 2.0 вийшла 10 грудня 2008 і оновлена до 2.0.3 23 жовтня 2009.[3] IronPython 2.0.3 сумісний з .NET лише до версії 3.5.
  • Версія 2.6 вийшла 11 грудня 2009 і оновлена 12 квітня 2010.[4] IronPython версії 2.6.1 сумісний тільки з .NET фреймворком 4.0.
  • Версія 2.7 вийшла 11 грудня 2009 і оновлена 12 квітня 2010.[5]
  • Версія 2.7.1 вийшла 21 жовтня 2011.[6]
  • Версія 2.7.2.1 вийшла 13 березня 2012. В цій версії додана підтримка бібліотек для формату ZIP, SQLite, і скомпільованих виконуваних файлів.[7]
  • Версія 2.7.4 вийшла 7 вересня 2013.[8]
  • Версія 2.7.5 вийшла 6 грудня 2014 і в основному відрізнялася від попередньої лише виправленням багів.[9]

Відмінності з CPython

Є деякі відмінності між реалізацією мови програмування Python у CPython та IronPython.[10] Деякі проекти на IronPython не працюють під CPython.[11] З іншого боку, програми на CPython, які залежать від розширень мови, що реалізуються на C (наприклад NumPy) не сумісні з IronPython.[12]

Silverlight

IronPython підтримується на Silverlight. Його можна використати, як скриптовий рушій в браузері, так само, як в JavaScript. Скрипти IronPython передаються, як прості JavaScript-скрипти в <script>-тегах. Після цього можна модифікувати вбудовану розмітку XAML.

Технологія нижче називається Gestalt.

// DLR initiation script.
<script src="http://gestalt.ironpython.net/dlr-latest.js" type="text/javascript"></script>

// Client-side script passed to IronPython and Silverlight.
<script type="text/python">
    window.Alert("Hello from Python")
</script>

Приклади

Цей скрипт використовує .NET фреймворк для виводу простого вікна повідомлення з текстом «Hello World»:

import clr
clr.AddReference("System.Windows.Forms")

from System.Windows.Forms import MessageBox
MessageBox.Show("Hello World")

Простий приклад використання графічного інструменту GTK+ в оточенні IronPython:

#!/usr/bin/env ipy
#-*- coding: UTF-8 -*-

import clr
clr.AddReference('gtk-sharp')
import Gtk

def button_clicked(button, args):
    print('Привіт світе!')

def main():
    Gtk.Application.Init()

    window = Gtk.Window('Вікно вітання')
    window.SetDefaultSize(240, 180)
    window.DeleteEvent += lambda w, a: Gtk.Application.Quit()

    button = Gtk.Button('Натисни мене')
    button.Clicked += button_clicked
    button.Show()

    window.Add(button)
    window.Present()

    Gtk.Application.Run()

if __name__ == '__main__':
    main()

Наступний IronPython скрипт керує об'єктами .NET.

from BookService import BookDictionary
 
booksWrittenByBookerPrizeWinners = [book.Title for book in BookDictionary.GetAllBooks() 
                                    if "Booker Prize" in book.Author.MajorAwards]

Примітки

  1. Release 2.7.11 — 2020.
  2. IronPython license (ironpython.codeplex.com). Архів оригіналу за 8 липня 2011. Процитовано 31 липня 2015.
  3. 2.0.3. ironpython.codeplex.com. Архів оригіналу за 26 грудня 2017. Процитовано 16 жовтня 2010.(англ.)
  4. 2.6. ironpython.codeplex.com. Архів оригіналу за 13 січня 2018. Процитовано 16 жовтня 2010.(англ.)
  5. 2.7. ironpython.codeplex.com. Архів оригіналу за 2 січня 2018. Процитовано 12 березня 2011.(англ.)
  6. 2.7.1. ironpython.codeplex.com. Архів оригіналу за 26 грудня 2017. Процитовано 30 грудня 2011.(англ.)
  7. 2.7.2.1. ironpython.codeplex.com. Архів оригіналу за 26 грудня 2017. Процитовано 24 березня 2012.(англ.)
  8. 2.7.4. ironpython.codeplex.com. Архів оригіналу за 16 січня 2018. Процитовано 7 грудня 2014.(англ.)
  9. 2.7.5. ironpython.codeplex.com. Архів оригіналу за 26 січня 2018. Процитовано 7 грудня 2014.(англ.)
  10. Differences between IronPython 1.0 and CPython 2.4.3. Microsoft. 18 грудня 2007. Процитовано 9 лютого 2008.(англ.)
  11. Foord, Michael. New Project: Implementing .NET Libraries in Pure Python. Архів оригіналу за 30 серпня 2008. Процитовано 9 лютого 2008.(англ.)
  12. Eby, Phillip. Children of a Lesser Python. Процитовано 9 липня 2008.(англ.)

Див. також

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.