Top 10 wirklich Bizarres Programmiersprachen
Dies ist eine Liste einiger der bizarrsten Programmiersprachen, die Sie jemals sehen werden. Diese Arten von Sprachen werden normalerweise als "esoterische Programmiersprachen" bezeichnet. Eine esoterische Programmiersprache (manchmal abgekürzt auf Esolang) ist eine Computerprogrammiersprache, die entweder als Test für die Grenzen des Programmiersprachenentwurfs, zum Experimentieren mit verrückten Ideen oder einfach als Spaß gedacht ist und nicht aus praktischen Gründen. Normalerweise besteht keine Absicht, die Sprache für die Programmierung in der realen Welt zu übernehmen. Solche Sprachen sind häufig bei Hackern und Hobbyisten beliebt.
Usability hat für solche Sprachen selten eine hohe Priorität; oft ganz im gegenteil. Das übliche Ziel ist es, herkömmliche Sprachmerkmale zu entfernen oder zu ersetzen, während eine Sprache beibehalten wird, die Turing-vollständig ist oder sogar eine, für die die Berechnungsklasse unbekannt ist.
Es wurden viele faszinierende und unwahrscheinliche Sprachen entwickelt, und es gibt eine kleine, aber aktive Internet-Community von Leuten, die sie erstellen, programmieren und debattieren.
Ein „Hello World“ -Programm ist traditionell das erste Programm, das die meisten Menschen in einer für sie neuen Sprache lernen. Es ist ein (normalerweise) einfacher Code, der die Wörter "Hello, World!" Auf einem Ausgabegerät ausgibt, normalerweise auf dem Computerbildschirm.
Bitte sehen Sie sich alle Beispielcodes an - sie sind in den meisten Fällen ziemlich witzig.
10INTERCAL
INTERCAL wurde 1972 gegründet und ist damit wahrscheinlich die erste esoterische Programmiersprache. Donald R. Woods und James M. Lyon (Bild oben) haben sie erfunden, mit dem Ziel, eine Sprache zu schaffen, die keinerlei Ähnlichkeit mit bestehenden Programmiersprachen aufweist.
Laut dem Original-Handbuch der Autoren lautet der vollständige Name des Compilers "Compiler-Sprache ohne aussprechbares Akronym", was aus naheliegenden Gründen als "INTERCAL" abgekürzt wird. "
Übliche Operationen in anderen Sprachen haben in INTERCAL eine kryptische und redundante Syntax. Das INTERCAL-Referenzhandbuch enthält viele paradoxe, unsinnige oder anderweitig humorvolle Anweisungen wie:
"Vorsicht! Verwechseln Sie das Mesh auf keinen Fall mit dem Interleave-Operator, außer unter verwirrenden Umständen! “
INTERCAL bietet viele weitere Funktionen, die den Programmierer noch ästhetischer machen: Es verwendet Anweisungen wie "IGNORE" und "FORGET" sowie Modifikatoren wie "PLEASE". Dieses letzte Schlüsselwort liefert zwei Gründe für die Ablehnung des Programms durch den Compiler: Wenn "PLEASE" nicht oft genug angezeigt wird, wird das Programm als unzureichend höflich betrachtet, und in der Fehlermeldung wird dies angezeigt. zu oft kann das Programm als zu höflich abgelehnt werden.
Hallo Welt in INTERCAL, mit äquivalentem Code in C zum Vergleich
9 WhitespaceWie der Name schon sagt, ist Whitespace, 2002 von Edwin Brady und Chris Morris entworfen, eine esoterische Programmiersprache, die nur Whitespace-Zeichen als Syntax verwendet. Daher haben nur Leerzeichen, Tabulatoren und Zeilenvorschübe eine Bedeutung. Als es am 1. April 2003 veröffentlicht wurde, hielten die meisten Leute es für einen Aprilscherz, was es nicht war.
Im Gegensatz zu den meisten Programmiersprachen, in denen die meisten Whitespace-Zeichen ignoriert werden, ignoriert der Whitespace-Interpreter alle Nicht-Whitespace-Zeichen. Eine interessante Konsequenz dieser Eigenschaft ist, dass ein Whitespace-Programm leicht in den Whitespace-Zeichen eines Programms enthalten sein kann, das in einer anderen Sprache geschrieben ist, wodurch der Text zu einem Polyglot wird.
Oben abgebildet ist „Hallo Welt“ in Whitespace.
Koch
Chef, von David Morgan-Mar im Jahr 2002 entworfen, ist eine esoterische Programmiersprache, in der Programme wie Kochrezepte aussehen. Die Variablen werden in der Regel nach Grundnahrungsmitteln benannt, die Stapel werden als "Rührschüsseln" oder "Backformen" bezeichnet und die Anweisungen für deren Manipulation "Mischen", "Rühren" usw. Die Zutaten in einer Rührschüssel oder Backform sind geordnet "Wie ein Stapel Pfannkuchen".
Laut Chef Home Page lauten die Gestaltungsprinzipien für Chef:
- Programmrezepte sollten nicht nur eine gültige Ausgabe generieren, sondern einfach zuzubereiten und lecker sein.
- Rezepte können Köche mit unterschiedlichen Budgets ansprechen.
- Die Rezepte werden metrisch sein, sie können jedoch traditionelle Garverfahren wie Tassen und Esslöffel verwenden.
Hallo Welt im Chef
7 VelatoVelato ist eine Sprache, die MIDI-Dateien als Quellcode verwendet. Die Programme in Velato werden durch die Tonhöhe und die Reihenfolge der Noten definiert. Es soll Flexibilität bei der Komposition ermöglichen, so dass funktionale Programme nicht unbedingt wie zufällige Noten klingen. Velato-Programme tendieren dazu, jazzartige Harmonien zu haben.
Alle Anweisungen in Velato beginnen mit einer Befehlsnotiz; Intervalle aus dieser Notiz werden in Befehle und Ausdrücke übersetzt. Der Befehlswurzel kann zwischen Anweisungen geändert werden, um mehr musikalische (oder zumindest weniger repetitive) Abläufe zu ermöglichen.
Natürlich können Velato-Programme wie alle MIDI-Dateien auch als Noten dargestellt werden. Oben abgebildet sind Notenblätter, die Sie hier hören können.
6Shakespeare
Die Shakespeare Programmiersprache (SPL) wurde von Jon Åslund und Karl Hasselström entworfen. Wie Chef (Element Nr. 8) ist es so konzipiert, dass Programme anders aussehen als Programme. In diesem Fall spielt Shakespeare.
Die erste Zeile eines Shakespeare-Programms heißt "Titel" und dient als Kommentar. Die "Dramatis Personae" ist der Bereich, in dem Variablen deklariert werden. Jeder Variablenname muss der Name eines Charakters aus einem Shakespeare-Spiel sein.
Ein Code in Shakespeare wird in „Acts“ unterteilt, die „Scenes“ enthalten, in denen Zeichen (Variablen) interagieren. Jeder Akt und jede Szene ist mit einer römischen Nummer nummeriert und dient als GOTO-Label. Sie sind in der Form geschrieben:
Akt I: Hamlets Beleidigungen und Schmeichelei.
Szene I: Die Beleidigung von Romeo.
Bevor „Charaktere“ (Variablen) „handeln“ können, müssen sie zuerst „auf der Bühne“ sein. Um eine Variable auf die Bühne aufzurufen, wird der Befehl „Enter“ verwendet. Verwenden Sie den Befehl „Exit“, um die Zeichen zum Verlassen der Bühne anzuhalten. „Exeunt“ ruft mehr als ein Zeichen zum Verlassen auf, oder falls keine Zeichen aufgeführt sind, verlassen alle Zeichen die Bühne.
Hallo Welt in Shakespeare
Omgrofl ist eine Sprache, die 2006 von Juraj Borza erstellt wurde. Im Gegensatz zu dem vorherigen Eintrag ähneln die Schlüsselwörter dem Slang im Internet. Der Name kommt von der Kombination der Slang "Wörter" Oh mein Gott und rofl. Rofl ist eigentlich einer von Omgrofls Befehlen. Omgrofl unterscheidet also nicht zwischen Groß- und Kleinschreibung lol ist das gleiche wie LoL. Sie können dies verwenden, um "schöneren" Code zu erzeugen.
Variablen in Omgrofl müssen eine Form des Slangworts sein lol, wie lol, lool, loool, looool usw. Eine Variable kann definiert werden als:
lol iz 4
wtf Bedingung ist eine Bedingungsanweisung (wie ob in C). Die Anweisungen bis zum Abgleich brb werden nur ausgeführt, wenn die Bedingung erfüllt ist.
Verwendungszweck:
lol iz 1
wtf lol iz liek 1
rofl lol
lmao lol
brb
Mögliche Bedingungen sind:
iz uber - prüft, ob ein Ausdruck größer als ein anderer ist.
iz liek - prüft, ob zwei Ausdrücke gleich sind.
Diese können geändert werden durch:
Nein - Negation (wie ! in C) - muss vor Liek oder Uber platziert werden.
Verwendungszweck:
x iz nope über y
lol iz nope liek 7
Weitere Schlüsselwörter in Omgrofl sind: rtfm, tldr, w00t, stfw, n00b, l33t, haxor, stfu (beendet die Anwendung sofort).
Hallo Welt in Omgrofl
4Piet
Piet ist eine Sprache, deren Programme Bitmap-Grafiken sind, die wie abstrakte Kunst aussehen. Es wurde von David Morgan-Mar entworfen, der auch Chefkoch kreierte. Es ist nach dem Pionier der geometrischen abstrakten Kunst, Piet Mondrian, benannt. der ursprünglich vorgesehene Name Mondrian war bereits vergeben.
Es gibt 20 Farben, für die ein Verhalten angegeben wird: 18 "bunte" Farben, die nach einem 6-stufigen Farbtonzyklus und einem 3-stufigen Helligkeitszyklus geordnet sind; und schwarz und weiß, die nicht bestellt werden. Wenn Sie eine „bunte“ Farbe verlassen und eine andere Farbe eingeben, wird der ausgeführte Vorgang durch die Anzahl der Farbton- und Helligkeitsstufen bestimmt. Schwarz kann nicht eingegeben werden; Wenn der Zeiger versucht, einen schwarzen Bereich zu betreten, werden stattdessen die Regeln für die Auswahl des nächsten Blocks geändert. Wenn alle möglichen Regeln versucht werden, wird das Programm beendet. Weiß führt keine Operationen aus, lässt den Zeiger jedoch "durchgehen".
Oben abgebildet ist ein Piet-Programm, das "piet" ausgibt.
3 VorgehenBefunge unterscheidet sich von herkömmlichen Sprachen dadurch, dass Programme auf einem zweidimensionalen Raster angeordnet sind, das Spielfeld. "Pfeil" -Befehle -, ^ und v - lenken den Kontrollfluss nach links, rechts, oben oder unten, und die Schleifen werden durch Senden des Kontrollflusses in einem Zyklus erstellt.
Befunge wurde 1993 von Chris Pressey erfunden, mit dem Ziel, möglichst schwer kompilierbar zu sein. Dies wurde mit der Implementierung von selbstmodifizierendem Code (der Befehl 'p' kann neue Anweisungen in das Spielfeld schreiben) und einem mehrdimensionalen Spielfeld (derselbe Befehl kann in vier verschiedenen Richtungen ausgeführt werden) versucht. Dennoch wurde eine Reihe von Compilern später geschrieben.
Wie Brainfuck (siehe Punkt 1) hat Befunge viele Nachkommen und entfernte Cousins hervorgebracht. Befunge-Erweiterungen und Varianten werden aufgerufen Fungeoiden oder nur Pilze.
Die meisten eindimensionalen Programmiersprachen erfordern eine gewisse syntaktische Unterscheidung zwischen Kommentartext und Quellcode. In Befunge gibt es keine Kommentarsyntax: Um die Dokumentation in den Code einzubetten, leitet der Programmierer den Steuerfluss einfach um den Kommentarbereich herum, sodass der Text in diesem Bereich niemals ausgeführt wird.
Hallo Welt in Befunge
2Malbolge
Während Befunge schwer zu kompilieren ist (in Maschinencode übersetzen), ist Malbolge, 1998 von Ben Olmstead erstellt und nach dem achten Kreis der Hölle in Dante benannt InfernoEs soll so schwer wie möglich sein, Programme tatsächlich zu schreiben. Es war so schwer zu verstehen, als es ankam, dass es zwei Jahre dauerte, bis das erste Malbolge-Programm erschien, und selbst dies wurde nicht von einem Menschen geschrieben, sondern von einem Lisp-Programm unter Verwendung einer Strahlensuche des Raums aller möglichen Programme.
Es gibt einige Diskussionen darüber, ob man in Malbolge sinnvolle Schleifen implementieren kann - es dauerte viele Jahre, bis die erste nicht abschließende Schleife eingeführt wurde. Ein korrektes "99 Bottles of Beer" -Programm (mit den vollständigen Texten des Songs als Ausgabe), das sich mit nicht-trivialen Schleifen und Bedingungen befasst, wurde acht Jahre lang nicht angekündigt. Der erste war von Hisashi Iizawa im Jahr 2007. Er ist oben abgebildet.
Hallo Welt in Malbolge
1 BrainfuckBrainfuck ist die bekannteste esoterische Programmiersprache und hat die Schaffung einer Vielzahl anderer Sprachen inspiriert. Es ist für seinen extremen Minimalismus bekannt, wurde entwickelt, um Programmierer herauszufordern und zu unterhalten, und ist nicht für den praktischen Einsatz geeignet. Um Angriffe zu vermeiden, wird der Name manchmal als b **** fuck angegeben. Der Name der Sprache wird in der Regel nur zu Satzbeginn großgeschrieben.
Urban Müller entwickelte 1993 Brainfuck, um eine Sprache zu entwerfen, die mit einem möglichst kleinen Compiler implementiert werden kann. Einige Brainfuck-Compiler wurden kleiner als 200 Byte gemacht.
Die Sprache besteht nur aus acht Befehlen:> <+ -. []. Ein Brainfuck-Programm ist eine Folge dieser Befehle, möglicherweise mit anderen Zeichen durchsetzt (die ignoriert werden).
Wie der Name vermuten lässt, sind Brainfuck-Programme meist schwer verständlich. Dies liegt daran, dass für leicht komplexe Aufgaben eine lange Befehlssequenz erforderlich ist. Dies ist einer der Gründe, warum sie nicht für ernsthafte Programmierung verwendet wird. Nichtsdestotrotz ist Brainfuck, wie jede Turing-komplette Sprache, theoretisch in der Lage, jede berechenbare Funktion zu berechnen, wenn der Zugriff auf eine unbegrenzte Menge an Speicher erfolgt.
Hallo Welt in Brainfuck
Diese Liste wurde mit Hilfe des Esolang-Wiki und der Wikipedia erstellt.