Jump to content

Сброшенная кожа

Сброшенная кожа
Оригинальный автор(ы) Марк Дюфур и другие
Первоначальный выпуск 2005
Стабильная версия
0.9.6 / 10 декабря 2022 г .; 19 месяцев назад ( 10.12.2022 )
Репозиторий
Написано в Питон , С++
Операционная система Кроссплатформенность : Linux , Mac OS X , Windows.
Доступно в Питон
Тип Компилятор исходного кода
Лицензия GPLv3 , BSD , Массачусетский технологический институт
Веб-сайт линька .github .что

Shed Skin — это экспериментальный с Python (3.8+) на C++ языка программирования компилятор с ограниченным доступом . Он может транслировать чистые, но неявно статически типизированные программы Python в оптимизированный C++. Он может создавать автономные программы или модули расширения, которые можно импортировать и использовать в более крупных программах Python.

Shed Skin — проект с открытым исходным кодом, в котором приняли участие многие люди, однако основным автором является Марк Дюфур . Работа над Shed Skin ведется с 2005 года. [1]

Помимо ограничения набора текста, [2] программы не могут свободно использовать стандартную библиотеку Python, хотя около 20 общих модулей, таких как random, itertools и re ( регулярные выражения ) поддерживаются с 2011 года. Кроме того, не все функции Python, такие как вложенные функции поддерживаются и переменное количество аргументов. Многие интроспективные динамические части языка не поддерживаются. Например, такие функции, как getattr, и hasattr не поддерживаются.

По состоянию на май 2011 г. Юникод не поддерживается. [3]

По состоянию на июнь 2016 года для набора из 75 нетривиальных тестовых программ (всего более 25 000 строк кода) [4] измерения показывают типичное ускорение в 2–20 раз по сравнению с Psyco и в 2–200 раз по сравнению с CPython . [5] [6] [7] [8] Shed Skin все еще находится на ранней стадии разработки, поэтому многие другие программы не будут компилироваться в неизмененном виде. [9]

Shed Skin можно использовать для создания автономных исполняемых файлов, которым нужны только библиотеки времени выполнения C++. Его также можно использовать для создания модулей CPython. Это позволяет компилировать части более крупных программ с помощью Shed Skin, одновременно запуская другие части с использованием обычного CPython.

Другое применение заключалось в обертке классов C++ с помощью Shed Skin, чтобы позволить использовать классы C++ как классы Python. [10]

Лицензия на исходный код Shed Skin состоит из двух частей. Основной код компилятора находится под лицензией GNU General Public License (GPL). Вспомогательный код, который он использует в качестве библиотеки времени выполнения, находится под лицензией BSD или MIT в зависимости от модуля. Это позволяет компилировать программы как под лицензией GPL, так и без нее.

Вывод типа

[ редактировать ]

Shed Skin сочетает в себе алгоритм декартового произведения (CPA) Оле Агесена с полиморфной частью итеративного потокового анализа (IFA) Джона Плевьяка. [11] В версии 0.6 представлены улучшения масштабируемости, которые позволяют многократно анализировать более крупные версии программы (в дополнение к упомянутым методам) до тех пор, пока она не будет полностью проанализирована. Это позволяет Shed Skin выполнять вывод типов в более крупных программах, чем раньше. По сути, он начинается с пустого графа вызовов и медленно добавляется к нему, пока не будет добавлен весь граф вызовов. Автор опубликовал график, показывающий время анализа для 50 примеров программ общим объемом около 15 000 строк. [12]

Для версии 0.9 в основном поддерживаются следующие 25 модулей. [13] Некоторые из них, например os.path, были скомпилированы на C++ с помощью Shed Skin.

  • множество
  • Бинаскии
  • разделить пополам
  • коллекции (defaultdict, deque)
  • ConfigParser (без SafeConfigParser)
  • копировать
  • Colorsys
  • csv (без диалекта, сниффера)
  • дата и время
  • фнматч
  • увенчанный
  • шарик
  • куча
  • itertools (без звездной карты)
  • математика
  • ммап
  • ты
  • путь к ОС
  • случайный
  • ре
  • розетка
  • нить
  • структура (без структуры, package_into, unpack_from)
  • система
  • время

Обратите внимание, что любой другой модуль, такой как pygame, pyqt или Pickle, может использоваться в сочетании с модулем расширения, созданным Shed Skin . Примеры этого см. в разделе « Примеры скинов Shed» .

См. также

[ редактировать ]
  1. ^ первый выпуск Shed Skin
  2. ^ Раздел книги «Изучение Python» на Shed Skin
  3. ^ Учебное пособие по Shed Skin (раздел «Ограничения подмножества Python»)
  4. ^ «Шедскин/Шедскин» . Гитхаб . 17 мая 2022 г.
  5. ^ Ускорьте свой Python: Unladen против Shed Skin против PyPy против Cython против C
  6. ^ Взятие Shed-Skin
  7. ^ Ускорение кода Python с помощью Shed Skin.
  8. ^ MiniLight, тест рендеринга минимального глобального освещения.
  9. ^ Веб-страница Shed Skin
  10. ^ Обертка классов C++ с использованием Shed Skin
  11. ^ Магистерская диссертация Марк Дюфур, «Сбросить кожу. Оптимизирующий компилятор Python-C++» , 19 апреля 2006 г.
  12. ^ Масштабируемость вывода типа , 2010-12
  13. ^ Примечания к выпуску Shedskin 0.9
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f28e08b46f3c0d68d63646e917a04c9a__1679063160
URL1:https://arc.ask3.ru/arc/aa/f2/9a/f28e08b46f3c0d68d63646e917a04c9a.html
Заголовок, (Title) документа по адресу, URL1:
Shed Skin - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)