Created
February 26, 2021 17:54
-
-
Save wolframroesler/39daf491198d370f3ef3f8dfe4a15b05 to your computer and use it in GitHub Desktop.
The VATICAL Programming Language
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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