Выпуск Snek 1.10, Python-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ языка программирования для встраиваСмых систСм

ΠšΠΈΡ‚ ΠŸΠ°ΠΊΠΊΠ°Ρ€Π΄ (Keith Packard), Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Debian, Π»ΠΈΠ΄Π΅Ρ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° X.Org ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ мноТСства X-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ XRender, XComposite ΠΈ XRandR, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Π½ΠΎΠ²Ρ‹ΠΉ выпуск языка программирования Snek 1.10, ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ языка Python, Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ для использования Π½Π° встраиваСмых систСмах, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… нСдостаточно рСсурсов для использования MicroPython ΠΈ CircuitPython. Snek Π½Π΅ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΡƒΠ΅Ρ‚ Π½Π° ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ языка Python, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‡ΠΈΠΏΠ°Ρ…, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… всСго 2ΠšΠ‘ ΠžΠ—Π£, 32 ΠšΠ‘ Flash-памяти ΠΈ 1ΠšΠ‘ EEPROM. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPLv3. Π‘Π±ΠΎΡ€ΠΊΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ для Linux, Windows ΠΈ macOS.

Π’ языкС Snek ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСмантика ΠΈ синтаксис Python, Π½ΠΎ поддСрТиваСтся лишь ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ подмноТСство возмоТностСй. Одной ΠΈΠ· Ρ†Π΅Π»Π΅ΠΉ, которая учитываСтся ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, являСтся сохранСниС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Snek ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с использованиСм ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Python 3.

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Snek ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° Mu (ΠΏΠ°Ρ‚Ρ‡ΠΈ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ) ΠΈΠ»ΠΈ собствСнная консольная интСгрированная срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Snekde, которая написана с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Curses ΠΈ прСдоставляСт интСрфСйс для рСдактирования ΠΊΠΎΠ΄Π° ΠΈ взаимодСйствия с устройством Ρ‡Π΅Ρ€Π΅Π· USB-ΠΏΠΎΡ€Ρ‚ (ΠΌΠΎΠΆΠ½ΠΎ сразу ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² eeprom устройства ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ с устройства).

Snek ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… встраиваСмых устройств, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠ»Π°Ρ‚Ρ‹ Arduino, Feather/Metro M0 Express, Adafruit Crickit, Adafruit ItsyBitsy, Lego EV3 ΠΈ µduino, прСдоставляСт доступ ΠΊ GPIO ΠΈ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΌ устройствам. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ собствСнный ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Snekboard (ARM Cortex M0 с 256ΠšΠ‘ Flash ΠΈ 32ΠšΠ‘ ΠžΠ—Π£), рассчитанный Π½Π° использованиС со Snek ΠΈΠ»ΠΈ CircuitPython, ΠΈ Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ созданиС Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΠ² с использованиСм Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ LEGO.

Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° использования 512-Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° ubaboot Π½Π° ΠΏΠ»Π°Ρ‚Π°Ρ… ATmega 32u4.
  • Π’ глобальноС пространство ΠΈΠΌΡ‘Π½ пСрСнСсСны Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, связанныС с матСматичСскими вычислСниями, Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ псСвдослучайных чисСл (ΠΌΠΎΠ΄ΡƒΠ»ΠΈ «math», «time» ΠΈ «random»), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· прСфиксов «math.», «time.» ΠΈ «random.».
  • ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² AVR Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для Π½ΠΎΠ²ΠΎΠΉ avr libc ΠΈ компилятора gcc-avr Π½Π° Π±Π°Π·Π΅ gcc 14.
  • Для всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… устройств ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² псСвдослучайных чисСл snek-random.c ΠΈ snek-random-small.c (Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π±Π΅Π· 64-разрядной Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ для ΠΌΠ°Π»ΠΎΠΌΠΎΡ‰Π½Ρ‹Ρ… устройств).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru