
PILOT: Beispiele und Erklärung
Reifegrad und Grenzen: experimentell
Umgesetzter Umfang: Text, Eingabe, Berechnung, Mustervergleich, Sprünge, Unterprogramme und numerische QUAD-Anbindung sind durch die Beispiele abgedeckt.
Grenzen: Der PBXB64-PILOT-Dialekt hat begrenzte Eingabe-, Ausdrucks- und Stapelkapazitäten; sein gemeinsamer Rücksprungstapel ist nicht threadsicher.
PILOT unterstützte Befehle und Umfang
Die sprachspezifische Referenz der unterstützten Befehle und des Umfangs mit durchsuchbaren Kategorien und klaren Grenzen öffnen.
Umfangsreferenz öffnenPILOT verwendet Präfixe wie C: für Berechnungen, T: für Text und J: für Sprünge. #Namen sind numerische Variablen; $Namen bezeichnen Strings.
Zwölf Kurzbeispiele und ein größeres Programm. Wählen Sie ein Thema oder arbeiten Sie die Beispiele der Reihe nach durch.
1. 1 + 2 + 3 + 4 + 5 = 15
Die Zahlen 1 bis 5 werden zu 15 addiert. Das Programm gibt 15 aus und endet mit Exitcode 0.
C: #sum=1+2+3+4+5 T: #sum E:
Erwarteter Exitcode: 0; Ausgabe-Prüfmuster (Regex): '15'
PBXB64.exe sum15-pilot.pil -O2 -o example.exe .\example.exe $LASTEXITCODE
Nativ geprüft mit dem V22-Kandidaten vom 30.09.2026; Prüfung mit dem finalen Compiler noch ausstehend.
2. J: zu einer Sprungmarke
J: *target überspringt die Ausgabe wrong. Bei *target setzt das Programm fort und T: gibt jumped aus. R: ist ein Kommentar; E: beendet.
R: Test unconditional jump J: *target T: "wrong" *target T: "jumped" E:
Erwarteter Exitcode: 0; Ausgabe-Prüfmuster (Regex): 'jumped\n'
PBXB64.exe pilot_jump.pil -O2 -o example.exe .\example.exe $LASTEXITCODE
Kanonischer Testfall mit erwartetem Ergebnis; hier keine neue native V22-Prüfung. Finale Ausführung noch ausstehend.
3. Text in einer String-Variablen
C: setzt $MSG auf variable text. T: $MSG gibt den gespeicherten String aus. Der $-Präfix unterscheidet diese Variable vom numerischen #sum des Einstiegsbeispiels.
R: Test text with string variable C: $MSG = "variable text" T: $MSG E:
Erwarteter Exitcode: 0; Ausgabe-Prüfmuster (Regex): 'variable text\n'
PBXB64.exe pilot_text_var.pil -O2 -o example.exe .\example.exe $LASTEXITCODE
Kanonischer Testfall mit erwartetem Ergebnis; hier keine neue native V22-Prüfung. Finale Ausführung noch ausstehend.
4. Ein vollständiges Hello-Programm
Ablauf Schritt für Schritt
- R: enthält einen Kommentar und erzeugt keine Ausgabe.
- T: schreibt den zitierten Text Hello from PILOT.
- E: beendet das Programm mit dem erwarteten Exitcode 0.
R: Basic PILOT test - hello world T: "Hello from PILOT" E:
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
Hello from PILOT
PBXB64.exe pilot-pilot_hello.pil -O2 -o example.exe .\example.exe $LASTEXITCODE
Ergebnisvertrag aus tests/validate.toml. Keine neue native Compilerprüfung in dieser Website-Erweiterung. Finale Ausführung mit dem freigegebenen Compiler steht aus.
5. Eine einzelne Textzeile
Ablauf Schritt für Schritt
- Der Text nach T: ist ein String-Literal.
- Es wird keine Variable ausgewertet oder ersetzt.
- Der konkrete Ausgabevertrag enthält Single text line mit anschließendem Zeilenwechsel.
R: Test text output with string literal T: "Single text line" E:
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
Single text line
PBXB64.exe pilot-pilot_text_literal.pil -O2 -o example.exe .\example.exe $LASTEXITCODE
Ergebnisvertrag aus tests/validate.toml. Keine neue native Compilerprüfung in dieser Website-Erweiterung. Finale Ausführung mit dem freigegebenen Compiler steht aus.
6. Eine Zeile aus drei Textteilen
Ablauf Schritt für Schritt
- T: erhält Hello, ein Leerzeichen und World als getrennte Teile.
- Die Kommata trennen die Argumente, nicht die Ausgabezeilen.
- Die Teile ergeben gemeinsam Hello World.
R: Test multi-part text with literals T: "Hello", " ", "World" E:
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
Hello World
PBXB64.exe pilot-pilot_text_multi.pil -O2 -o example.exe .\example.exe $LASTEXITCODE
Ergebnisvertrag aus tests/validate.toml. Keine neue native Compilerprüfung in dieser Website-Erweiterung. Finale Ausführung mit dem freigegebenen Compiler steht aus.
7. TRUE und FALSE als numerische Konstanten
Ablauf Schritt für Schritt
- #A und #B bezeichnen numerische Variablen.
- C: weist ihnen TRUE beziehungsweise FALSE zu.
- Das Programm zeigt die Konstantenschreibweise und endet ohne T:-Ausgabe.
R: Test TRUE and FALSE constants C: #A = TRUE C: #B = FALSE E:
Erwarteter Exitcode: 0
PBXB64.exe pilot-pilot_constants.pil -O2 -o example.exe .\example.exe $LASTEXITCODE
Ergebnisvertrag aus tests/validate.toml. Keine neue native Compilerprüfung in dieser Website-Erweiterung. Finale Ausführung mit dem freigegebenen Compiler steht aus.
8. Numerische Werte kopieren und vorzeichenbehaftet setzen
Ablauf Schritt für Schritt
- #A erhält 42; #B übernimmt den aktuellen Wert von #A.
- Weitere Zuweisungen zeigen 0, 1 und -5.
- Die Übernahme ist eine Wertkopie. Eine spätere Änderung an #A würde #B nicht rückwirkend ändern.
R: Test number variable assignment C: #A = 42 C: #B = #A C: #C = 0 C: #D = 1 C: #E = -5 E:
Erwarteter Exitcode: 0
PBXB64.exe pilot-pilot_compute_number.pil -O2 -o example.exe .\example.exe $LASTEXITCODE
Ergebnisvertrag aus tests/validate.toml. Keine neue native Compilerprüfung in dieser Website-Erweiterung. Finale Ausführung mit dem freigegebenen Compiler steht aus.
9. Zwei unabhängige String-Variablen
Ablauf Schritt für Schritt
- Der $-Präfix unterscheidet Textvariablen von numerischen #Variablen.
- C: weist $S den Text hello und $T den Text world zu.
- Ohne T:-Befehl wird keiner der Texte ausgegeben.
R: Test string variable assignment C: $S = "hello" C: $T = "world" E:
Erwarteter Exitcode: 0
PBXB64.exe pilot-pilot_compute_string.pil -O2 -o example.exe .\example.exe $LASTEXITCODE
Ergebnisvertrag aus tests/validate.toml. Keine neue native Compilerprüfung in dieser Website-Erweiterung. Finale Ausführung mit dem freigegebenen Compiler steht aus.
10. Y: führt bei wahrem Status aus
Ablauf Schritt für Schritt
- C: #A = 1 setzt im gezeigten Vertrag einen wahren Bedingungszustand.
- Y: schützt die nachfolgende T:-Anweisung.
- Der Text Yes guard with true match erscheint genau in diesem wahren Pfad.
R: Test Y: conditional guard (true) C: #A = 1 Y: T: "Yes guard with true match" E:
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
Yes guard with true match
PBXB64.exe pilot-pilot_yes_true.pil -O2 -o example.exe .\example.exe $LASTEXITCODE
Ergebnisvertrag aus tests/validate.toml. Keine neue native Compilerprüfung in dieser Website-Erweiterung. Finale Ausführung mit dem freigegebenen Compiler steht aus.
11. N: führt bei falschem Status aus
Ablauf Schritt für Schritt
- C: #A = 0 erzeugt hier den falschen Bedingungszustand.
- N: ist das Gegenstück zum Y:-Schutz und führt die T:-Anweisung aus.
- Die erwartete Textzeile lautet No guard with false match.
R: Test N: conditional guard (true) C: #A = 0 N: T: "No guard with false match" E:
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
No guard with false match
PBXB64.exe pilot-pilot_no_true.pil -O2 -o example.exe .\example.exe $LASTEXITCODE
Ergebnisvertrag aus tests/validate.toml. Keine neue native Compilerprüfung in dieser Website-Erweiterung. Finale Ausführung mit dem freigegebenen Compiler steht aus.
12. Mit M: den wahren Pfad wählen
Ablauf Schritt für Schritt
- C: #A = 1 liefert den wahren Zustand für den Match-Sprung.
- M: *success springt zur Marke und überspringt die Ausgabe wrong sowie den ersten Endbefehl.
- Am Ziel schreibt T: matched; E: beendet.
R: Test match conditional jump (true case) C: #A = 1 M: *success T: "wrong" E: *success T: "matched" E:
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
matched
PBXB64.exe pilot-pilot_match_true.pil -O2 -o example.exe .\example.exe $LASTEXITCODE
Ergebnisvertrag aus tests/validate.toml. Keine neue native Compilerprüfung in dieser Website-Erweiterung. Finale Ausführung mit dem freigegebenen Compiler steht aus.
Großes Beispiel: Variablen, Bedingungen und Sprungmarken zusammen
Ablauf Schritt für Schritt
- C: legt einen String und drei numerische Werte an; die letzte numerische Zuweisung TRUE liefert den verwendeten wahren Bedingungszustand.
- T: gibt Hello und PILOT Test aus. Y: führt die Ausgabe Yes when true aus, während N: übersprungen wird.
- J: springt zur Marke skip_remark; M: verwendet danach den Bedingungszustand für den Match-Sprung. Beide Endpfade verwenden E:.
R: Comprehensive PILOT test covering all implemented commands R: Variable assignments C: $MSG = "PILOT Test" C: #A = 42 C: #B = 0 C: #C = TRUE R: Text output T: "Hello" T: $MSG R: Conditional guards Y: T: "Yes when true" N: T: "No when false" R: Jump test J: *skip_remark R: This remark is skipped *skip_remark R: Match test M: *match_jump R: Match was false, continue here E: *match_jump E:
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
Hello PILOT Test Yes when true
PBXB64.exe pilot-pilot_comprehensive.pil -O2 -o example.exe .\example.exe $LASTEXITCODE
Ergebnisvertrag aus tests/validate.toml. Keine neue native Compilerprüfung in dieser Website-Erweiterung. Finale Ausführung mit dem freigegebenen Compiler steht aus.
Alle Quellen dieser Lernseite
Jedes Beispiel hat einen eigenen Ordner; die README nennt die jeweiligen Compileraufrufe. Enthaltene Includes behalten ihre passenden Pfade.
Alle 13 Beispiele als ZIPBridging
V: bildet eine typisierte Verbindung zu einer BASIC-GLOBAL-Variablen. Das Beispiel zeigt sowohl einen QUAD-Wert als auch einen STRING und zwei Aliase auf dieselbe Variable.
Vollständige Quellenpaare ansehen