4 Punkte von GN⁺ 2023-10-09 | 1 Kommentare | Auf WhatsApp teilen
  • Dieser Artikel stellt Berry vor, eine ultraleichte eingebettete Skriptsprache mit dynamischer Typisierung.
  • Berry wurde speziell für leistungsschwache eingebettete Geräte entwickelt.
  • Die Codegröße des Berry-Interpreterkerns beträgt weniger als 40 KiB und kann mit weniger als 4 KiB Heap ausgeführt werden. Dies wurde auf einer ARM Cortex M4 CPU mit Thumb ISA und dem ARMCC-Compiler getestet.
  • Der Interpreter von Berry umfasst einen One-Pass-Compiler und eine registerbasierte virtuelle Maschine (VM). Der gesamte Code wurde in ANSI C99 geschrieben.
  • In Berry sind nicht alle Typen Klassenobjekte. Einfache Werttypen wie int, real, boolean und string sind keine Klassenobjekte, während list, map und range Klassenobjekte sind. Dies ist auf Performance-Überlegungen zurückzuführen.
  • Im Kontext von Berry hat der Begriff „registerbasierte VM“ dieselbe Bedeutung wie im allgemeinen Computing.

1 Kommentare

 
GN⁺ 2023-10-09
Hacker-News-Kommentare
  • Berry ist eine ultraleichte, dynamisch typisierte eingebettete Skriptsprache mit einem erstaunlich umfangreichen Funktionsumfang bei einer 40-KB-Runtime.
  • Sie verwendet eine Python/Ruby-ähnliche Sprache und unterstützt prozedurale, objektorientierte oder funktionale Stile.
  • Berry hebt sich dadurch hervor, dass konstante Objekte vorab erzeugt und die meisten davon im ROM abgelegt werden, wodurch RAM für veränderliche Daten gespart wird – eine Funktion, die man bei MicroPython oder Lua nicht findet.
  • Berry wird in Tasmota verwendet, einer Plattform für IoT-Geräte.
  • Die Dokumentation der Sprache wird sehr gelobt, sowohl für ihre Vollständigkeit als auch für das enthaltene „kurze Handbuch“ für erfahrene Entwickler.
  • Einige Nutzer äußerten den Wunsch nach einer ähnlichen Sprache mit weniger Paradigmen und statischer Typisierung zur Verwendung als Konfigurationssprache.
  • Es gibt Vorschläge, Bindings für andere Sprachen bereitzustellen, sowie Fragen zur Möglichkeit von Function Resumption oder Generatoren.
  • Nutzer interessieren sich für Vergleiche zwischen Berry und Lua hinsichtlich Performance und Speichernutzung sowie für Sandboxing-Funktionen zum Ausführen nicht vertrauenswürdigen Codes.
  • Es gibt eine Frage nach der Möglichkeit, in nativen Stack-Traces Stack-Frames mit den Namen von Skriptfunktionen anzuzeigen.