
Logo: Beispiele und Erklärung
Reifegrad und Grenzen: experimentell
Umgesetzter Umfang: Prozeduren, Rekursion, Schleifen, Wörter, Listen, Konsolenausgabe und Bitmap-Turtle-Operationen sind abgedeckt.
Grenzen: Zahlen verwenden Binary64 und Primitive/Kapazitäten sind begrenzt; READLIST/MAP fehlen, Mischlisten- und Host-Grenzen bleiben.
Logo unterstützte Prozeduren und Umfang
Die sprachspezifische Referenz der unterstützten Befehle und des Umfangs mit durchsuchbaren Kategorien und klaren Grenzen öffnen.
Umfangsreferenz öffnenLogo-Beispiele verwenden benannte Werte, Listenblöcke und klare Befehle. Hier steht die Konsolenrechnung im Vordergrund; Turtle-Grafik ist ein weiterer eigener Bereich.
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.
MAKE "sum 0
MAKE "i 1
REPEAT 5 [
MAKE "sum :sum + :i
MAKE "i :i + 1
]
PRINT :sumErwarteter Exitcode: 0; Ausgabe-Prüfmuster (Regex): '15'
PBXB64.exe sum15-logo.logo -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. MAKE und IF: einen benannten Wert prüfen
MAKE "x 3 bindet den Wert 3. :x liest ihn; bei :x = 3 führt IF den Listenblock aus und PRINT gibt ok aus. STOP beendet den Ablauf.
; Logo control-flow coverage fixture. MAKE "x 3 IF :x = 3 [ PRINT "ok ] STOP
Erwarteter Exitcode: 0
PBXB64.exe control.logo -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. Zwei Befehle auf einer Zeile
HOME und PRINT 7 stehen in derselben Quellzeile. Der Parser muss beide Befehle erkennen; der Ausgabe-Vertrag erwartet 7. HOME ist ein Turtle-Befehl, PRINT erzeugt die Konsolenausgabe.
HOME PRINT 7
Erwarteter Exitcode: 0; Ausgabe-Prüfmuster (Regex): '7'
PBXB64.exe same_line_command_sequence.logo -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. SQR und SQRT in einem Ausdruck
Ablauf Schritt für Schritt
- SQR 81 berechnet die Quadratwurzel 9.
- SUM erhält als Argumente die Ergebnisse von SQR 16 und SQRT 9.
- 4 + 3 ergibt die zweite Ausgabe 7; SQR ist hier ein Wurzel-Alias.
PRINT SQR 81 PRINT SUM SQR 16 SQRT 9
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
9\s+7
PBXB64.exe logo-sqr_alias.logo -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. Potenzen in geschachtelten Ausdrücken
Ablauf Schritt für Schritt
- POW 2 3 liefert 8.
- SUM kombiniert POW 2 5 und POWER 2 2.
- 32 + 4 ergibt 36; POW und POWER zeigen zwei Schreibweisen derselben Potenzoperation.
PRINT POW 2 3 PRINT SUM POW 2 5 POWER 2 2
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
8\s+36
PBXB64.exe logo-pow_alias.logo -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. Wörter ohne eingefügtes Leerzeichen verbinden
Ablauf Schritt für Schritt
- WORD erhält zwei zitierte Wörter.
- alpha und beta werden direkt zu alphabeta zusammengesetzt.
- Die zweite Schreibweise mit schließenden Anführungszeichen ergibt entsprechend leftright.
PRINT WORD "alpha "beta PRINT WORD "left" "right"
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
alphabeta\s+leftright
PBXB64.exe logo-word_quote_words.logo -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. Mehrteilige Texte und WORD
Ablauf Schritt für Schritt
- Der zitierte Text hello world enthält ein eigenes Leerzeichen.
- WORD erhält den Text front door und das Wort bell.
- Die Zusammensetzung fügt kein weiteres Leerzeichen hinzu und ergibt front doorbell.
PRINT "hello world" PRINT WORD "front door" "bell"
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
hello world\s+front doorbell
PBXB64.exe logo-multiword_string.logo -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. Elemente und Zeichen zählen
Ablauf Schritt für Schritt
- LIST 1 2 3 wird unter dem Variablennamen items gespeichert.
- COUNT :items zählt drei Listenelemente.
- COUNT auf dem Wort alpha zählt dagegen fünf Zeichen.
MAKE "items LIST 1 2 3 PRINT COUNT :items PRINT COUNT "alpha
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
3\s+5
PBXB64.exe logo-count_expression.logo -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. LOCALMAKE und spätere Zuweisung
Ablauf Schritt für Schritt
- LOCALMAKE weist x zunächst den Wert 7 zu.
- :x liest diesen Wert; SUM :x 5 berechnet 12.
- MAKE ersetzt anschließend den gespeicherten Wert. Beide PRINT-Anweisungen machen die Änderung sichtbar.
LOCALMAKE "x 7 PRINT :x MAKE "x SUM :x 5 PRINT :x
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
7\s+12
PBXB64.exe logo-localmake_statement.logo -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. OP beendet eine Prozedur mit einem Ergebnis
Ablauf Schritt für Schritt
- TO definiert twice mit dem Parameter :x.
- OP ist hier die Kurzform für OUTPUT und gibt SUM :x :x zurück.
- Die nachfolgende Ausgabe bad wird übersprungen; twice 6 liefert 12.
TO twice :x OP SUM :x :x PRINT "bad END PRINT twice 6
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
12
PBXB64.exe logo-procedure_op_alias.logo -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. Eine Liste aus einer Prozedur zurückgeben
Ablauf Schritt für Schritt
- listout verwendet OUTPUT [1 2].
- Der Aufruf LISTOUT zeigt die im Test verwendete Groß-/Kleinschreibungsbehandlung.
- PRINT gibt das zurückgegebene Listenobjekt als [1 2] aus.
TO listout OUTPUT [1 2] END PRINT LISTOUT
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
\[1 2\]
PBXB64.exe logo-procedure_list_output_case.logo -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. Abstand zwischen zwei Turtle-Positionen
Ablauf Schritt für Schritt
- SETPOS stellt die Turtle auf den Punkt (3, 4).
- DISTANCE fragt den Abstand zum Punkt (6, 8) ab.
- Die Differenzen 3 und 4 ergeben nach dem Satz des Pythagoras √(3² + 4²) = 5.
DEFAULTBITMAP 32 32 SETPOS 3 4 PRINT DISTANCE 6 8
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
5
PBXB64.exe logo-turtle_distance.logo -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: Eine vollständige Logo-Werkstatt
Ablauf Schritt für Schritt
- DEFAULTBITMAP richtet eine 96 × 96 große Zeichenfläche ein; Stift-, Farb- und Bewegungsbefehle arbeiten auf dieser Fläche.
- Die Zahlenfunktionen, Vergleiche und beiden Schleifen werden anschließend mit Variablen und PRINT kombiniert.
- Die Liste zeigt FIRST, LAST, ITEM, FPUT und LPUT; double verwendet einen lokalen Zwischenwert und OUTPUT. double 5 liefert 10. RANDOM besitzt einen eigenen Prüfbereich statt einer fest behaupteten Zufallszahl.
; V14 LOGO help surface: all documented commands and forms in headless mode. DEFAULTBITMAP 96 96 CS CLEAN HOME SETPC 14 SETBG 1 PENSIZE 2 PD FD 10 RT 90 FD 5 LT 45 BK 3 PU SETH 180 SETXY 4 5 SETPOS [6 7] SETSCRUNCH 1 PENREVERSE FILL LABEL "v14 HT ST TEXTSCREEN FULLSCREEN SPLITSCREEN CT MAKE "value SUM 20 22 PRINT :value PRINT THING "value PRINT DIFFERENCE 8 3 PRINT PRODUCT 3 4 PRINT QUOTIENT 12 3 PRINT REMAINDER 13 5 PRINT POWER 2 3 PRINT ABS -4 PRINT INT 4.8 PRINT ROUND 4.5 PRINT SQRT 81 PRINT SIN 90 PRINT COS 0 PRINT RANDOM 1 IF GREATERP 3 2 [ PRINT "greater ] IF LESSP 2 3 [ PRINT "less ] IF EQUALP 2 2 [ PRINT "equal ] IFELSE 0 [ PRINT 0 ] [ PRINT 1 ] REPEAT 2 [ FD 1 ] MAKE "count 0 WHILE LESSP :count 2 [ MAKE "count SUM :count 1 ] MAKE "items LIST 1 2 3 PRINT FIRST :items PRINT LAST :items PRINT ITEM 2 :items MAKE "front FPUT 0 :items MAKE "back LPUT 4 :front PRINT FIRST BUTFIRST :back PRINT LAST BUTLAST :back TO double :x LOCAL "scratch MAKE "scratch SUM :x :x OUTPUT :scratch END TO stopped STOP END PRINT double 5 stopped
Erwarteter Exitcode: 0
Kanonisches Ausgabe-Prüfmuster (Regex)
42\s+42\s+5\s+12\s+4\s+3\s+8\s+4\s+4\s+5\s+9\s+1\s+1\s+[0-9.]+\s+greater\s+less\s+equal\s+1\s+1\s+3\s+2\s+1\s+3\s+10
PBXB64.exe logo-v14_full_frontend.logo -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
Ein kompiliertes Logo-Programm kann als native EXE ausgeführt werden. Eine native EXE allein belegt noch keinen beliebigen sprachübergreifenden Symbolvertrag. Für direkte Daten- und Funktionsbrücken zeigen die Bridging-Beispiele konkrete unterstützte Paare.
Vollständige Quellenpaare ansehen