Warum erstellen wir Radios oder Uhren, wenn Sie sie kaufen können? Warum machen wir LEDs für keinen offensichtlichen Zweck? Warum versuchen wir, einen zusätzlichen Rahmen aus unseren Grafikkarten zu drücken? Wir wissen nicht warum, aber wir tun es. Das könnte die gleiche Haltung sein, die viele Leute hätten, wenn man über Esolangs – esoterische Programmiersprachen lernen – wir wissen nicht, warum die Leute sie erstellen oder sie verwenden, aber sie tun es.

Wir sprechen nicht über Mainstream-Sprachen, die Menschen mögen, wie Lispe, Fortr oder VBA. Wir sprechen nicht über ältere Sprachen, die heute kryptisch erscheinen wie APL oder PROLOG. Wir sprechen über Sprachen, die gemacht werden sollen … gut … seltsam.

Intercal

Wir müssen am Anfang anfangen. Intercal. Dies wurde 1972 als Witz gestartet, und das Akronym ist angeblich für Compiler-Sprache ohne ausdrückliche Akronym. Es gab jedoch keine tatsächliche Implementierung, bis etwa 1990. Jetzt gibt es zwei: C-Intercal und CLC-Intercal.

Da Intercal eine Parodie ist, macht es einige sehr seltsame Entscheidungen. Zum Beispiel sind bitweise Bediener wie mit zwei Argumenten, aber eines der Argumente ist umgekehrt. Das heißt, das obere Bit eines Operanden entspricht dem unteren Bit des zweiten Operanden. In einem Nicken zur sozialen Übereinkommen gibt es einen Modifikator, der gewählt ist, dass Sie in einigen Fällen in einigen Fällen verwenden sollten, wenn beispielsweise Daten wie in “Bitte lesen Sie ein. Wenn Sie dies normalerweise nicht verwenden, wird das Kompilieren nicht gewünscht, dass das Programm nicht ausreichend höflich ist. Wenn Sie es jedoch zu oft verwenden, erhalten Sie auch einen Fehler, den Ihr Programm übermäßig höflich ist.

Ursprünglich verwendet die Implementierung EBCDIC, sodass einige Zeichen verwendet werden, die nicht auf herkömmlichen 7-Bit-ASCII-Systemen angezeigt werden. Dies zwang einige Charakter-Substitutionen und nun mit Unicode, mit Unicode können einige Versionen die Zeichen des alten Stils ermöglichen, wenn Sie sie auswählen. Das Intercal-Handbuch benennt fast alle Sonderzeichen für noch mehr Verwirrung um. Ein einzelnes Zitat ist ein “Funken” und das gleiche Zeichen ist ein “Halbmesh”. Nur der Amperand bleibt unversehrt.

Möchten Sie mehr wissen? Sei vorsichtig mit deinen Wünschen.

FALSE UND BRAINF ** K

Fast bis 1993 bis 1993 zur Geburt von FALSE, eine Stapelsprache, die nicht lesbar ist. Als Trost brauchte der Compiler nur 1.024 Byte. Dies inspirierte eine noch viel minimalere Sprache, Brainf ** k. In einem BF-Programm sind nur acht Zeichen erforderlich.

Brainf ** K hat viele ähnliche Sprachen wie Begurf und JSF ** k hervorgebracht. Wenn Sie von nur einer Sprache in diesem Beitrag gehört haben, war dies wahrscheinlich dieser.

Wie sieht es aus? Von der esoterischen Sprache Wiki:

+++++++++ [> ++++ [> ++> +++> +++> + <<<< -]> +> +> – >> + [<] <-]> >.> —. ++++++++ .. +++. >>. <-. <. +++. ------ .---------. >> +.> ++.
Das ist in der Hi-Welt übrigens!

Binäre Kombinationslogik und UNLAMBDA

Wir wussten einst einen College-Professor, der früher gesagt hat, “Maximieren Sie die boolesche Variable”, als er implizierte, “Set das Bit auf 1.” Wir glauben, er hätte Blc. Wenn Sie in BCL true ausdrücken möchten, schreiben Sie k (kk). Falsch? K (k (sk)). Es wird von dort schlechter. Hier ist xor: s (s (s (s (s (s (s (s (s (s sk))) s) k.

Dies ist jedoch Binär, so ist S wirklich 01 und k ist 00 und die linke Klammer ist ein einzelner 1. Sehr ungewöhnlich und hat anscheinend in einigen theoretischen mathematischen Studien.

Es gibt mehrere Versionen davon, alle etwas anders. So verwenden Sie zum Beispiel unlastbda viele verschiedene Zeichen. Hier ist ein “Cat” -Programm in unlimbbda:

“ s` s`d` @ | i`ci
Whitespace

Die meisten Programmiersprachen kümmern sich nicht um den weißen Raum, und Sie können es liberal verwenden oder nicht. Das heißt, in C können Sie schreiben:

x = 10 * 2;

oder:

x = 10.

*

2;

Der Compiler ist egal. Python ist anders. Einrückungsstufen. Whitespace nimmt das bis zur Extreme. Das gesamte Programm wird in Registerkarte, Speicherplatz und Linefeed geschrieben, und alles wird ignoriert. Das mag seltsam sein, aber interessanterweise können Sie ein Programm in einem anderen Programm verbergen – solange kein Python-Programm ist.

Der erste Whitespace-Charakter sagt Ihnen, was das nächste bedeutet. Zum Beispiel beginnen alle Durchflusssteuerungssequenzen mit einem Linefeed. Stapelmanipulation beginnt mit einem Leerzeichen. Eine Registerkarte und ein Linefeed führen E / A-Vorgänge ein. Eine Registerkarte und ein Leerzeichen dient für Mathematik und zwei Registerkarten verwalten den HEAP-Zugriff.

Auch die Zahlen sind in Binärer, wo ein Leerzeichen positiv ist, eine Registerkarte ist negativ. Danach ist ein Leerzeichen 0 und eine Registerkarte 1 ist 1.

Lolcode

Während der Whitespace möglicherweise noch weniger verständlich ist als Brainf ** K, versuchen einige Sprachen, bestimmte lesbare Dinge zu imitieren. Fall in Punkt: Lolcode, der Programme hat, die mit LOLCAT-Meme-Bildunterschriften übereinstimmen. Anscheinend waren Lolcats der Hauptgrund, warum das Internet doch erfunden wurde.

Warum gehen wir davon aus, dass Katzen so reden? Wir sind nicht sicher, aber wir haben das Gefühl, dass die Erzählung in einem echten Katzengehirn viel magere, “es ist sicherlich schwer, diese Tage gute Dienste zu finden!” Die alten Ägypter verehrten Katzen und Katzen haben das nicht vergessen.

Hier ist ein Programm zum 10:

Hai 1.3.
Ich bin in der YR-Schleife uppin yr var bis beiden saem var eine 10
Sichtbarer Smoosh Var ein “Mkay!
Ich bin Outta YR-Schleife
Kthxbye.
FelsenTeer

Vielleicht sind Sie kein Fan von Lolcats, aber Sie mögen Rockmusik. Nun, dann ist Rockstar die Programmiersprache für Sie. Variable Namen können praktisch alles sein, und Daten haben Typen wie “mysteriös”.

Wir gehen davon aus, dass Sie ein guter Codierer in dieser Sprache sein müssen, um Ihre Haare auszulösen, murmeln und mindestens einen kurzen Gegenstand von Kleidung aus Spandex zu besitzen. Kommen Sie, um darüber nachzudenken, das beschreibt viele Programmierer, die wir kennen.

Unter den intelligenten Dingen, die es tut, werden Zahlen in der Länge der Wörter ausgedrückt, und zahlreiche Programmierkonstrukte haben “offensichtliche” englische Korrelate “. Also “Hass ist Wasser” weist der Variablen “Hass” 5 zu.

Hier ist Fizbuzz in Rockstar geschrieben:

Mitternacht nimmt dein Herz und deine Seele
Während dein Herz so hoch ist wie deine Seele
Legen Sie Ihr Herz ohne Ihre Seele in Ihr Herz

Gib dein Herz zurück

Wunsch ist ein LoveReRuck-Ladykiller
Meine Welt ist nichts
Feuer ist Eis.
Hass ist Wasser
Bis meine Welt wünscht,
Bauen Sie meine Welt auf
Wenn Mitternacht meine Welt nimmt, ist Feuer nichts und Mitternacht nimmt meine Welt, Hass ist nichts
Schreien “fizzbuzz!”
Nimm es an die Spitze

Wenn Mitternacht meine Welt nimmt, ist Feuer nichts
Schreien “fizz!”
Nimm es an die Spitze

Wenn Mitternacht meine Welt nimmt, ist Hass nichts
Sag “Buzz!”
Nimm es an die Spitze

Flüstere meiner Welt
Shakespeare.

Wenn Rockmusik zu Fußgänger für Sie ist, gibt es immer SPL, die Shakespeare-Programmiersprache. Wie der Bard ist die Programmiersprache nicht für seine Wortewirtschaft bekannt.

Zahlen sind in SPL besonders anspruchsvoll. Substantive haben einen Wert von -1 oder 1, je nachdem, wie gut sie sind (z. B. Bäume und Blüten sind 1, während Schweine -1 sind). Adjektive multiplizieren sich mit 2. So “liegend dummer vaterloser großer stinkender halbwinterter Feigling” ist -1 (Feigling) * 2 * 2 * 2 * 2 * 2 * 2 = -64.

Um den Hackaday-Watercooler herum haben wir darüber nachgedacht, eine neue Version dieser Sprache zu schreiben, in der alle Programme in Form eines Gesprächs zwischen dem Bard und dem Sir Francis Bacon liegen. Wir nennen es schütteln ‘n Bake.

Hier ist nur ein Teil des 89-Linie Hi World Script – ER – Programm:

Das berüchtigte Hi-World-Programm.

Romeo, ein junger Mann mit einer erstaunlichen Geduld.
Julia, eine auch junge Frau der erstaunlichen Gnade.
Ophelia, eine erstaunliche Frau, die viel in Streit mit Weiler ist.
Weiler, der Schmeichler von Andersen, der a / s beleidigt.

Akt I: Hamlets Beleidigungen und Schmeichelei.

Szene I: Die Beleidigung von Romeo.

[Wherlet eingeben und Romeo]

Weiler:
Sie liegend ein dummer vaterloser großer, stinkender halbwinterter Feigling!
Sie sind so dumm wie der Unterschied zwischen einem hübschen Reichen mutig
Held und yhyself! sprechen Sie Ihre Meinung!

Sie sind so mutig, als die Summe Ihres fetten kleinen Stoffen missbraucht wurde
Altes faules Codstück und ein atemberaubender fairer, ruhiger sonniger Sommer
Tag. Sie sind so gesund wie der Unterschied zwischen der Summe der
Süßeste reddest Rose und mein Vater und sich selbst! sprechen Sie Ihre Meinung!

Sie sind so feige wie die Summe von sich und dem Unterschied
zwischen einem großen mächtigen glücklichen Reich und einem Pferd. sprechen Sie Ihre Meinung.

Sprechen Sie Ihre Meinung!

[Ausfahrt Romeo]

Szene II: Das Lobe von Julia.

[Julia eingeben]

Weiler:
Du bist so süß wie die Summe der Summe der Summe von Romeo und sein Pferd und sein
schwarze Katze! Sprich dein Geist!
Malbolge

Malbolge wurde entwickelt, um eine Herausforderung zu verwenden. Berichten zufolge erforderte das erste Programm, das Hi World druckte, ein anderes Computerprogramm, um alle möglichen Programme zu durchsuchen, bis er die beste Sequenz gefunden hat. Wenn Sie den Referenz nicht erkennen, ist der Malbolge eine falsche Malebucke, der 8. Kreis der Hölle in Dantes Inferno.

Malbolge verwendet eine base-drei-virtuelle Maschine. Es gibt nur wenige Anweisungen, darunter nur ein paar Anweisungen, darunter die “verrückte” Operation, die Bits auf eine in einem Tisch definierte Weise ändert und – soweit wir Ihnen sagen können – keine Beziehung zu einem normalen mathematischen Betrieb, und ist im Wesentlichen Verschlüsselung. Malbolge ist so schrecklich, dass es ein paar Versuche gibt, wie dis gemacht worden ist, um “etwas weniger Böse” zu sein.

Piet

Haben Sie jemals entdeckt, wie in Science-Fiction-Filme, Aliens praktisch immer mit einer Art von Sound kommunizieren, können wir hören? Sie sprechen entweder Englisch oder sprechen etwas, das wie Andy Kaufmann klingt, der einen Charakter tut. Sie sehen selten Aliens, dass Blitzlichter, Pheromone emittieren, oder strahl-niederfrequenten Funkwellen, um zu kommunizieren. Alle Sprachen in dieser Liste verwenden Zeichen einiger Sortierungen, entweder als Zahlen, Symbole oder Wörter. Außer für Piet. Piet-Programme sind abstrakte Kunst der Art der von Piet Mononrian erstellten Art.

Eine einzelne Codeeinheit ist ein Codel und die Blockierblöcke von Codels haben die gleiche Farbe. Der “Programmzähler” kann natürlich in zwei Dimensionen umzugehen. Wenn Piet zum Beispiel rot als Hinzufügen und Grün als Sprung interpretiert wird, dann wäre es eine andere Form von Symbolen. Aber so funktioniert es nicht. Stattdessen betrachtet der Dolmetscher die Änderung der Farbton und der Intensität zwischen Farben. Ein Schritt im Farbton und keine Änderung der Leichtigkeit ist ein Hinzufügen von Operations. Aber wenn die Farbe dunkler ändert, ist das subtrahiert. Hier ist hallo Welt in Piet. Fragen Sie uns nicht darüber zu diskutieren!

Warum? Warum?

Es lohnt sich nicht fragen, warum Menschen zu schaffen oder diese Sprachen verwenden. Warum machen die Leute Haustier Felsen kaufen? Warum machen die Leute collect Briefmarken? Sie tun es einfach. Trotzdem lernen Sie ein wenig über eine dieser schrulligen Sprachen aus Ihrer Komfortzone, und das ist nicht immer eine schlechte Sache. Außerdem würden viele Leute sagen, dass die Schreibmontage für ein Bild oder AVR nur geringfügig weniger kryptisch ist als der Malbolge, und zahlreiche Hackaday-Leser tun dies.

Wie für uns bleiben wir mit viel nützlicheren Programmiersprachen. Forth erscheint kryptisch, ist aber toll und kann in den Händen eines Experten sehr lesbare Programme erstellen. Wir tauchen jedoch gelegentlich zum Spaß in diese Sprachen ein.