Доступен Snek 1.5, Python-подобный язык программирования для встраиваемых систем


Кит Паккард (Keith Packard), активный разработчик Debian, лидер проекта X.Org и создатель множества X-расширений, включая XRender, XComposite и XRandR, опубликовал новый выпуск языка программирования Snek 1.5, который можно рассматривать как упрощённый вариант языка Python, адаптированный для использования на встраиваемых системах, на которых недостаточно ресурсов для использования MicroPython и CircuitPython. Snek не претендует на полноценную поддержку языка Python, но может использоваться на чипах, имеющих всего 2КБ ОЗУ, 32 КБ Flash-памяти и 1КБ EEPROM. Код проекта распространяется под лицензией GPLv3. Сборки подготовлены для Linux, Windows и macOS.

Потребность в новом языке возникла в ходе преподавательской практики Кита Паккарда, который хотел бы использовать для обучения студентов язык, пригодный для применения на платах Arduino и напоминающий по своим задачам Lego Logo, но способный стать базисом для дальнейшего обучения программированию. Ключевыми требованиями к новому языку были текстовый характер (демонстрация реальных методов программирования, не завязанных на графический интерфейс и мышь), предоставление базиса для полноценного обучения программированию и компактность языка (способность выучить язык за несколько часов).

В языке Snek используется семантика и синтаксис Python, но поддерживается лишь ограниченное подмножество возможностей. Одной из целей, которая учитывается при разработке, является сохранение обратной совместимости - программы на Snek могут выполняться с использованием полноценных реализаций Python 3. Т.е. студенты, знакомые с Snek, могут сразу перейти к продолжению изучения полноценного Python и использовать уже имеющиеся свои наработки при работе с Python.

Snek портирован для широкого спектра встраиваемых устройств, включая платы Arduino, Feather/Metro M0 Express, Adafruit Crickit, Adafruit ItsyBitsy, Lego EV3 и µduino, предоставляет доступ к GPIO и различным периферийным устройствам. При этом проект также развивает собственный открытый микроконтроллер Snekboard (ARM Cortex M0 с 256КБ Flash и 32КБ ОЗУ), рассчитанный на использование со Snek или CircuitPython, и нацеленный на обучение и создание роботов с использованием деталей LEGO. Средства для создания Snekboard собраны в ходе крaудфандинга.

Для разработки приложений на Snek может использоваться редактор кода Mu (патчи для поддержки) или собственная консольная интегрированная среда разработки Snekde, которая написана с использованием библиотеки Curses и предоставляет интерфейс для редактирования кода и взаимодействия с устройством через USB-порт (можно сразу сохранять программы в eeprom устройства и загружать код с устройства).

В новом выпуске:

  • Добавлен порт для платы Arduino Uno, который похож на порт для платы Duemilanove, но включает замену прошивки для Atmega 16u2.
  • Добавлена корректная поддержка цепочек операций сравнения (a ‹ b ‹ c).
  • Для плат Adafruit Circuit Playground Express обеспечена возможность вывода звука.
  • Для плат Duemilanove задействован загрузчик Optiboot, позволяющий заменить Snek, чтобы обойтись без применения отдельного устройства для программирования.

Помимо Snek Кит Паккард также развивает стандартную Си-библиотеку PicoLibc, которую можно использовать на встраиваемых устройствах с небольшим ОЗУ.

Источник: https://www.opennet.ru/opennews/art.shtml?num=53860


Comments 0