Microsoft QuickBASIC ist eine integrierte Entwicklungsumgebung mit Compiler für MS-DOS, die von Microsoft von 1985 bis 1988 entwickelt wurde (Versionen 1.0 bis 4.5). Sie basiert lose auf GW-BASIC, ergänzt aber benutzerdefinierte Typen, verbesserte Programmstrukturen, bessere Grafik- und Dateiunterstützung sowie einen Compiler neben dem Interpreter. QuickBASIC 4.5 (1988) war die bekannteste Version.
Die wichtigsten Anweisungen
BC.EXE– Kommandozeilen-Compiler, erzeugt ObjektdateienLINK.EXE– Linker für eigenständige EXE-Dateien,LIB.EXE– BibliotheksverwaltungDECLARE– Prozedurdeklaration,CALL– ProzeduraufrufSUB ... END SUB,FUNCTION ... END FUNCTION– Prozeduren und FunktionenTYPE ... END TYPE– Benutzerdefinierte Datentypen (Records)DO ... LOOP,WHILE ... WEND,FOR ... NEXT– Schleifen mitEXIT DO/EXIT FORIF ... THEN ... ELSEIF ... ELSE ... END IF,SELECT CASE– VerzweigungenCONST– Konstanten,DIMundDIM SHARED– Variablen und ArraysSHARED,STATIC,COMMON– GültigkeitsbereicheLBOUND,UBOUND– Array-Grenzen,OPTION BASE– Startindex
Beispiel: Funktion mit TYPE
TYPE Adresse
Name AS STRING * 30
PLZ AS INTEGER
END TYPE
DIM a AS Adresse
a.Name = "Max Muster"
PRINT a.Name
Geschichte und Nachfolger
- 1990 folgte das Professional Development System (PDS 7.0/7.1) mit
QBX.EXEund erweiterten Bibliotheken. - Der direkte Nachfolger ist Visual Basic 1.0 (1991) für MS-DOS und Windows.
- QuickBASIC 4.5 ist die Referenzimplementierung für den modernen Nachfolger QB64.
- Der Interpreter QBasic wurde ab MS-DOS 5.0 mitgeliefert und ist weitgehend quickbasic-kompatibel.
Praxis-Tipps
- Im IDE-Modus lief das Programm interpretiert; erst der Befehl
Make EXEkompilierte es zu einer eigenständigen Datei. - Die Kombination aus sofortigem Testen und schnellem Kompilieren machte QuickBASIC zum Standard für DOS-Programmierung in den späten 1980er- und frühen 1990er-Jahren.
bc ist ein Programm für arithmetische Berechnungen mit beliebiger Genauigkeit und eine eigene, C-ähnliche Programmiersprache. Es wurde von Lorinda Cherry und Robert Morris an den Bell Labs entwickelt, erschien erstmals in Version 6 von AT&T UNIX (1975) und ist heute als POSIX-Standard (IEEE Std 1003.1) Teil jedes Linux- und BSD-Systems. bc ist der Infix-Präprozessor des RPN-Rechners dc – beide stammen von demselben Entwicklerpaar.
Grundlegende Nutzung
echo "5 + 3" | bc # 8
echo "scale=5; 22 / 7" | bc # 3.14285
echo "obase=16; 255" | bc # FF
bc -l # mit Math-Bibliothek starten
Die wichtigsten Anweisungen und Variablen
scale– Anzahl der Nachkommastellen,ibase/obase– Ein- und Ausgabebasislast– Ergebnis des letzten Ausdrucks (GNU-Erweiterung)quit– bc beenden,sqrt(x)– Quadratwurzel,length(x)– Anzahl der Zifferndefine f(x) { ... }– eigene Funktionen,auto– lokale Variablenif (Bedingung) ...,while (Bedingung) ...,for (Init; Test; Schritt) ...– Kontrollflussbreak,continue,return– Sprunganweisungen- Operatoren:
+ - * / % ^, Inkrement++/--, Vergleiche, Logik und ternärer Operator?
Math-Bibliothek (bc -l)
Mit der Option -l stehen zusätzliche Funktionen bereit: s(x) Sinus, c(x) Kosinus, a(x) Arkustangens, l(x) natürlicher Logarithmus, e(x) Exponentialfunktion und j(n,x) Bessel-Funktion.
Beispiel: Funktion definieren
define fak(n) {
if (n <= 1) return 1
return n * fak(n - 1)
}
fak(5)
Praxis-Tipps
- Kommentare werden wie in C mit
/* ... */geschrieben. - In Skripten nutzt man bc am einfachsten über
echo "..." | bcoder Heredoc; GNU bc unterstützt zusätzlichprintund Arrays. - Im Gegensatz zu dc arbeitet bc mit vertrauter Infix-Notation – ideal für Umrechnungen in Basis-2/8/16 in Shell-Skripten.
Verwandte Grundlagen: QBasic.
QBasic ist ein BASIC-Interpreter von Microsoft, der ab 1991 mit MS-DOS 5.0 bis 6.22 ausgeliefert wurde und auch auf den Installations-CDs von Windows 95, 98 und ME enthalten war. Im Gegensatz zum älteren GW-BASIC bringt QBasic eine vollständige integrierte Entwicklungsumgebung mit Editor, Interpreter und Debugger in einem Programm mit.
Die wichtigsten Anweisungen
PRINT– Text und Variablen ausgeben:PRINT "Hallo Welt"INPUT– Eingabe von der Tastatur lesen:INPUT "Name: "; n$CLS– Bildschirm löschen,END– Programm beendenREModer'– Kommentar,LET– Zuweisung (optional)GOTO,GOSUB ... RETURN– Sprünge und UnterprogrammeIF ... THEN ... ELSE ... END IF– Bedingte AusführungFOR ... NEXT,DO ... LOOP,WHILE ... WEND– SchleifenSELECT CASE– MehrfachverzweigungSUB ... END SUBundFUNCTION ... END FUNCTION– Prozeduren und FunktionenTYPE ... END TYPE– Benutzerdefinierte Datentypen
Wichtige Funktionen
- Strings:
LEFT$,RIGHT$,MID$,LEN,INSTR,CHR$,ASC,VAL,STR$,UCASE$,LCASE$ - Numerik:
INT,FIX,SGN,ABS,RNDmitRANDOMIZE,SQR,SIN,COS,TAN,ATN,LOG,EXP - Grafik:
SCREEN,PSET,LINE,CIRCLE,PAINT,DRAW,COLOR - Sound:
SOUND,PLAY,BEEP - Dateien:
OPEN,CLOSE,INPUT#,PRINT#,LINE INPUT#,LOC,LOF,EOF - System:
DATE$,TIME$,TIMER,SHELL,RUN
Kleines Beispiel
CLS
FOR i = 1 TO 5
PRINT i; " x 2 = "; i * 2
NEXT i
END
Praxis-Tipps
- Der integrierte Debugger unterstützt Einzelschritt (F8), Haltepunkte und Watch-Ausdrücke.
- Der direkte Nachfolger von QBasic ist QuickBASIC mit Compiler; beide teilen sich die Syntax.
- Modernes QBasic-kompatibles BASIC läuft mit QB64 auf Windows, Linux und macOS weiter.
Verwandte Grundlagen: Visual Basic.
Sonic Pi ist eine 2012 von Sam Aaron entwickelte Open-Source-Umgebung für Live Coding und Musikprogrammierung, die ursprünglich für den Raspberry Pi entworfen wurde. Sie läuft auf Linux, macOS und Windows und macht Musik-Programmierung durch eine Ruby-basierte, kompakte DSL besonders zugänglich.
Erste Schritte
play 60
sleep 0.5
play 64
Die Engine von Sonic Pi nutzt den SuperCollider-Server für die Klangsynthese; die Bediensprache selbst ist ein Ruby-Dialekt mit vordefinierten Musikfunktionen.
Wichtige Konzepte
- live_loop – wiederkehrende Schleife, die sich zur Laufzeit ändern lässt:
live_loop :beat do ... end. - play / synth – spielt Noten (MIDI-Nummern) bzw. startet Synthesizer wie
synth :blade. - sample – spielt Audiosamples ab, etwa
sample :loop_compus. - sync / cue – synchronisiert mehrere live_loops über Nachrichten.
Praxis-Tipps
- Live-Coding heißt: Code im laufenden Betrieb ändern — alle Schleifen bleiben synchron.
- Sonic Pi wird viel im Musikunterricht und bei Workshops eingesetzt, um Programmieren spielerisch zu vermitteln.
- Für den Raspberry Pi gibt es eine vorinstallierte Variante; auf dem Desktop einfach die Sonic-Pi-App starten.
Verwandte Grundlagen: SuperCollider (zugrunde liegende Audio-Engine) und ChucK (weitere Live-Coding-Sprache).
SuperCollider ist eine 1996 von James McCartney veröffentlichte Umgebung für Echtzeit-Klangsynthese und algorithmische Komposition. Seit 2002 steht sie unter der GPL und gilt als Standardwerkzeug in der Computer-Musik. Das System besteht aus drei Komponenten: sclang (der Interpreter), scsynth (der Echtzeit-Audioserver) und scide (der Editor mit integrierter Hilfe).
Erste Schritte
Eine .scd-Datei lässt sich direkt auf der Kommandozeile ausführen, zum Beispiel für Headless-Verarbeitung oder Batch-Aufgaben:
sclang meine_komposition.scd
scsynth -u 57110
Standardmäßig lauscht der Server auf Port 57110 (UDP). Die Alternativ-Implementierung supernova verteilt die DSP-Last auf mehrere CPU-Kerne.
Wichtige Konzepte
- SynthDef – definiert eine Klang-Synthese-Schaltung aus Unit Generators (UGens), zum Beispiel Oszillatoren wie SinOsc oder Klangfilter.
- UGen – ein Signalbaustein:
SinOsc.ar(440)erzeugt einen Sinus mit 440 Hz. - Synth – die laufende Instanz einer SynthDef auf dem Server.
- Bus – Audiokanäle, über die Synth-Knoten miteinander verbunden werden.
Praxis-Tipps
- Die Kommunikation zwischen sclang und scsynth läuft über das OSC-Protokoll (Open Sound Control).
- Fehler im Server-Start lassen sich mit
scsynth -hdiagnostizieren (alle Kommandozeilen-Optionen). - Für Live-Coding wird häufig die SuperCollider-IDE gestartet; wer nur die Engine braucht, startet gezielt scsynth.
Verwandte Grundlagen: Sonic Pi (baut auf dem SuperCollider-Server auf) und ChucK (stark zeitbasierte Alternative für Live-Performance).