PILOT ist eine pädagogische Programmiersprache, die von PBXB64 als Standalone-Version unterstützt wird .pil Dateien. Der Compiler erstellt native ausführbare Windows x64-Dateien aus dem PILOT-Quellcode über das einheitliche IR-Backend.
.pil Erweiterung. Kompilieren mit PBXB64 program.pil -o program.exe.Referenzseiten
Diese Seite ist die Uebersicht zum Frontend. Die Abschnitte darunter verweisen auf eigene Befehls- oder Referenzseiten; getestete Beispiele und Grenzen gehoeren auf diese Einzelseiten.
Implementierte Befehle
| Befehl | Beschreibung | Status |
|---|---|---|
R: | Bemerkung (Kommentar). Wird vom Compiler ignoriert. | Voll |
T: | Geben Sie Text ein. Unterstützt String-Literale, $variablesund mehrteilige durch Kommas getrennte Literale. | Voll |
E: | Programm beenden. Gibt 0 vom Einstiegspunkt zurück. | Voll |
C: | Berechnen / zuweisen. C: $var = "string"oderC: #var = number. | Voll |
A: | Liest Eingaben ueber die PILOT-Runtime in $var oder #var. | Implementiert |
J: | Springe bedingungslos zu *label. | Voll |
M: | Passen Sie den bedingten Sprung an. Springt zu *label wenn der Übereinstimmungsslot wahr ist. | Voll |
Y: | Ja Wache. Nächste Zeile nur ausführen, wenn Übereinstimmungsslot wahr ist. | Voll |
N: | Keine Wache. Nächste Zeile nur ausführen, wenn Übereinstimmungsslot falsch ist. | Voll |
U: | Unterprogrammaufruf. Speichert einen Rueckkehrindex, springt zu *label und kehrt ueber E: zurueck. | Implementiert |
S: | Ton. Ruft den PILOT-Sound/Beep-Runtime-Helfer auf. | Implementiert |
V: | Bindet eine PILOT-Variable in beide Richtungen an ein PowerBASIC-GLOBAL. | Implementiert |
*label | Label-Definition für J:-, M:- und U:-Ziele. | Voll |
Variablentypen
| Präfix | Typ | Beispiel |
|---|---|---|
$ | String-Variable | $name, $message |
# | Zahlenvariable (64-Bit-Ganzzahl mit Vorzeichen) | #count, #age |
Match-Slot
Der Match-Slot ist ein internes boolesches Flag, das von verwendet wird Y:, N:, UndM: Befehle:
- Nachher
C: #var = value, der Match-Slot ist auf eingestellt wahr wenn der Wert ungleich Null ist, falsch wenn Null. - Nachher
C: $var = "string", der Match-Slot ist auf eingestellt wahr wenn die Zeichenfolge nicht leer ist, falsch wenn leer. - Nach
A:(Eingabe) spiegelt der Match-Slot das Runtime-Ergebnis wider: nicht-null String oder nicht-null Zahl ist wahr.
Zahlenausdrücke
DerC: Befehl für Zahlenvariablen unterstützt:
- Ganzzahlige Konstanten:
42,-5,0 - Boolesche Konstanten:
TRUE(1),FALSE(0) - Variablenreferenzen:
#other - Getestete einfache arithmetische Formen aus den Validierungsbeispielen, zum Beispiel
#A + 1und#A * 2
Textausdrücke
DerT:UndC: Befehle für die String-Unterstützung:
- String-Literale in Anführungszeichen:
"Hello" - Verweise auf String-Variablen:
$var - Mehrteilige durch Kommas getrennte Literale (nur T:):
T: "Hello", " ", "World"
PowerBASIC-Variablenbrücke
V: #LOCAL|pb_global_name|QUAD V: $LOCAL|pb_global_name|STRING
Lesezugriffe importieren den aktuellen Wert des PB-GLOBAL. Zuweisungen mit C: und Eingaben mit A: exportieren den neuen Wert sofort. Mehrere PILOT-Namen dürfen auf dasselbe PB-Global zeigen.
GLOBAL muss als zusätzliche Compiler-Eingabe übergeben werden. Präfix und Brückentyp müssen übereinstimmen.Einstiegspunkt
PILOT-Programme werden zu a kompiliertpilot_mainFunktion, die eine 64-Bit-Ganzzahl zurückgibt. Die E: Befehl wird ausgegeben return 0. Wenn nein E: vorhanden ist, fügt der Compiler am Ende eine implizite Rückgabe hinzu.