YaBasic
| YaBasic
| |
|---|---|
| [[Datei:Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)|150px]] | |
| Basisdaten
| |
| Maintainer | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) |
| Entwickler | u. a. Pedro Sá und Thomas Larsen<ref><templatestyles src="Webarchiv/styles.css" />Contact ( vom 19. Dezember 2013 im Internet Archive) (englisch) – Kontaktseite bei BasicProgramming.org; Stand: 19. Februar 2011</ref> |
| Erscheinungsjahr | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) |
| Aktuelle Version | 2.91.1 (24. Januar 2025) |
| Aktuelle Vorabversion | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) (Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)) |
| Betriebssystem | unixoide, Windows u. a. |
| Programmiersprache | C |
| Kategorie | Interpreter und Programmiersprache |
| Lizenz | Artistic License und GPL |
| deutschsprachig | ja |
| Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) | |
YaBasic ist ein quelloffener BASIC-Interpreter für Linux/Unix und für Windows. Er zeichnet sich durch seine Kompaktheit (gepackte Größe etwa 140 kB) und eine flexible Syntax aus: Für die Farbwahl sind zum Beispiel sowohl der Befehl color als auch colour möglich, und auch für if ... then ... else ... endif-Konstrukte gibt es eine Reihe verschiedener Syntax-Varianten usw.
Geschichte
YaBasic wurde ab 1995 von Marc-Oliver Ihm entwickelt. Die Version 2.763 wurde von ihm im Jahr 2005 als „final“ bezeichnet, da er sich nunmehr anderen Softwareprojekten widmen wollte.<ref>YaBasic (englisch) – Projektseite für YaBasic classic (bis Version 2.763); Stand: 3. Dezember 2008</ref> Im Jahr 2008 wurde die Weiterentwicklung von YaBasic durch Pedro Sá und Thomas Larsen aufgenommen. Sie entwickeln Patches für die Version 2.763 und arbeiten derzeit (2008) an YaBasic 3.<ref>Yabasic::Dev Article Future of Yabasic. In: BasicProgramming.org-Wiki. 28. Februar 2008, ehemals im Vorlage:IconExternal (nicht mehr online verfügbar); abgerufen am 3. Dezember 2008 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)). (Seite nicht mehr abrufbar. Suche im Internet Archive )</ref> Im Dezember 2010 wurde die erste Beta-Version von YaBasic 3 freigegeben.<ref><templatestyles src="Webarchiv/styles.css" />Yabasic 2.9.6 is out ( vom 17. Mai 2016 im Internet Archive) (englisch) – Bekanntgabe im Forum von BasicProgramming.org, am 6. Dezember 2009</ref> Seitdem ist es um dieses Projekt still geworden. Eine offizielle Version 3 ist bisher (Ende 2012) nicht erschienen. YaBasic v2.78.1 wurde am 13. August 2017 veröffentlicht. Die Version 2.78.0-1 ist in verschiedenen Linux-Distributionen integriert, wie z. B. Ubuntu 17.04<ref>Rhonda D'Vine: Ubuntu – Ergebnisse der Paketsuche -- yabasic. Abgerufen am 19. August 2017.</ref> oder Debian 9<ref>Debian-Webmaster: Debian -- Informationen über Paket yabasic in stretch. Abgerufen am 19. August 2017.</ref>.
Eigenschaften
YaBasic zeichnet sich gegenüber anderen BASIC-Interpretern durch folgende Eigenschaften aus:
- Keine Zeilennummern
- Strukturierte Programmierung mit Kontrollstrukturen (do ... loop usw.), Prozeduren und Modulen/Bibliotheken mit eigenen Namensräumen
- Selbstmodifizierender Code (für ein Beispiel, siehe unten)
- Möglichkeit der Generierung lauffähiger Executables durch Bindung des Interpreters an das BASIC-Programm
- Geplant für Version 3: Benutzerdefinierte Datentypen (UDTs)
Beispiele
Hallo-Welt-Programm
Das allgegenwärtige Hallo-Welt-Programm benötigt in YaBasic nur eine Zeile:
<syntaxhighlight lang="vbscript">
print "Hallo Welt!"
</syntaxhighlight>
Grafik
Der folgende Code gibt zwei rote Kreise aus:
<syntaxhighlight lang="vbscript">
open window 200,200 color 250,0,0 circle 50, 100, 80 // einfache version
new curve // etwas anspruchsvoller for phi=0 to 2*pi step 0.1 line to 100+90*sin(phi),100+90*cos(phi) next phi close curve
</syntaxhighlight>
Selbstmodifizierender Code
Zeichenketten können vom Interpreter während der Laufzeit zu ausführbarem Code übersetzt werden, was einem Programm erlaubt, sich selbst zu modifizieren.
Der Codeabschnitt
<syntaxhighlight lang="vbscript">
x$= "sub printme() : print \"Hallo Welt!\" : end sub" compile(x$)
</syntaxhighlight>
erzeugt zum Beispiel eine neue Prozedur,
<syntaxhighlight lang="vbscript">
sub printme() print "Hallo Welt!" end sub
</syntaxhighlight>
während das Programm läuft. Von nun an kann die Prozedur einfach durch
<syntaxhighlight lang="vbscript">
printme()
</syntaxhighlight>
oder über das geringfügig komplexere Kommando
<syntaxhighlight lang="vbscript">
y$= "printme()" execute(y$)
</syntaxhighlight>
aufgerufen werden.
Weitere Versionen
Die Version 3 befindet sich seit Dezember 2009 im Beta-Stadium.
YaBasic wird unter dem Namen yab auf Haiku/BeOS/ZETA portiert.<ref><templatestyles src="Webarchiv/styles.css" />yab Interpreter ( vom 28. September 2007 im Internet Archive) – Artikel bei kaldience.com; Stand: 30. Juli 2005; nicht öffentlich</ref>
Sony liefert YaBasic für die PlayStation 2 kostenlos mit der Demo-DVD der PAL-Version aus.
YaBasic steht unter der GPL und der Artistic License.
Weblinks
- Offizielle Website (englisch)
- yab-Interpreter ─ BeOS-Version von Yabasic
Einzelnachweise
<references />