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

Кіт Паккард (Кіт Пакард), активний розробник Debian, лідер проекту X.Org та творець безлічі X-розширень, включаючи XRender, XComposite та XRandR, опублікував новий випуск мови програмування Snek 1.5, який можна розглядати як спрощений варіант мови Python, адаптований для використання на вбудовуваних системах, на яких недостатньо ресурсів для використання мікропітон и 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 зібрані в ході краудфандингу.

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

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

У новому випуску:

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

Крім Snek Кіт Паккард також розвиває стандартну Сі-бібліотеку PicoLibc, яку можна використовувати на вбудованих пристроях з невеликою ОЗП.

Джерело: opennet.ru

Додати коментар або відгук