- PVSM.RU - https://www.pvsm.ru -

Micro Python — эффективная реализация Python 3 для микроконтроллеров

Micro Python — эффективная реализация Python 3 для микроконтроллеров

Английский разработчик Дэмьен Джордж (Damien George) сегодня официально объявил [1] о выпуске Micro Python — эффективной реализация Python 3 для встроенных систем с малым объёмом оперативной памяти. Разработка этой версии началась в декабре, после удачной кампании [2] по сбору средств на выпуск Pyboard — контроллера, работающего на Питоне.

«Хотя у Python много привлекательных функций, но его текущие реализации (читай, CPython) не подходят для встроенных систем, таких как микроконтроллеры и маленькие системы на кристалле, — пишет Дэмьен Джордж. — Причина в том, что CPython использует ужасно много оперативной памяти — и для стека, и для кучи — даже в простых операциях вроде сложения целых чисел».

Micro Python [3] — новая реализация языка программирования Python 3, которая должна быть правильно совместима с CPython, в то же время используя минимальное количество ОЗУ, компактный компилятор и высокую производительность в среде выполнения.

Джордж объясняет, что добиться этого удалось за счёт нескольких трюков с указателями и оптимизацией кода. В результате, Micro Python поддерживает почти весь [4] синтаксис Python 3.4 (работа ещё продолжается), а большинство скриптов занимают гораздо меньше ОЗУ и выполняются заметно быстрее, по сравнению с CPython.

Минимальный билд под ARM умещается в 80k, а со всеми функциями под Linux — в 200k. Базовая REPL-среда требует всего 2 килобайта ОЗУ.

Дополнительно, в Micro Python встроены два режима AOT-компиляции в нативный код, есть встроенный ассемблер для написания критичных ко времени приложений на микроконтроллере.

Реализация написана на C99 ANSI C и нормально компилируется под Unix (POSIX), Mac OS X, Windows и некоторых ARM-микроконтроллерах.

Автор: alizar

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/kraudfanding/61436

Ссылки в тексте:

[1] объявил: https://mail.python.org/pipermail/python-list/2014-June/672994.html

[2] кампании: http://habrahabr.ru/post/205626/

[3] Micro Python: http://micropython.org/

[4] почти весь: https://github.com/micropython/micropython/wiki/Differences

[5] Источник: http://habrahabr.ru/post/225131/