Skip to content

Instantly share code, notes, and snippets.

@wolframroesler
Created February 26, 2021 17:54
Show Gist options
  • Save wolframroesler/39daf491198d370f3ef3f8dfe4a15b05 to your computer and use it in GitHub Desktop.
Save wolframroesler/39daf491198d370f3ef3f8dfe4a15b05 to your computer and use it in GitHub Desktop.
The VATICAL Programming Language
THE VATICAL PROGRAMMING LANGUAGE
Sources:
* https://groups.google.com/g/dnet.witze/c/oTRR6gWe0Rc/m/mN7sSBj_JFsJ
* https://groups.google.com/g/fido.ger.jokes/c/ZMKVz2aoJ5s/m/FSXWF0Os17MJ
Origial post by Bernd Stiller, Paderborn, Germany, 1989-04-07
Unedited version follows.
Im Heyne-Verlag ist unter dem Titel "Denk, Maschine!, Geschichten ueber Roboter,
Computer und kuenstliche Intelligenz" eine Textsammlung von SF-Geschichten,
Gedichten und Auszuegen erschienen, die sich positiv mit dem Thema KI befassen.
Obwohl die Lektuere zumeist nicht lohnenswert ist, fand ich eine Geschichte,
die ich, ohne irgendwelche Rechte verletzen zu wollen, hier anreissen will :
Buelow, Ralf (Hrg): Denk, Maschine!, Heyne Verlag Muenchen, 1988 : "
- V A T I C A L (tm) -
Die Apokalypse der Programmiersprachen
User-Guide
Version 2.0
Allgemeines
VATICAL(tm) erschien im Jahre des Herrn 1983 als Kreation der legendaeren
Haeuser CUSHYWARE & GRADDLERSOFT und erhielt 1984 trotz Bedenken ansonsten gut
informierter Kreise die Serienreife.
VATICAL(tm) ist in der endgueltigen Fassung absolut und vorsaetzlich inkompa-
tibel zu allen bekannten Betriebssystemen, Expertenmeinungen und Prozessoren
und hat, nicht zuletzt deshalb, die allerbesten Marktchancen. Ursrpuenglich
war VATICAL(tm) nahe an Pascal orientiert, jedoch konnte erfreulicherweise eine
Annaeherung an Basic und Fortran erreicht werden, ohne jedoch auf Unzulaenglich-
keiten von Pascal zu verzichten und sattsam bekannte Maengel von Basic und
Fortran zu uebergehen.
VATICAL(tm) ist weder ueber Compiler noch Interpreter lauffaehig, sondern
arbeitet ueber einen Absoluter, welcher im Gegensatz zu schaebigen Forth-Versio-
nen keinen Stapelspeicher besitzt, sondern eine ewige Liste. Letztere kann weder
ueberschrieben noch geloescht werden. Allenfalls der Befehl DOOMSDAY erstellt
eine kommentierte Liste der erfolgten Eingaben und laesst VATICAL(tm) ent-
sprechnede Entscheidungen treffen, die sich nicht unbedingt mit Absicht und
Willen des Benutzers decken muessen.
VATICAL(tm) besitzt verschiedene Schnittstellen. Z.B. wird das Druckerinter-
face ueber PRAY angesprochen. VATICAL(tm) ueberprueft alle Ausgaben an den
Drucker und behaelt sich leichte Korrekturen und Kommentare vor. Mit nicht
gelinder Ueberraschung der Erfinder besitzt VATICAL(tm) auch ein Disketten-
Interface und betreibt dieses ueber die Befehle MISSION und MERCY. Es koennen
ausschliesslich indexgepruefte Holy-Access-Dateien bearbeitet werden.
VATICAL(tm) besitzt einen Default-Index und vermerkt Aenderungen an ihm in der
ewigen Liste. VATICAL(tm) erlaubt den Betrieb von maximal drei Laufwerken,
welche bindend die Bezeichnung FATHER, SON und SAINT haben. Dateien und andere
Files werden grundsaetzlich ueber das Laufwerk SAINT bearbeitet. Das Laufwerk
SON bietet Hilfs- und Utility-Funktionen; das Laufwerk FATHER verwaltet das
Betriebssystem.
Im Gegensatz zu herkoemmlichen meistens veralteten Betriebssystemen kennt
VATICAL(tm) weder Inhaltsverzeichnis noch Sektoren oder Spuren. Der Disketten-
platz wird in sieben Buecher aufgeteilt und jene wieder in zwoelf Kapitel. Die
jeweiligen Inhalte der Kapitel verwaltet das Laufwerk FATHER in der Datei
APOCALYPSE. Selbige wird grundaetzlich und vollstaendig mitgeliefert und erlaubt
dem Benutzer keinerlei Aenderungen. Zu jener Datei nichtkonforme Aufzeichnungen
werden nicht am Bestimmungsort abgelegt, sondern landen in der ewigen Liste.
Befehlsaufbau/ Errorhandling
VATICAL(tm) erlaubt die Befehlseingabe sowohl in lateinischer als auch in eng-
lischer Sprache. Im Folgenden wird jeweils der bekanntere Begriff angegeben;
naehere Uebersetzungshilfen leistet jedes Lexikon.
Nach dem Einschalten des Rechners meldet sich VATICAL(tm) mit einem Cursor +
und erwartet den Aufruf oder die Eingabe eines Programms.
Programme muessen grundaetzlich mit LITURGY: beginnen und mit AMEN. enden.
Im Programm selbst darf nach Lebenslust umhergespungen werden; auf festgelegte
oder zufaellige Labels, auf Zeilennummern und an jede beliebige Stelle einer
Zeile. Sieht man das Programm als beschriebenes Blatt Papier an, so darf mit
VATICAL(tm) praktisch beliebig darauf gesprungen werden - und nicht nur dies -
es darf auch beliebig ueber die Programmgrenzen hinausgespungen werden, was
immer auch dies bedeuten und im einzelenen bewirken mag.
So kennt VATICAL(tm) die Befehle GOLEFT, GORIGHT, GOSUB, GOUP, GODOWN, GOAWAY,
GOHOME, GOASCENSION, GOHELL, GOGO, GOWEST, GOELSE, GOANYWHERE, GONOT und
WAITING FOR GODOT."
Aehnlich den freiprogrammierbaren Sprunganweisungen kann ein beliebiger Teil
des Programmes als Unterprogramm erklaert werden, z.B. alles was mehr als
20 Zeichen weit rechts in einer Zeile steht. Grundsaetzlich kann jeder Teil
eines Programmes einen beliebigen anderen zum Unterprogramm definieren.
Derjenige Programmteil, der die meisten Unterprogramme findet, ist der
Hauptprogrammteil. Demgemaesz existiert in VATICAL(tm) kein Befehl RETURN,
sondern es gibt die Ruecksprunganweisungen SEARCHME, WAY NEXT, RESTART, DOBEST
und TRY AGAIN.
VATICAL(tm) bietet dem geneigten Benuetzer zahlreiche Moeglichkeiten zur
Schleifenbildung in Programmen. Neben der FOR-NEXT-DO Schleife finden sich
Sachen Wie: FOR-NEXT-DONOT FOR-NEARER-DO
UNTIL-BETTERUSE-DO UNTIL-NOERROR-PERFORM
FOR-WHATREASON WHY-FOR
WHAT-ELSE WHY-NOT-PLEASE
WHY-DON'T-WE-DO-IT WHAT-SHALL'S
TRY-UNTIL HOPE-LESS
UNTIL-NOFUTURE-DO JUMP-ANYWHERE-TILL
WAIT-UNTIL-DOOMSDAY IFNOTNEXT-THENNEXT
VATICAL(tm) besitzt zahl- und folgenreiche Meldungen von Syntaxfehlern des
Programmes, gelegentlichen Systemabstuerzen, Dateiueberschreibungen und
generell mitgelieferten Fehlern des Betriebssystems.
Grundsaetzlich meldet VATICAL(tm) einen auftretenden Fehler wie folgt:
MY SCORE: YOUR SCORE: CHAMPION: CHAMPION'S SCORE:
*** ALL THE BEST ***
*** SO LONG ***
Seite 2
Unnoetig zu bemerken, dasz jedweder Fehler unnachsichtig in der ewigen Liste
eingetragen wird.
Findet VATICAL(tm) besonders elegante und funktionstuechtige Programme
(Maximalwert: 3 Fehler pro Zeile) so kann der Benutzer mit dem Befehl
INDULGENCE
Eintraege der Ewigen Liste stornieren.
Variablenverwaltung
Bei Ueberlauf des Variablenspeichers betreibt VATICAL(tm) im loeblichen
Gegensatz zu Schundsprachen wie BASIC keine Garbage Collection, sondern dreht
diese Funktion um in eine Value Collection. Alle Variableninhalte, die
VATICAL(tm) als brauchbar ansieht (z.B. reale, positive Zahlen oder
Zeichenketten mit originellem Inhalt und kulturellem Niveau) verlegt das
Betriebssystem in die Datei RECORDS auf der FATHER Diskette. Die restlichen
Eintraege werden in der ewigen Liste niedergelegt, und der Speicher wird
geloescht. Eintraege, die der Benuetzer weiterverarbeiten will, haetten VORHER
in die Datei ESTATE abgelegt werden muessen.
Variablen werden mit dem Betriebssystem vereinbart und an geeigneter Stelle
getauft. Erst die namentliche Taufe einer Variablen z.B. in der Form St.KEVIN
CHRISTIANED AS INTEGER laeszt das Betriebssystem diese Variable erkennen.
Alle Namen von Variablen muessen im Programmkopf vereinbart werden.
VATICAL(tm)
ueberprueft Art, Sinn und Zweck dieser Vereinbarungen und behaelt sich leichte
Korrekturen vor.
Alle Variablennamen muessen mit St. beginnen. Daran angehaengt wird der
eigentliche Variablenname und zwar:
Integerzahlen Namen von Heiligen (1500-1800)
Reale Zahlen Namen von Heiligen (1800-1900)
Genaue Zahlen Namen von Heiligen (1900-heute)
Charakterzeichen Namen bedeutender Kirchenpersonen
Textketten Namen von Propheten (altes T.)
einfache Arrays Namen von Paepsten
mehrdim. Arrays Namen von Aposteln
Besonderes Augenmerk gilt hierbei den Charakterzeichen. Sollte hier eine
Variable mit St.Luther oder schlimmer noch bezeichnet werden, hat dies fuer den
Benutzer Folgen mindestens katastrophaler Art.
Alle Variablennamen sind auf- und abwaertskompatibel, jedoch vermerkt
VATICAL(tm) hierbei Verwechslungen mit NOT YET oder aber mit FLATTERY.
Die Darstellung von Zahlen im negativen Bereich erfolgt durch den Zusatz
TEMPTATION. Die Schreibweise von
TEMPTATION OF St.KEVIN = 10000
ergibt fuer die Integervariable St.KEVIN den Wert -10000.
Seite 3
Variablenwerte koennen in VATICAL(tm) grundsaetzlich nur addiert werden, und
zwar in der Form:
St.KEVIN AND St.MARTIN PRAISE FOR St.RESULT
Das Ergebnis der Addition steht dann in St.RESULT.
Die Zuweisung des Wertes NULL zu einer Variablen bedarf der Form:
St.KEVIN IN POVERTY
VATICAL(tm) erlaubt die Darstellung von negativen Realwerten ausschlieszlich
ueber die Bezeichner JUDAS, KAIN und ROCKNROLL.
Alle Variablenbezeichner gelten nicht nur global im Programmbereich, sondern
universal, also auch nach Abstellen des Rechners.
Der Editor
VATICAL(tm) beinhaltet einen leistungsfaehigen Programmeditor, der ueber den
Befehl MEA CULPA aufgerufen wird. Der Programmeditor in VATICAL(tm)
unterscheidet zwischen
---> einfachen Suenden
---> Erbsuenden
---> Todsuenden
Sollten im Programm Todsuenden auftreten, so musz der Benutzer von VATICAL(tm)
den Editor mit MEA MAXIMA CULPA aufrufen und anschlieszend, je nach Anzahl der
Fehler die Eingabe ROSARY = Fehlerzahl eingeben.
In allen Faellen verlangt der Programmeditor die Eingabe des Benutzernamens.
Jener wird - keine Frage - in der ewigen Liste abgelegt. Der Programmeditor
vergleicht Sinn, Art, Zweck, Ausfuehrung und Effizienz des Programmes und
unterstuetzt demgemaesz den Benutzer.
Der Programmeditor listet zuerst die Fehlerhafte Zeile auf dem Schirm aus. Der
Befehl MISSION liefert eine Korrektur, wie sie VATICAL(tm) fuer ratsam haelt.
Der Befehl DEMISSION erlaubt eine benutzerspezifische Eingabe. Das Ende des
Programmeditors wird durch die Eingabe SAKE abgeschlossen. Zur
Online-Fehlersuche traegt VATICAL(tm) durch verchiedene Befehle bei.
Die Eingabe DEVILINSIDE loescht das Programm selbst und auch alle aehnlich
lautenden Programme.
Der Befehl INQUISITION suspendiert das laufende Programm, setzt selbstaendig
Fehler ein und startet es neu. Der Ablauf wird sodann protokolliert und mit dem
urspruenglichen Zustand verglichen. Auftretende Fehler werden mit den
Eintraegen
der ewigen Liste verglichen und entsprechend dokumentiert.
Seite 4
Der Befehl CONFESS listet alle augenscheinlichen und wahrscheinlichen Fehler
aus und erlaubt ueber die Eingabe AVE MARIA die sofortige Korrektur.
Eine weitere Staerke von VATICAL(tm) zeigt sich in der Behandlung von
logischen
Operationen und der geneigte Benutzer wird viel Freude mit gewissen
Systemeigenheiten erleben.
Die Funktionen AND, ANDC, ADD und ADDC verlangen unbedingt
gleichgeschlechtliche Variablen auf beiden Seiten. Die Form
St.MARTIN = St.MICHAEL ADDC St.HELENA erzeugt mindestens eine faustdicke
Fehlermeldung. Im allgemeinen sollte das Resultat einer logischen Operation in
die Bezeichnung CHASTE geschrieben werden, da ansonsten u.U. peinliche
Verwechslungen entstehen koennen.
Als Besonderheit logischer Operationen bietet VATICAL(tm):
ADDAF ADD-AND-FORGET NENA NEITHER-NOR-ANYTHING-ELSE
ENDC END-OF-CARRY CAC CASH-AND-CARRY
SUBIF SUB-IF-YOU-WANT
Der Linker
VATICAL(tm) erlaubt das Verbinden (=Linken) mehrerer Anwenderprogramme. Die
maximal moegliche Zahl betraegt hierbei 4 Programme, welche unter einem festen
Programmnamen abgelegt sein muessen.
Der Linker wird aufgerufen durch den Befehl HIGHMASS und verlangt in gegebener
Reihenfolge nach den Programmen
- KYRIE (Variablenvereinbarungen, Array-Dimensionierung,
Konstantendefinition, Dies & Das)
- GLORIA (Funktionen und Prozeduren)
- CREDO (Programm 1)
- SANCTUS (Programm 2)
- BENEDICTUS (Programm 3)
- AGNUS DEI (Programm 4)
Der Linker wird durch den Befehl IN NOMINI: aufgerufen und erwartet zuerst die
Identifikation des Benutzers. Alsdann erfolgt eine Pruefung der einzelnen
Programme auf Vorhandensein, Speicherbedarf und richtigen Syntax.
Diese Prozedur benoetigt auch fuer erfahrene Programmierer ueberraschend viel
Zeit. Der geneigte Benutzer wird daher waehrend dieser Zeit mit saisonpassenden
Zitaten aus kulturell hochstehender Literatur unterhalten. Es wird
ausdruecklich
gewarnt, waehrend dieser Zeit das Terminal zu verlassen, da VATICAL(tm)
gelegentlich und nach peinlich geheimgehaltenen Zufallsmuster
Verstaendnisfragen
an den Benutzer stellt und die Zeit bis zur Beantwortung erstens speichert und
zweitens unter Umstaenden uebel zu reagieren pflegt.
Seite 5
VATICAL(tm) beinhaltet mehrere Anwenderprogramme, deren intensive
Benutzerfreundlichkeit und ungewoehnlich bedienerorientierte Menuestruktur fuer
sich sprechen.
Im Einzelnen enthaelt das Programmpaket VATICAL(tm):
1. Das Systemprogramm VATICAL(tm) selbst.
2. VATICALC(tm) - ein spezielles, tabellenorientiertes Rechenprogramm zur
Verarbeitung von Kollektivspenden. Sowohl Spendenbetrag als auch Name,
Adresse, Beruf, Nettoeinkommen und streng vertrauliche Angelegenheiten des
Spenders werden in der ewigen Liste vermerkt. Aufgrund von
Jahreskollektensummen koennen Prognosen ueber zu erwartende Einnahmen
getroffen werden.
3. Biblostar - ein Textverarbeitungsprogramm, welches synonym zu SPELLSTAR(r)
bereits alle relevanten Bibeltexte enthaelt und die Ausarbeitung einer
20-Minuten-Predigt in weniger als zwei Minuten erlaubt.
Dem Programm angeschlossen ist eine automatische Uebersetzung in oder von
Lateinisch.
4. MULTICONFESS - eine Datenbank zur schnellen Speicherung und Bearbeitung von
Daten, die waehrend Beichten und vertraulichen Gespraechen auftauchen,
inlc.
Vermerk in der ewigen Liste.
5. Peaceman - ein Spielprogramm, bei dem angreifende Kommunisten und Atheisten
durch die schnelle Eingabe von passenden Bibelzitaten abgewehrt werden
muessen.
6. SINN 1-2-3 - ein aeuszerst anwenderorientiertes Programm zur schnellen
Berechnung von Ablaessen, zu betenden Rosenkraenzen und Zahl, Laenge und
Durchmesser von Suehnekerzen. Beinhaltet eine umfangreiche und sich selbst
erweiternde Datei von gaengigen Suenden und Lastern. Ein Musz fuer die
datenverarbeitende Beichte. Alternativ kann auch die Anzahl der zu
erwartenden Jahre im Fegefeuer gelistet oder - fuer das Beichtkind - ueber
einen Drucker ausgegeben werden.
7. HOLYSOFT - ein Expertensystem fuer den kirchlich und geistlich orientierten
Anwender. Basiert auf Frage und Antwortsystem und liefert binnen kuerzester
Zeit und nach ca. drei Deteilrecherchen schlagkraeftige und schluessige
Argumente, denen sich auch der hartgesottenste Ignorant und
Klerikalspoetter
nicht verschlieszt.
8. TRUEBASE III - eine selektive Datenbank, bei der Ein- und Ausgabe streng
konform zur ewigen Liste laeuft. TRUEBASE packt Ihre Dateien auf kleinstes
Format zusammen; nur wirklich speicherwuerdiges wird gespeichert.
9. SYSZINK - ein Programm, welches Ihnen (fast) unbeschraenkten Zugriff und
Editierungshilfen fuer die ewige Liste anbietet. Voll menuegesteuert
breitet
es die bisherigen Fehlermeldungen und Fehlgriffe vor Ihnen aus.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment