Новости и события » Hi-Tech » Google представил Grumpy, транслятор кода Python на язык Go

Google представил Grumpy, транслятор кода Python на язык Go

Компания Google открыла исходные тексты проекта Grumpy, в рамках которого развивается экспериментальный Python runtime для языка Go. Grumpy обеспечивает трансляцию кода на языке Python в представление на языке Go и позволяет бесшовно запускать оттранслированные Python-программы в runtime-окружении языка Go. Отмечается, что одной из основных целей проекта является обеспечение высокого уровня совместимости с CPython и достижение возможности применения Grumpy в качестве полноценной замены runtime для проектов на языке Python. Код транслятора написан на языке Python и поставляется под лицензией Apache 2.0.

Grumpy нацелен на использование в качестве прозрачной замены CPython 2.7. Grumpy не формирует байткод и не использует виртуальную машину. На выходе генерируется набор обычных исходных текстов на языке Go, которые затем могут быть преобразованы в машинный код при помощи штатного компилятора Go. При этом полученные после компиляции исходные тексты представляют собой серию вызовов к Grumpy runtime.

Grumpy состоит из трех основных компонентов:

  • grumpc - компилятор, выполняющий разбор кода на языке Python и генерацию кода на языке Go. Для разбора используется модуль ast;
  • Grumpy Runtime. Сформированный код на языке Go оперирует структурами данных, представляющими Python-объекты. Данные структуры и операции с ними определены в runtime-библиотеке grumpy, реализованной как аналог Python C API;
  • Стандартная библиотека Grumpy. Большинство штатных библиотек Python написаны на языке Python и без проблем работают в Grumpy. Стандартная библиотека Grumpy является незначительно модифицированной копией stdlib из состава CPython 2.7. Python-библиотеки в которых используются модули на языке Си переписаны на Python, но используют родные расширения языка Go.

Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх