(übersetzten Text auf Deutsch)), aktiver Entwickler von Debian, Projektleiter von X.Org und Schöpfer zahlreicher X-Erweiterungen, einschließlich XRender, XComposite und XRandR, neueste Version der Programmiersprache , die als vereinfachte Version der Programmiersprache Python angesehen werden kann, angepasst für den Einsatz in eingebetteten Systemen, in denen nicht genügend Ressourcen für die Nutzung und vorhanden sind. Snek erhebt nicht den Anspruch auf vollständige Unterstützung der Programmiersprache Python, kann aber auf Chips verwendet werden, die nur über 2KB RAM, 32KB Flash-Speicher und 1KB EEPROM verfügen. Der Projektcode steht unter der GPLv3-Lizenz. Builds für Linux, Windows und macOS.
Die Notwendigkeit für eine neue Sprache entstand während der Lehrpraxis von Keith Packard, der einen Sprach verwenden wollte, die für den Unterricht von Studierenden geeignet ist, anwendbar auf Arduino-Boards und die an Lego Logo erinnert, aber die Grundlage für weiteres Lernen in der Programmierung bilden kann. Zentrale Anforderungen an die neue Sprache waren Textlichkeit (Demonstration realer Programmiertechniken, unabhängig von grafischen Oberflächen und Maus),
Bereitstellung einer Basis für eine vollständige Programmierausbildung und Kompaktheit der Sprache (die Fähigkeit, die Sprache innerhalb weniger Stunden zu erlernen).
Die Sprache Snek verwendet die Semantik und Syntax von Python, unterstützt jedoch nur eine eingeschränkte Teilmenge der Möglichkeiten. Ein Ziel, das bei der Entwicklung berücksichtigt wird, ist die Rückwärtskompatibilität — Programmen in Snek können mithilfe vollständiger Implementierungen von Python 3 ausgeführt werden. D.h. Studenten, die mit Snek vertraut sind, können sofort auf den weiteren Unterricht in vollem Umfang Python übergehen und ihre bereits vorhandenen Arbeiten bei der Arbeit mit Python nutzen.
Snek ist für eine Vielzahl von eingebetteten Geräten portiert, einschließlich Arduino-Boards, Feather/Metro M0 Express, Adafruit Crickit, Adafruit ItsyBitsy, Lego EV3 und µduino, und bietet Zugriff auf GPIO und verschiedene Peripheriegeräte. Währenddessen entwickelt das Projekt auch einen eigenen offenen Mikrocontroller (ARM Cortex M0 mit 256KB Flash und 32KB RAM), der für den Einsatz mit Snek oder CircuitPython ausgelegt ist und darauf abzielt, das Lernen und den Bau von Robotern mit LEGO-Teilen zu unterstützen. Mittel zur Entwicklung von Snekboard im Rahmen von Crowdfunding gesammelt.
Für die Entwicklung von Anwendungen in Snek kann der Code-Editor () oder eigene integrierte Entwicklungsumgebung , die mit der Curses-Bibliothek geschrieben wurde und eine Benutzeroberfläche zum Bearbeiten von Code und zur Interaktion mit dem Gerät über den USB-Anschluss bereitstellt (Programme können sofort im eeprom des Geräts gespeichert und Code vom Gerät geladen werden).
In der neuen Version:
- Ein Port für das Arduino Uno-Board wurde hinzugefügt, der dem Port für das Duemilanove-Board ähnelt, jedoch einen Firmware-Ersatz für den Atmega 16u2 beinhaltet.
- Die korrekte Unterstützung von Vergleichsoperationen (a < b < c) wurde hinzugefügt.
- Für Adafruit Circuit Playground Express-Platinen wurde die Möglichkeit zur Audioausgabe bereitgestellt.
- Für Duemilanove-Platinen wurde der Bootloader , aktiviert, um Snek zu ersetzen, damit kein separates Programmiergerät verwendet werden muss.
Neben Snek bietet Kit Packard auch die Standard C-Bibliothek , die auf eingebetteten Geräten mit wenig RAM verwendet werden kann.
Quelle: opennet.ru
