Uscita di Snek 1.10, un linguaggio di programmazione simile a Python per sistemi embedded

Keith Packard, sviluppatore attivo di Debian, leader del progetto X.Org e creatore di molte estensioni X, tra cui XRender, XComposite e XRandR, ha pubblicato una nuova versione del linguaggio di programmazione Snek 1.10, posizionato come un'alternativa semplificata a Python, adattata per l'uso su sistemi embedded con risorse limitate per MicroPython e CircuitPython. Snek non mira a fornire un supporto completo per Python, ma può essere utilizzato su chip con soli 2 KB di RAM, 32 KB di memoria Flash e 1 KB di EEPROM. Il codice del progetto è distribuito con licenza GPLv3. Le build sono disponibili per Linux, Windows e macOS.

Il linguaggio Snek utilizza la semantica e la sintassi di Python, ma supporta solo un insieme limitato di funzionalità. Uno degli obiettivi considerati durante lo sviluppo è mantenere la retrocompatibilità: i programmi scritti in Snek possono essere eseguiti utilizzando implementazioni complete di Python 3.

Per lo sviluppo di applicazioni in Snek è possibile utilizzare l'editor di codice Mu (con patch per il supporto) o il proprio ambiente di sviluppo integrato da riga di comando Snekde, che è scritto utilizzando la libreria Curses e fornisce un'interfaccia per modificare il codice e interagire con il dispositivo attraverso la porta USB (permette di salvare immediatamente i programmi nella EEPROM del dispositivo e caricare il codice dal dispositivo).

Snek è stato portato su vari dispositivi embedded, inclusi schede Arduino, Feather/Metro M0 Express, Adafruit Crickit, Adafruit ItsyBitsy, Lego EV3 e µduino, offrendo accesso a GPIO e dispositivi periferici. Il progetto ha anche sviluppato il proprio microcontrollore open source Snekboard (ARM Cortex M0 con 256KB di Flash e 32KB di RAM), progettato per essere utilizzato con Snek o CircuitPython, e focalizzato sull'insegnamento e la creazione di robot utilizzando componenti LEGO.

Nel nuovo rilascio:

  • Aggiunta la possibilità di utilizzare un bootloader di 512 byte, ubaboot, su schede ATmega 32u4.
  • Nel namespace globale sono state trasferite le funzioni correlate ai calcoli matematici, al tempo e alla generazione di numeri pseudo-casuali (moduli 'math', 'time' e 'random'), che ora possono essere utilizzate senza prefissi 'math.', 'time.' e 'random.'.
  • I componenti per il supporto dei microcontrollori AVR sono stati adattati per la nuova avr libc e il compilatore gcc-avr basato su gcc 14.
  • Per tutti i dispositivi supportati sono state proposte implementazioni unificate dei generatori di numeri pseudocasuali snek-random.c e snek-random-small.c (versione senza aritmetica a 64 bit per dispositivi a bassa potenza).

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster