Micro Python — эффективная реализация Python 3 для микроконтроллеров
Английский разработчик Дэмьен Джордж (Damien George) сегодня официально объявил о выпуске Micro Python — эффективной реализация Python 3 для встроенных систем с малым объёмом оперативной памяти. Разработка этой версии началась в декабре, после удачной кампании по сбору средств на выпуск Pyboard — контроллера, работающего на Питоне.«Хотя у Python много привлекательных функций, но его текущие реализации (читай, CPython) не подходят для встроенных систем, таких как микроконтроллеры и маленькие системы на кристалле, — пишет Дэмьен Джордж. — Причина в том, что CPython использует ужасно много оперативной памяти — и для стека, и для кучи — даже в простых операциях вроде сложения целых чисел».
Micro Python — новая реализация языка программирования Python 3, которая должна быть правильно совместима с CPython, в то же время используя минимальное количество ОЗУ, компактный компилятор и высокую производительность в среде выполнения.
Джордж объясняет, что добиться этого удалось за счёт нескольких трюков с указателями и оптимизацией кода. В результате, Micro Python поддерживает почти весь синтаксис Python 3.4 (работа ещё продолжается), а большинство скриптов занимают гораздо меньше ОЗУ и выполняются заметно быстрее, по сравнению с CPython.
Минимальный билд под ARM умещается в 80k, а со всеми функциями под Linux — в 200k. Базовая REPL-среда требует всего 2 килобайта ОЗУ.
Дополнительно, в Micro Python встроены два режима AOT-компиляции в нативный код, есть встроенный ассемблер для написания критичных ко времени приложений на микроконтроллере.
Реализация написана на C99 ANSI C и нормально компилируется под Unix (POSIX), Mac OS X, Windows и некоторых ARM-микроконтроллерах.