10 Jahre, 12 Sprachen, 2430 Bytes
Diese Antwort ist eine Zusammenarbeit zwischen mir und dem Benutzer 1000000000 .
Eine kurze Liste der Sprachen:
Brainfuck 1993
Befunge 1993
Piet 2001
Whitespace 2003
Braincopter 2005
Grass 2007
Starry 2008
Paintfuck 2008
Brainbool 2010 (11111011010)
Python 2.7.2 2011
Fission 2014
Brainflak 2016
Hier ist der Code:
P3v="";print(sum([ord(x)for x in"~~~~~~~~~~~~~~~y"]));"""{}{} + + +---[. + +.. '.. +. +.. +. +. +.] + + + + + + +(((((()()()()){}){}){}){})({({} +-[<() + + + + + + +>-()])}{}<[. + + + + + + + +..------- ` +.[-]]>)[< '
17 12
# > 7*::,8 +:,,2 +,@<>R"2014";]*ne*e*es*s*swWWW*swWWWW*sw*e*e*e*eeev*wn*n*n*n*ne*e*se*s*s*s*sWWwWWWw**e*eeee*vwn*n*n*n*ne*e*se*s*s*s*sWWWw*eeee*e*ne*n*nWWWWWw*ne*nWWWWWWw*w*sw*se*sWWWWWWWw*s*WWWWWWwwwWWWWWWWWWWwWWWWWWWWWWwvwWWWwWWWWwvwWWwWWWwvwWWwWWWwvwWWwWWWwvwWWwwwwwwwwwwwWWWwWWWWWwWWWWWWWwWWWWWWWWWwWWWWWWWWWWWWWWWwWWWWWWWWWWWWwv `
255 0 255 255 0 192 192 0 192 192 0 192 192 192 255
255 192
255 255 192
255
255
0 255 255 0 255 255 0 255 255 0 255 255 0 192 192 192 255 255 255 255 255 0 192 192 0 0 255 255 255
255 0 0 255 0 192 192 0 192 192 0 192 192 192 255 255 192 255 255 192 255 255 192 255 255 0 255 255 0 255 255 0 255 255 0 192 192 255 255 255 255 255 255 255 255 255 255 255 255 0 192
192 0 0 255 0 192 192 0 192 192 0 192 192 0 192 192 192 255 255 192 255 255 192 255 255 0 255 255 0 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 255 255
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 192
192 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 0
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 255 255
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 192
192 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 0
192 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 0 0 0 0 0 255 255
255 0 192 192 0 0 255 0 0 255 255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 255 255 255 255 255 255 0 0 255 0 0 255 0 255 255 0 0 0 0 192 192 0 0
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 0 0 0 192 192 0 192 192
# """
Um dies in eine Antwort einzufügen, werde ich auf vollständige TIO-Links verzichten und stattdessen einen Link zu einem gültigen Interpreter veröffentlichen, in den der Code vom Benutzer eingegeben werden kann. Hier ist ein Pastebin-Link für diesen Zweck.
Piet
Das PPM-Dateiformat , eines der Bildformate, aus denen der von uns verwendete Piet-Interpreter lesen kann, hat eine ASCII-Klartextversion. Auf diese Weise konnten wir den Code anderer Sprachen als Junk in die von Piet und Braincopter gelesene Bilddatei einbetten.
Das Bild sieht so aus:
Nicht alle Bilder sind für Piet wichtig. Hier ist eine Version mit einer Linie, die den Pfad hervorhebt, dem Piet durch den Code folgt:
Trotz etwas komplizierter Methoden zum Erstellen des Programms ist das Programm selbst recht einfach. Am oberen Rand des Bildes wird es 1 10 10 10 2
zum Stapel geschoben. entlang der Seite multipliziert es dreimal und fügt einmal hinzu. In der unteren Ecke wird das Ergebnis (2001) ausgegeben und dann angehalten.
Braincopter
Braincopter ist die andere visuelle Sprache. Dieselbe ppm
Image-Datei wird auch zum Ausführen benötigt. Aufgrund sehr strenger Einschränkungen in npiet kann unser Braincopter-Code nur eine Teilmenge der ursprünglichen Braincopter-Operationen verwenden. Wir dürfen nur Farben verwenden, die in Piet gültig sind. Dadurch wird der -
Operator von Braincopter entfernt.
Hier ist der Pfad, den der Braincopter-Code verfolgt:
Das Braincopter-Programm ist etwas seltsam, weil es keinen -
Operator gibt. Die Wände von Cyan und Dark Cyan dienen dazu, den Zeiger umzulenken, aber ansonsten ist er mit dem folgenden Brainfuck identisch:
++++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++..+++++.
Dies druckt 2005.
Paintfuck
Paintfuck ist die dritte visuelle Programmiersprache auf unserer Liste. Anstatt jedoch ein Bild aufzunehmen und Text auszugeben, nimmt Paintfuck Text auf und gibt ein Bild aus.
Da Paintfuck irrelevante Zeichen als No-Op ignoriert, ist der größte Teil des Codes unwichtig. Der relevante Abschnitt des Codes lautet:
nsn**ne*e*es*s*sw*sw*sw*e*e*e*eee*wn*n*n*n*ne*e*se*s*s*s*sww**e*eeee*wn*n*n*n*ne*e*se*s*s*s*sw*eeee*e*ne*n*nw*ne*nw*w*sw*se*sw*s*wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwnsn**ne*e*es*s*sw*sw*sw*e*e*e*eee*wn*n*n*n*ne*e*se*s*s*s*sww**e*eeee*wn*n*n*n*ne*e*se*s*s*s*sw*eeee*e*ne*n*nw*ne*nw*w*sw*se*sw*s*wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
Während sie keine No-Ops sind, w
tun die s am Ende des Codes nichts. Sie sind für den Grasanteil der Lösung da. n
, e
, s
, Und w
werden verwendet , um das Bild zu bewegen , und *
verwendet wird , einen Punkt , an diesem Ort zu plotten. Das Programm gibt aus:
Eine größere Version:
Brainfuck
Wie Paintfuck ignoriert Brainfuck die meisten Charaktere. Hier noch einmal die wichtigsten:
[]+++---[.++....+.+..+.+.+.]++++++++-[<+++++++>-]<[.++++++++..-------+.[-]]>[<>,+,,+,<>]
Das meiste davon ist für die Umstände irrelevant und nur zufällig Zeichen, die eine andere Sprache benötigt. Die schlankere Version dieses Codes lautet:
+++++++[<+++++++>-]<[.++++++++..------.[-]]
Das druckt ziemlich einfach 1993
.
Brainbool
Brainbool ist Brainfuck in seiner Charakterauswahl sehr ähnlich. Der große Unterschied, der das Zusammenweben der beiden ermöglicht, ist das Fehlen eines -
in Brainbool. Die wichtigen Charaktere für Brainbool sind:
[]+++[.++....+.+..+.+.+.]++++++++[<+++++++>]<[.++++++++..+.[]]>[<>,+,,+,<>]
Die Ausgänge von Brainbool und Brainfuck schließen sich gegenseitig aus. Brainbool versteckt seine Ausgabe im zweiten Satz von []
. Brainfuck trifft sich, +++---
bevor es die [
Einstellung Null erreicht und die Ausgabe überspringt, während Brainbool nur die +++
Einstellung 1 erkennt, wodurch es die Schleife passiert. In ähnlicher Weise wird Brainbool bei der 4. Schleife auf Null gesetzt, wodurch es überspringt, während Brainfuck mit einem Wert von 49 in die Schleife eintritt.
Da Brainbool keine dezimale Ausgabe hat, gibt es das 2010 in binärer Form aus:
11111011010
Fission
Der einzige Teil des Codes, der für die Spaltung wichtig ist, ist:
R"2014";
Die R
Beschwörungen in einem Atom, das sich nach rechts bewegt, die "2014"
Drucke 2014
und die ;
angehaltene Ausführung.
Befunge
Befunge geht nur durch folgende Zeichen:
P3v
7
> 7*::,8 +:,,2 +,@
Sie P3
sind erforderlich, um ein gültiges PPM-Bild für piet zu erstellen und kumulativ eine 3 auf den Stapel zu legen. Das v
wird platziert, um den Zeiger nach unten zu lenken. Es geht dann durch die 7
in den 17
verwendet , um die Breite des .ppm Bild anzuzeigen. Das >
leitet den Zeiger nach rechts um. 7*
multipliziert die Oberseite des Stapels mit 7, wobei 49 (ASCII-Wert von 1
) auf der Oberseite des Stapels verbleibt . ::
dupliziert die Oberseite des Stapels zweimal. Das 1
wird ausgegeben von ,
. 8 +
Fügt 8 zum oberen ASCII-Inkrement hinzu 9
. :,,
Ausgänge 9
zweimal. 2 +
Inkrementiert den ASCII-Wert 1
in einen ASCII-Wert 3
und ,
druckt. Beendet schließlich @
das Programm.
Alles in allem druckt es 1993
.
Leerzeichen
Wie der Name vermuten lässt, verwendet Whitespace in seinen Programmen nur Whitespace. Dies sieht der Whitespace-Interpreter:
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][LF]
[Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Tab][Tab][Tab][Tab][Tab][Space][Tab][Space][Space][Tab][Tab][LF]
[Tab][LF]
[Space][Tab][LF]
[LF]
[LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][LF]
Die meisten Funktionen dieses Codes sind für die Ausführung des Programms nicht relevant (alle Zeilen, die nur Leerzeichen enthalten, geben einfach Null an den Stapel weiter). Der wichtige Teil:
[Space][Space][Space][Tab][Tab][Tab][Tab][Tab][Space][Tab][Space][Space][Tab][Tab][LF]
[Tab][LF]
[Space][Tab][LF]
[LF]
[LF]
Die erste Zeile drückt 2003 auf den Stapel. Danach [Tab][LF][Space][Tab]
wird der obere Teil des Stapels (2003) als Zahl ausgedruckt. Schließlich beenden die letzten drei Zeilenvorschübe die Programmausführung.
Gras
Grass ignoriert alle Zeichen bis zum ersten w
in der Datei und nach , dass alle Zeichen , die nicht sind w
, W
oder v
. Der Grass-Interpreter liest:
wWWWwWWWWwv
wWWwWWWwv
wWWWwWWWWWwWWWWWWwwwWWWWWWWwWWWWWWwwwWWWWWWWWWWwWWWWWWWWWWwv
wWWWwWWWWwv
wWWwWWWwv
wWWwWWWwv
wWWwWWWwv
wWWwwwwwwwwwwwWWWwWWWWWwWWWWWWWwWWWWWWWWWwWWWWWWWWWWWWWWWwWWWWWWWWWWWWwv
In der ersten Zeile wird eine Funktion definiert, die zu jeder Übergabe zwei hinzufügt. In der zweiten Zeile wird eine Funktion definiert, die zu jedem übergebenen Wert vier hinzufügt. Die dritte Funktion definiert eine Funktion, die zwei plus Argument ausgibt, das Argument zweimal ausgibt und schließlich sieben plus Argument ausgibt (Grass druckt Zeichen basierend auf dem ASCII-Wert aus). Die vierte, fünfte und sechste Zeile definieren Funktionen, die jeweils acht, 16, 32 und 64 zu ihrem Argument hinzufügen. In der letzten Zeile wird die Hauptfunktion definiert, die das Zeichen w
(die einzige vordefinierte Zahl in Grass, ASCII-Wert 119) verwendet und mit den im Programm definierten Additionsfunktionen sowie der integrierten Additionsfunktion um 185 ergänzt. Gras umschließt die Zahl mit 256 und das Ergebnis ist 48 (entsprechend dem Zeichen)0
). Die Funktion übergibt dies dann an die Funktion der dritten Zeile, die 2007 ausgibt.
Sternenhimmel
Starry ignoriert alles außer Raum, +
, *
, .
, ,
, `
, und '
. So sieht der Sternendolmetscher nur:
+ + +. + +.. '.. +. +.. +. +. +. + + + + + + + + + + + + + + +. + + + + + + + +.. ` +. '
*, +,, +,************************************************* `
Die Anweisungen label und jump werden jedoch verwendet, um Abschnitte des Codes zu überspringen, die bei der Ausführung Probleme verursachen können. Der Code sieht also folgendermaßen aus:
+ + +. + +.. ' ` +. ' `
Dieser Code legt zwei auf den Stapel, dupliziert sie zweimal und druckt dann eine davon als Zahl. Dann drücke Null, dupliziere sie und drucke beide Nullen als Zahlen. Als nächstes wirft es eines der Zweien aus und springt und drückt dann sieben auf den Stapel und wirft und druckt als Zahl. Schließlich werden die letzten beiden auf dem Stapel abgelegt und zum Ende des Programms gesprungen.
Python 2.7.2
Der Python-Code folgt dem Format:
P3v="";print(sum([ord(x)for x in"~~~~~~~~~~~~~~~y"]));"""..."""
Wo ...
steht für all den anderen Müll.
Die erste Zeile P3v=""
ist da, weil .ppm
unser Code , um eine gültige Datei zu P3
sein, normalerweise mit diesem Fehler beginnt. Wenn wir jedoch Python mitteilen, dass es sich um eine Variablendeklaration handelt, wird er ignoriert.
Als nächstes müssen wir drucken 2011
. Aufgrund der .ppm
Formatierung von a können wir in dieser Zeile jedoch keine Zahlen einfügen. Um dies zu umgehen, fassen wir alle ASCII-Werte des Strings zusammen "~~~~~~~~~~~~~~~y"
und geben das Ergebnis aus. Schließlich verwenden wir die dreifachen Anführungszeichen eines mehrzeiligen Kommentars, damit Python alles andere ignoriert.
Brainflak
Wir haben das Beste zum Schluss aufgehoben.
Brainflak ignoriert, wie andere auch, die meisten Zeichen. Die relevanten Zeichen sind:
(([()])){}{}[](((((()()()()){}){}){}){})({({}[<()>()])}{}<[[]]>)[<><>]
Der Python-Code (([()]))
drückt zweimal -1 auf den Stack, sodass er entfernt werden muss, bevor das Programm mit der Verarbeitung beginnt.
Danach benutzt []
Brainbool einen Nilad, der nichts tut und das Programm beginnt.
(((((()()()()){}){}){}){})({({}[<()>()])}{}<[[]]>)
schiebt 2016. Der letzte [<><>]
ist Überbleibsel von Befunge und Brainfuck, tut aber zum Glück nichts.
Wenn das Programm beendet wird, druckt es den Inhalt des Stapels, das heißt, es wird gedruckt 2016
.
quelle
We saved the best for last
. : DAntworten:
5 Jahre
1989: C89 [1] und 1999: C99
Der einzeilige Kommentar
//
wurde in C99 hinzugefügt, sodass ein C89-Compiler den Code als lesen würde,c=-4.5 / /*comment*/ -4.5
der derselbe ist wiec=-4.5 / -4.5
, während ein C99-Compiler als lesen würdec=-4.5 //comment/**/
- 4.5
, der derselbe ist wiec=-4.5 - 4.5
.Der Python-Teil ist ein Kommentar im C-Programm.
2010: Python 2.7 und 2015: Python 3.5
Die Dokumente variieren zwischen Python 3 und 2, dieses Programm verwendet die Länge der Dokumente, um die Python-Version zu erkennen.
Der C-Teil befindet sich in einer Zeichenfolge im Python-Programm.
1993 [2] : Brainfuck
Es ignoriert im Grunde alles, was nicht ist
.,[]+-<>
. Da das C-Programm ein enthält,
, musste ich Brainfuck veranlassen, diesen Teil zu schließen, indem ich das aktuelle Byte auf 0 setzte.quelle
-4.5/-4.5
und-4.5-4.5
. Das Mischen von zwei Versionen von jeweils zwei Hauptsprachen ist ziemlich beeindruckend, auch ohne BF daa=
Online-2 ist unnötiga=
und es gab einen Fehler, also habe ich beschlossen, es zu behalten. Ich weiß nicht, warum es einen Fehler gab, wahrscheinlich einen Tippfehler.15 Jahre, JavaScript
Da der Versionszyklus von JavaScript sehr ungewöhnlich und inkonsistent ist, verwende ich die Firefox-Implementierung. Bitte lassen Sie mich wissen, wenn dies nicht erlaubt ist.
Versionen: Phoenix 0.1 , Firebird 0.6 , Firefox 1.0.0 , 1.5.0 , 2.0.0 , 3.0 Beta 1 , 3.0.0 , 3.5.0 , 3.6.0 , 4.0.0 , 10.0.0 , 18.0.0 , 27.0 .0 , 35.0.0 , 44.0.0 (alle unter Windows 7 getestet)
Wichtiger Hinweis: Wenn Sie Firefox 1.0.0 oder eine neuere Version installieren und öffnen, werden möglicherweise alle Ihre gespeicherten Firefox-Daten einschließlich Verlauf und Lesezeichen gelöscht.
Ab 1.0.0 kann immer nur eine Version geöffnet sein. Der Versuch, eine andere Version zu öffnen, führt zu einem neuen Fenster der bereits geöffneten Version.
Anleitung
Code
quelle
<!--<<<<-[>+<-----]>--.++++++++..------.[-][-->
vor dem Skript und einen weiteren HTML-Kommentar mit einem]
anschließenden einfügen.6 Sprachen, Turtlèd und Brainfuck , Python 3.5, Python 2.7, > <> , Fission
Turtlèd hat vor diesem Jahr nicht existiert und ist so einfach objektiv, auch wenn die Github-Commits nicht zählen und BF die 1993 veröffentlichten Beweise für die Esolang-Seite hat. Python 3.5 ist 2015, 2.7 ist 2010.> <> hat auch Esolang-Seite mit Angabe von 2009, ebenso wie Fission, 2014
Ich sollte wahrscheinlich die Seite mit den bf-Konstanten auf esolangs gutschreiben ... ¯ \ _ (ツ) _ / ¯
Wie es funktioniert, Art von:
Turtlèd:
Turtlèd macht eigentlich nichts anderes als die ersten Zeilen:
Ich bin ein Nopp
Brainfuck
Brainfuck ignoriert Zeichen, die nicht in seinen Befehlen enthalten sind
es sieht
-[>+<-----]>--.++++++++..------.
(der letzte ist aus dem Python-Teil)Was Brainfuck einfach macht, verwendet Wrapping, um 255 durch 5 zu dividieren, dann 2 vom Ergebnis abziehen, drucken, 8-mal inkrementieren, zweimal drucken, 6-mal dekrementieren, drucken
Python 2 und 3
Die Länge der Dokumente für len variiert zwischen den Versionen, sodass das Jahr für Version 3 ausgegeben wird, wenn es die richtige Länge hat, andernfalls für Version 2.
> <>
# spiegelt den Zeiger nach hinten, so dass er das / auf der anderen Seite dieser Zeile berührt, durch die Lücke zwischen
else
und geht2010
und dann erneut spiegelt, um "2009" zu treffen, 9,0,0,2 auf den Stapel zu drücken und dann umgekehrt auszudrucken .Fission
Fission hat Spawner, so dass wir unten eine Zeile haben können, die es alleine ausführt:
quelle
3 Jahre, 3 Sprachen: C, TeX, MIXAL
Benennen Sie die Datei
date.mixal
.1990
nachstdout
.tex date.mixal
; druckt1982
in die DateiO.tex
(ignorieren Sie die DVI-Ausgabe).mixasm date.mixal
und Ausführen mitmixvm -r date.mix
; druckt1997
auf das Fernschreibgerät (=stdout
).Die Programme TeX und MIXAL befinden sich in einem Kommentar im Programm C; Das MIXAL-Programm folgt,
\bye
sodass TeX es ignoriert. Die C- und TeX-Programme sind ein Kommentar im MIXAL-Programm. Aus irgendeinem Grundgcc
ist bereit zu akzeptieren*main
.quelle
3 Jahre (GolfScript, CJam, MATL),
2423 BytesDies gibt aus
2007
in GolfScript.2015
in CJam (Version 0.6.5).2016
in MATL (Version 19.2.0).Erläuterung
Golfscript
Undefinierte Token sind Noops in GolfScript . Die einzigen Teile des Codes, die tatsächlich etwas bewirken, sind:
CJam
MATL
Alles von nun
%
an ist ein Kommentar.quelle
%
Sie [11 10] erhalten haben. Nicht dass das was ausmacht.2 Sprachen, Python 2.7 und Python 3.5
Python 2.7 wurde 2010 veröffentlicht .
Python 3.5 wurde im Jahr 2015 veröffentlicht .
Dies basiert auf PEP 238, bei dem der Operator
/
in Python 3 von einer Ganzzahldivision in eine Gleitkommadivision geändert wurde.quelle
'2010'if 3/2>1else'2015'
stattdessen tun ?print(int(2010+1/2*10))
print('2015'if 1/2else'2010')
ist besser8 Jahre, TI-Basic
"Jedes der Programme druckt möglicherweise auf STDERR oder gibt Fehler und Warnungen zur Laufzeit / Kompilierungszeit aus, solange die richtige Ausgabe auf STDOUT oder in einer Datei gedruckt wird." Derzeit ist die einzige fehlerfreie Anzeige das Jahr, daher halten wir uns an diese Regel. Wenn Sie jedoch stattdessen in den Speicher schreiben möchten, ersetzen Sie
Disp (date)
durch(date)->I
.Verweise:
quelle
5 Jahre, Go 1.0, 1.1, 1.4, 1.5, 1.6:
285257 Bytes(1.2 wurde im Jahr 2013 wie 1.1, 1.3 im Jahr 2014 wie 1.4 und 1.7 im Jahr 2016 wie 1.6 veröffentlicht.)
Habe das nicht bei jeder Version ausprobiert, da ich nur auf 1.6 zugreifen kann, aber es sollte theoretisch funktionieren! Sprachänderungen hätten wahrscheinlich dazu geführt, dass das Programm nicht kompiliert werden konnte. Daher habe ich mich auf Standard-Bibliotheksänderungen verlassen.
Ungolfed und kommentiert:
quelle
4 Jahre, 99 Bytes / 77 Zeichen
Hinweis: Ich bin nicht sicher, ob die Jahre korrekt sind
><>
2009Ich habe eine Weile gebraucht, um herauszufinden, wie Python und JS zusammenarbeiten.
Erläuterung
v=1//1;"""
Setzt die Variablev
auf1
dividiert durch1
in Python und auf1
in Javascript (//
startet einen Kommentar in Javascript) und;"""
startet eine mehrzeilige Zeichenfolge in Python. Das;
kann nicht durch eine neue Zeile ersetzt werden, da sonst Javascript nicht mehr funktioniert.1991/*"""
ist der Rest der mehrzeiligen Zeichenfolge. Der Speicherplatz wird benötigt, damit> <> nicht1
auf den Stapel geschoben wird. Da der Anfang der mehrzeiligen Zeichenfolge Teil eines Kommentars in Javascript war, wird1991
ein mehrzeiliger Kommentar gedruckt und gestartet .for i in[0]:print 2010#🔟😃😇🔟😗➕➕😨
In Python ist dies eine for-Schleife, die die Liste[0]
durchläuft und ausgeführt wirdprint 2010
. Der Kommentar ist nur der Emotinomicon-Code (alles, was kein Emoji oder String ist, wird ignoriert). In> <> wird es (f
)15
zum Stapel verschoben.Die for-Schleife kann nicht entfernt werden, da die IP von> <> in Spalte 1 sinkt und
p
kein gültiger Befehl in> <> ist. Sie können es auch nicht durch eineif
Anweisung ersetzen , da diesi
der Befehl ist, der Eingaben in> <> entgegenzunehmen."""
ist der Anfang einer mehrzeiligen Zeichenfolge."
ist Teil der mehrzeiligen Zeichenfolge, die zum Schließen der Zeichenfolge benötigt wird, die wir in> <> geöffnet haben (das erste Anführungszeichen der vorherigen Zeile hat eine Zeichenfolge in> <> gestartet).>9002nnnn;
in> <>, ändert IP Richtung nach rechts schiebt9
,0
,0
und2
, geben diese als Zahlen und beendet das Programm."""#*/
Beendet in Python die mehrzeilige Zeichenfolge und startet einen Kommentar. Lässt*/
den mehrzeiligen Kommentar in Javascript enden.Bonusversion mit Gol> <>:
5 Sprachen, 4 Jahre,
118114 Bytes /9692 ZeichenErklärung²
IP beginnt in der oberen linken Ecke und geht nach rechts. Das
v
bringt es runter.f
drückt15
."
Startet die Zeichenfolge.`
wird verwendet, um Zeichen zu entkommen, was bei> <> nicht der Fall ist."
sollte die Zeichenfolge schließen, aber wir haben verwendet`
, damit es nicht.>
Teil der Zeichenfolge."
beendet die Zeichenfolge.>5102nnnn;
ist der eigentliche Code.>
macht die IP rechts geht,5102
schiebt5
,1
,0
und2
, undnnnn;
druckt die Zahlen und das Programm endet.quelle
SyntaxError: Non-ASCII character '\xf0' in file test.txt on line 3, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
)7 Jahre, 8 Browser
Nicht genau die Veröffentlichungsdaten der Sprache, da css eigentlich keine Veröffentlichungen hat, sondern Browserversionen (könnte man vielleicht als Compilerversionen denken?)
Bei den folgenden Browsern werden der Name des Browsers, die Version und das Veröffentlichungsdatum sowie nichts anderes gedruckt. In einigen späteren Versionen wird das Gleiche gedruckt (Chrom ist eine Version zu spät in den Screenshots, da es schwierig ist, alte Versionen von Chrome nach Versionsnummer herunterzuladen).
Ich konnte die Versionsnummer, die ich verwendet habe, ausdrucken, aber ich habe es vorgezogen, die erste Version anzuzeigen, in der die verwendete Funktion eingeführt wurde.
index.html
style.css
filter.svg
quelle
3 Jahre, 89 Bytes
Python 2, JavaScript (ES6) und Perl
Der erste
eval
wird1
auf Python 2 undprint=_=>console.log(1995)
auf JavaScript und Perl ausgeführt, wobei die Ganzzahlteilungsfunktion von Python 2 verwendet wird. Dadurch wird eineprint
Funktion in JavaScript erstellt, und Perl kümmert sich nur im Hintergrund um die Syntaxfehler und setzt diese unabhängig davon fort.Die zweite
eval
basiert darauf, dass Perl die Variable$$
(aktuelle PID) in den String interpoliert , was beim Vergleich (mit dem>
Operator) mit"0"
(Python erfordert einen String in diesem Vergleich, während Perl implizit in eine Ganzzahl konvertiert) wahr ist .Ich hätte in mehr Sprachen schuhhupen können, wollte aber eine Lösung, die keine Kommentare missbraucht und nur in "normalen" Sprachen funktioniert.
Ich habe diese Wikipedia-Seite verwendet , um die zu verwendenden Jahre abzurufen.
quelle
3 Sprachen, 3 Jahre
Eine Ad-hoc-Antwort zum Spaß.
Maus-2002 : alles danach
~
ist ein Kommentar, und der erste Teil, der auch geschrieben werden könnteC0U!!!
, wird gedruckt2002
.Dieses Pre-Challenge-Commit von Calc : Dies ist ein stapelbasierter Taschenrechner-Interpreter, den ich gerade in C11 für Programming II entworfen habe. Dieser Teil des Programms vor dem ersten Leerzeichen gibt einen Fehler aus (gemäß der Challenge-Spezifikation zulässig) und
2016 !.
druckt2016
.Brainfuck : druckt 1993 wie in anderen Antworten zu sehen. Das letzte Fremdwort
.
wird von ignoriertbeef
.Beachten Sie, dass die Anzeige des aktuellen Stapels
< stack
durch Calc mit jeder nicht leeren Eingabezeile Teil der Eingabeaufforderung>
und nicht Teil der Ausgabe ist.quelle
Microsoft Excel / Google Sheets, 22 Byte
Anonyme Arbeitsblattfunktion, die
1987
in Microsoft Excel und2006
in Google Sheets keine Ein- und Ausgaben akzeptiertquelle
Perl 5 & Perl 6 (2 Jahre)
Die erste Veröffentlichung von Perl 5 erfolgte 1994
Das erste offizielle Release von Perl 6 war im Jahr 2015
quelle