10 Jahre, 12 Sprachen, 2430 Bytes

46

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:

Rohes Bild

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:

Piet Weg

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 2zum 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 ppmImage-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:

Braincopter-Pfad

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, wtun die s am Ende des Codes nichts. Sie sind für den Grasanteil der Lösung da. n, e, s, Und wwerden verwendet , um das Bild zu bewegen , und *verwendet wird , einen Punkt , an diesem Ort zu plotten. Das Programm gibt aus:

Paintfuck-Ausgabe

Eine größere Version:

Painfuck Ausgabe, aber es ist größer

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 RBeschwörungen in einem Atom, das sich nach rechts bewegt, die "2014"Drucke 2014und die ;angehaltene Ausführung.

Befunge

Befunge geht nur durch folgende Zeichen:

P3v
  7
  > 7*::,8 +:,,2 +,@

Sie P3sind erforderlich, um ein gültiges PPM-Bild für piet zu erstellen und kumulativ eine 3 auf den Stapel zu legen. Das vwird platziert, um den Zeiger nach unten zu lenken. Es geht dann durch die 7in den 17verwendet , 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 1wird ausgegeben von ,. 8 +Fügt 8 zum oberen ASCII-Inkrement hinzu 9. :,,Ausgänge 9zweimal. 2 +Inkrementiert den ASCII-Wert 1in einen ASCII-Wert 3und ,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 win der Datei und nach , dass alle Zeichen , die nicht sind w, Woder 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 .ppmunser Code , um eine gültige Datei zu P3sein, 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 .ppmFormatierung 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.

Weizen-Assistent
quelle
Brillant! Ich hatte gehofft, Piet würde irgendwie auftauchen, die Einbettung von Dingen in ein PPM ist brillant. Gut gemacht!
Cincodenada
1
+1 für We saved the best for last. : D
DJMcMayhem

Antworten:

38

5 Jahre

#define q/*-[>+<-----]>--.++++++++..------.[-][
print('2010'if len(bin.__doc__)==86else'2015')
"""*/
main(c){c=-4.5//**/
-4.5;printf("19%d",90-c);}
#define w/*]
*/"""

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.5der derselbe ist wie c=-4.5 / -4.5, während ein C99-Compiler als lesen würde c=-4.5 //comment/**/
- 4.5, der derselbe ist wie c=-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.


  1. Die C89-Spezifikation wurde 1990 veröffentlicht. Weitere Informationen .
  2. Ich konnte kein offizielles Erscheinungsdatum finden, daher glaube ich Esolangs und Wikipedia .
betseg
quelle
4
Das ist toll, vor allem die -4.5/-4.5und -4.5-4.5. Das Mischen von zwei Versionen von jeweils zwei Hauptsprachen ist ziemlich beeindruckend, auch ohne BF da
reinzuwerfen
Dies ist kein Codegolf, aber die a=Online-2 ist unnötig
TheInitializer
@TheInitializer ja, ich habe es ohne versucht a=und es gab einen Fehler, also habe ich beschlossen, es zu behalten. Ich weiß nicht, warum es einen Fehler gab, wahrscheinlich einen Tippfehler.
Betseg
@betseg Wenn dieser Code nur in Python ausgeführt wird, sollte er funktionieren.
TheInitializer
17

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

<script onbeforeunload="123">
// This uses document.write because alert does nothing in Phoenix (Firefox) 0.1.
document.write((function () {
    function assert (code) {
        try {
            eval(code);
            return true;
        } catch (e) {
            return false;
        }
    }

    // Firefox 44 supports octal and binary literals in Number(); Firefox 35 does not.
    if (Number("0o1") === 1)
        return 2016;

    // Firefox 35 supports template strings; Firefox 27 does not.
    if (assert("`abc`"))
        return 2015;

    // Firefox 27 supports argument spreading; Firefox 18 does not.
    if (assert("Math.max(...[1, 2, 3])"))
        return 2014;

    // Firefox 18 supports default arguments; Firefox 10 does not.
    if (assert("function q(a = 1) { }"))
        return 2013;

    // Firefox 10 has basic WeakMap support; Firefox 4 does not.
    if (assert("WeakMap.a"))
        return 2012;

    // Firefox 4 has basic typed array support; Firefox 3.6 does not.
    if (assert("Int8Array.a"))
        return 2011;

    // Firefox 3.6 added the async attribute to script elements.
    if (assert("document.getElementsByTagName('script')[0].async.a"))
        return 2010;

    // Firefox 3.5 added the String.prototype.trim() method.
    if (assert("'abc'.trim()"))
        return 2009;

    // Firefox 3.0 added partial support for object destructuring.
    if (assert("var {c} = {c: 7}"))
        return 2008;

    // Firefox 3.0 beta 1 added the Array.prototype.reduce() and Array.prototype.reduceRight() methods.
    if (assert("[].reduce.a"))
        return 2007;

    // Firefox 2.0 added support for restricted words as properties.
    if (assert("({if:1}).if"))
        return 2006;

    // Firefox 1.5 added the Array.prototype.indexOf() methods, along with a couple other Array methods.
    if (assert("[1].indexOf(1)"))
        return 2005;

    // Practically the only JS difference between v0.6 and v1.0 is the addition of the onbeforeunload event.
    if (assert("document.getElementsByTagName('script')[0].onbeforeunload.a"))
        return 2004;

    // The Object.prototype.eval() method was removed in Firebird 0.6.
    if (!assert("'abc'.eval()"))
        return 2003;

    // We're all the way back to the good old Phoenix 0.1 browser...
    return 2002;
})());
</script>
ETHproductions
quelle
Sie können ein 16. Jahr hinzufügen, indem Sie BF: <!--<<<<-[>+<-----]>--.++++++++..------.[-][-->vor dem Skript und einen weiteren HTML-Kommentar mit einem ]anschließenden einfügen.
Steven H.
6
@StevenH. Ähm ... wow, ich hätte nie darüber nachgedacht, Esolangs in diese aufzunehmen. Und das ist eine wirklich kluge Art, BF
einzubeziehen
13

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

#-[>+<-----]>--.++++++++..------#"2016"/
print(2015 if len(len.__doc__)==42 else 2010)
#;                           oooo"2009"/
#;"4102"L

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:

#-[>+<-----]>--.++++++++..------#"2016"/
  ^sets string variable to this   ^ prints 2016

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

print(2015 if len(len.__doc__)==42 else 2010)

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 elseund geht 2010und 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:

#;"4102"L
        L spawn left moving atom
  "4102"  print this right to left
 ;        halt
# python comment
Zerstörbare Zitrone
quelle
13

3 Jahre, 3 Sprachen: C, TeX, MIXAL

*main(){puts("1990");}/*\newwrite\O\openout\O=O\write\O{1982}\bye                                                                                                                              
START   ENTA    1997
        CHAR
        STX     6
        OUT     6(19)
        HLT
        END     START   */ 

Benennen Sie die Datei date.mixal.

  1. C (1990) - Kompiliert mit Warnungen und druckt 1990nach stdout.
  2. TeX (1982) - Kompilieren mit tex date.mixal; druckt 1982in die Datei O.tex(ignorieren Sie die DVI-Ausgabe).
  3. MIXAL (1997) - Kompilieren mit GNU Mix Development Kit mixasm date.mixalund Ausführen mit mixvm -r date.mix; druckt 1997auf das Fernschreibgerät (= stdout).

Die Programme TeX und MIXAL befinden sich in einem Kommentar im Programm C; Das MIXAL-Programm folgt, \byesodass TeX es ignoriert. Die C- und TeX-Programme sind ein Kommentar im MIXAL-Programm. Aus irgendeinem Grund gccist bereit zu akzeptieren *main.

Musarithmie
quelle
Ich hatte MIXAL, +1: D
cat
13

3 Jahre (GolfScript, CJam, MATL), 24 23 Bytes

[A11]Wd%;200 1e2/0 8_+(

Dies 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:

200      Push 200
           STACK: 200
1        Push 1
            STACK: 200, 1
/        Divide
           STACK: 200
0        Push 0
           STACK: 200, 0
8        Push 8
           STACK: 200, 0, 8
+        Add
           STACK: 200, 8
(        Subtract 1
           STACK: 200, 7
         Implicitly display 200, 7 as "2007"

CJam

[A11]    Push array [10 11]
           STACK: [10 11]
W        Push -1
           STACK: [10 11], -1
d        Convert to double
           STACK: [10 11], -1.0
%        Select elements from array
           STACK: [11 10]
;        Pop
           STACK is empty
200      Push 200
           STACK: 200
1e2      Push 100
           STACK: 100
/        Divide
           STACK: 2
0        Push 0
           STACK: 2, 0 
8_       Push 8 and duplicate
           STACK: 2, 0, 8, 8
+        Add
           STACK: 2, 0, 16
(        Subtract 1
           STACK: 2, 0, 15
         Implicitly display 2, 0, 15 as "2015" 

MATL

Alles von nun %an ist ein Kommentar.

[A11]    Push array [5 11]
           STACK: [5 11]
W        2 raised to that
           STACK: [32 2048]
d        Compute increment
           STACK: 2016
         Implicitly display as "2016"
Luis Mendo
quelle
Korrektur: In CJam, nachdem %Sie [11 10] erhalten haben. Nicht dass das was ausmacht.
Aditsu
@Aditsu Whoops! Danke, bearbeitet
Luis Mendo
12

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 .

print('2010'if 3/2==1else'2015')

Dies basiert auf PEP 238, bei dem der Operator /in Python 3 von einer Ganzzahldivision in eine Gleitkommadivision geändert wurde.

Meilen
quelle
3
Dies könnte eine unterhaltsame Herausforderung sein, wenn es darum geht, Fehler / Änderungen in den Betreibern zwischen den Versionen zu identifizieren
Meilen
1
@ TuukkaX Es funktioniert für mich in Python 2.7.12 und Python 3.5.1 auf Fedora 24.
Meilen
1
Kannst du nicht '2010'if 3/2>1else'2015'stattdessen tun ?
Qwerp-Derp
15
Oder wir Mathe:print(int(2010+1/2*10))
Jakube
2
print('2015'if 1/2else'2010')ist besser
Cyoce
12

8 Jahre, TI-Basic

Disp 1996           <-- TI-83
Text(-1,1,1,1
ClrHome
Disp 1999           <-- TI-83+ OS 1.03 (initial OS)
sub(1
ClrHome
Disp 2002           <-- TI-83+ OS 1.15
isClockOn
ClrHome
Disp 2004           <-- TI-84+ OS 2.21
invT(e,1
ClrHome
Disp 2005           <-- TI-84+ OS 2.40
CLASSIC
ClrHome
Disp 2009           <-- TI-84+ OS 2.53
BackgroundOn
ClrHome
Disp 2013           <-- TI-84+ Color Silver Edition
Send({1
ClrHome
2015                <-- TI-84+ Color Edition OS 5.1

"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:

  1. Veröffentlichungsdaten des Rechners - https://epsstore.ti.com/OA_HTML/csksxvm.jsp?nSetId=74258
  2. Erscheinungsdatum von TI-83 + OS 1.15 - http://wikiti.brandonw.net/index.php?title=83Plus:OS:VersionDifferences#TIOS_1.15
  3. Rechnerkompatibilität - http://tibasicdev.wikidot.com/compatibility
  4. Erscheinungsdatum von TI-84 + CSE - https://www.amazon.com/Texas-Instruments-Silver-Graphing-Calculator/dp/B00AWRQKDC
  5. Erscheinungsdatum von TI-84 + CE - http://www.prnewswire.com/news-releases/texas-instruments-unveils-the-new-ti-84-plus-ce-300026266.html und https: // www. cemetech.net/forum/viewtopic.php?t=8870
Timtech
quelle
9

5 Jahre, Go 1.0, 1.1, 1.4, 1.5, 1.6: 285 257 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.

package main
import(."fmt"
."reflect"
."time")
func main(){s:="6"
if _,e:=Parse("2016-Sep-30","2016-Sep-31");e==nil{s="5"}
if Sprint(ValueOf(0))!="0"{s="4"}
if Sprint(&map[int]int{1:1})[0]!='&'{s="3"}
if string(0xd800)==string(0xfffd){s="2"}
Print("201"+s)}

Ungolfed und kommentiert:

package main

import (
    "fmt"
    "reflect"
    "time"
)   package main

import (
    . "fmt"
    . "reflect"
    . "time"
)

func main() {
    s := "6"
    // 1.6: time.Parse rejects invalid days
    if _, e := Parse("2016-Sep-30", "2016-Sep-31"); e == nil {
        s = "5"
    }
    // 1.5: A reflect.Value now prints what it holds, rather than use
    // its String() method
    if Sprint(ValueOf(0)) != "0" {
        s = "4"
    }
    // 1.4: Printing pointers to maps gives the map instead of the address
    if Sprint(&map[int]int{1: 1})[0] != '&' {
        s = "3"
    }
    // 1.1: Unicode surrogate halves are no longer allowed
    if string(0xd800) == string(0xfffd) {
        s = "2"
    }
    Print("201" + s)
}
EMBLEM
quelle
7

4 Jahre, 99 Bytes / 77 Zeichen

v=1//1;"""
 1991/*"""
for i in[0]:print 2010#🔟😃😇🔟😗➕➕😨
"""
"
>9002nnnn;
"""#*/

Hinweis: Ich bin nicht sicher, ob die Jahre korrekt sind

  • Python 2.7, 2010
  • Javascript, 1991
  • Emotinomicon, 2015
  • ><>2009

Ich habe eine Weile gebraucht, um herauszufinden, wie Python und JS zusammenarbeiten.

Erläuterung

v=1//1;"""Setzt die Variable vauf 1dividiert durch 1in Python und auf 1in 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> <> nicht 1auf den Stapel geschoben wird. Da der Anfang der mehrzeiligen Zeichenfolge Teil eines Kommentars in Javascript war, wird 1991ein 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 wird print 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 pkein gültiger Befehl in> <> ist. Sie können es auch nicht durch eine ifAnweisung ersetzen , da dies ider 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 schiebt 9, 0, 0und 2, 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, 118 114 Bytes / 96 92 Zeichen

v=1//1;"""
 1991/*"""
for i in[0]:print 2010#🔟😃😇🔟😗➕➕😨
"""
`
"
>9002nnnn;
"
>5102nnnn;
"""#*/
  • Golfish v0.4.2, 2015

Erklärung²

IP beginnt in der oberen linken Ecke und geht nach rechts. Das vbringt es runter.

fdrückt 15.

" 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, 5102schiebt 5, 1, 0und 2, und nnnn;druckt die Zahlen und das Programm endet.

Akrolith
quelle
Python-Fehler bei den Unicode-Zeichen ohne den richtigen Header. ( 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)
Wheat Wizard
@ WheatWizard Speichern Sie die Datei als UTF-8
acrolith
7

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.

  • IE6
  • IE7
  • IE8
  • IE9 (ungetestet, habe keinen IE9 in der Nähe)
  • Firefox 4
  • Firefox 3.6
  • Chrome 18
  • Chrome 21
  • Moderne Browser

FF3.6 FF4 Chrom19 Chromium22 IE8-Macken IE8-IE7-Kompatibilität IE8

index.html

<!DOCTYPE html>
 <html>
  <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <link rel=stylesheet href=style.css>
  </head>
  <body>
    <div class=borderbox>
      <div class="inlineblock">
        &nbsp;IE6-2001
      </div>

      <div class="white">
        <div class="outofbox">
          <a href="#">IE8-2009</a>
        </div>
        <div class="inherit">
          <a href="#">IE7-2006</a>
        </div>
      </div>
    </div>
    <div class="white">
      <header class="filter-quirk filter-blur filter-blur-url">
        IE9
      </header>
    </div>
    <div class="flex white">
      Modern Browsers - 2017
    </div>
    <div class="webkit-flex">
      <div class="">
        Chrome 21-2012
      </div>
    </div>
    <div class="webkit-invert white flexdisable">
      <div class="">
        Chrome 18-2012
      </div>
    </div>

    <svg style="position: absolute; top: -99999px" xmlns="http://www.w3.org/2000/svg">

    </svg>

    <div class="filter">
      <svg xmlns="http://www.w3.org/2000/svg" version="1.1">
        <g
           transform="scale(8)"
           aria-label="FF4"
           id="text8419">
           <rect
              style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.79374999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
              id="rect21965"
              width="17.005648"
              height="3.9855044"
              x="-0.16825682"
              y="-0.025296567" />
          <path
             d="m 1.0052634,1.5511362 v 0.7639843 h 0.4564063 q 0.092604,0 0.092604,0.066146 0,0.069453 -0.092604,0.069453 H 0.69107072 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 h 0.1785938 V 0.72431329 h -0.1785938 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 2.1793519 V 1.0484278 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 0.72431329 H 1.0052634 V 1.4155373 H 1.4848207 V 1.2667091 q 0,-0.089297 0.066146,-0.089297 0.069453,0 0.069453,0.089297 v 0.4332552 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 1.5511362 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8421" />
          <path
             d="m 2.9883464,1.5511362 v 0.7639843 h 0.4564063 q 0.092604,0 0.092604,0.066146 0,0.069453 -0.092604,0.069453 h -0.770599 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 2.8527475 V 0.72431329 H 2.6741537 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 4.1624349 V 1.0484278 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 0.72431329 H 2.9883464 V 1.4155373 H 3.4679037 V 1.2667091 q 0,-0.089297 0.066146,-0.089297 0.069453,0 0.069453,0.089297 v 0.4332552 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 1.5511362 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8423" />
          <path
             d="M 5.6692683,1.8917872 H 4.7729923 V 1.7363445 l 0.754062,-1.28322911 h 0.277813 V 1.7561883 h 0.112448 q 0.0893,0 0.0893,0.069453 0,0.066146 -0.0893,0.066146 h -0.112448 v 0.4233333 h 0.112448 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -0.499402 q -0.0893,0 -0.0893,-0.069453 0,-0.066146 0.0893,-0.066146 h 0.251355 z m 0,-0.1355989 V 0.58871439 h -0.07938 L 4.9019713,1.7561883 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8425" />
          <path
             d="M 8.2881171,1.6077068 H 6.9585859 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 h 1.3295312 q 0.089297,0 0.089297,0.066146 0,0.069453 -0.089297,0.069453 z"
             style="stroke-width:0.79374999"
             id="path8422" />
          <path
             d="m 8.9582054,0.90656104 q 0,-0.14882812 0.1785937,-0.31749999 0.1819011,-0.17197916 0.4365625,-0.17197916 0.2414323,0 0.4233333,0.17197916 0.1852081,0.17197916 0.1852081,0.39687498 0,0.14882817 -0.0893,0.28111977 Q 10.006617,1.3960402 9.7056533,1.67716 L 9.0210439,2.3154672 v 0.00992 H 10.059533 V 2.2063266 q 0,-0.089297 0.06945,-0.089297 0.06614,0 0.06614,0.089297 V 2.460988 H 8.8920596 V 2.2625506 L 9.6725804,1.5283318 q 0.2315104,-0.2282031 0.3009635,-0.3307291 0.07276,-0.102526 0.07276,-0.21497396 0,-0.17197916 -0.1422132,-0.30096353 -0.1422136,-0.12898437 -0.3307292,-0.12898437 -0.1686718,0 -0.3075781,0.0992188 -0.1355989,0.0992188 -0.1752864,0.24804686 -0.019844,0.0661458 -0.069453,0.0661458 -0.023151,0 -0.042995,-0.0165365 -0.019844,-0.0198437 -0.019844,-0.0429948 z"
             style="stroke-width:0.79374999"
             id="path8424" />
          <path
             d="m 12.207981,1.3001287 v 0.3307292 q 0,0.3902604 -0.171979,0.6349999 -0.171979,0.2447396 -0.446484,0.2447396 -0.274506,0 -0.446485,-0.2447396 Q 10.971054,2.0211183 10.971054,1.6308579 V 1.3001287 q 0,-0.39356766 0.171979,-0.63830724 0.171979,-0.24473957 0.446485,-0.24473957 0.274505,0 0.446484,0.24473957 0.171979,0.24473958 0.171979,0.63830724 z M 11.589518,0.55268084 q -0.224896,0 -0.353881,0.22820312 -0.128984,0.22489584 -0.128984,0.53578124 v 0.2943489 q 0,0.3241146 0.132292,0.5457031 0.135599,0.2182813 0.350573,0.2182813 0.224895,0 0.35388,-0.2248959 0.128984,-0.2282031 0.128984,-0.5390885 V 1.3166652 q 0,-0.32411458 -0.135599,-0.54239582 -0.132292,-0.22158854 -0.347265,-0.22158854 z"
             style="stroke-width:0.79374999"
             id="path8426" />
          <path
             d="M 13.642054,0.43692564 V 2.3253891 h 0.459713 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -1.055026 q -0.0926,0 -0.0926,-0.069453 0,-0.066146 0.0926,-0.066146 h 0.459714 V 0.61551938 l -0.373724,0.37372394 q -0.02646,0.0264584 -0.06945,0.0264584 -0.02646,0 -0.0463,-0.0198438 -0.01654,-0.023151 -0.01654,-0.056224 0,-0.0297656 0.03638,-0.0661458 l 0.436562,-0.43656248 z"
             style="stroke-width:0.79374999"
             id="path8428" />
          <path
             d="M 15.625137,0.43692564 V 2.3253891 h 0.459713 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -1.055026 q -0.0926,0 -0.0926,-0.069453 0,-0.066146 0.0926,-0.066146 h 0.459714 V 0.61551938 l -0.373724,0.37372394 q -0.02646,0.0264584 -0.06945,0.0264584 -0.02646,0 -0.0463,-0.0198438 -0.01654,-0.023151 -0.01654,-0.056224 0,-0.0297656 0.03638,-0.0661458 l 0.436563,-0.43656248 z"
             style="stroke-width:0.79374999"
               id="path8430" />
          </g>
      </svg>
    </div>
    <div class="white gradient msfilter" style=color:white>
      FF3.6-2010
    </div>
  </body>
 </html>

style.css

.borderbox {
    height: 40px;
    overflow: hidden;
    padding-bottom: 100px;
}
.outofbox {
    background: blue none repeat scroll 0 0;
    margin-top: 20px;
    opacity: 0;
}
.white {
    color: white;
}
.outofbox a, .inherit a, .inherit a:visited, .outofbox a:visited {
    color: inherit;
}
.inlineblock {
    display: inline;
    width: 100%;
    zoom: 1;
    display: inline-block;
    margin-left: 100px;
    text-align: right;
}
.white header{
  color: black;
}
.absolute{
  position: absolute;
}
.flex{
  display: none;
  display: flex;
}
.flex.white{
  filter: invert(100%)
}
.webkit-flex{
  display: none;
  display: -webkit-flex;
  overflow: hidden;
  flex-flow: column;
  height: 3em;
  justify-content: flex-end;
}
.webkit-flex div{
  margin-bottom: -1.1em;
}
.flexdisable{
  display: -webkit-flex;
  overflow: hidden;
  -webkit-flex-flow: column;
  -webkit-justify-content: flex-end;
  height: 60px;
}
.flexdisable div{
  margin-bottom: -30px;
}
.filter-quirk{
  filter: url(#quirk);
}
.filter-blur{
  filter: blur(100px);
  -webkit-filter: blur(100px);
}
.webkit-blur{
  -webkit-filter: blur(100px);
}
.webkit-invert{
  -webkit-filter: invert(100%);
  filter: none;
}
.filter-url-dark{
  -webkit-filter: url(filter.svg#Invert);
  filter: url(filter.svg#Invert) invert(100%);
}
.filter-blur-url{
  filter: url(filter.svg#blur) url(filter.svg#brightness);
}
.filter{
  filter: invert(100%) brightness(100%);
  -webkit-filter: invert(100%) brightness(100%) blur(100px);
}
.filter svg{
  position: absolute;
}
.filter svg rect{
  filter: invert(100%);
  -webkit-filter: invert(100%);
}
.msfilter{
    /* IE 8 */
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  /* IE 5-7 */
  filter: alpha(opacity=0);
}
.opacity{

}
.black{
  background: black;
}
.gradient{
  width: 100px;
  background: -moz-linear-gradient( 45deg, #000, #000 );
  font-weight: bold;
}

filter.svg

    <!DOCTYPE html>
 <html>
  <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <link rel=stylesheet href=style.css>
  </head>
  <body>
    <div class=borderbox>
      <div class="inlineblock">
        &nbsp;IE6-2001
      </div>

      <div class="white">
        <div class="outofbox">
          <a href="#">IE8-2009</a>
        </div>
        <div class="inherit">
          <a href="#">IE7-2006</a>
        </div>
      </div>
    </div>
    <div class="white">
      <header class="filter-quirk filter-blur filter-blur-url">
        IE9
      </header>
    </div>
    <div class="flex white">
      Modern Browsers - 2017
    </div>
    <div class="webkit-flex">
      <div class="">
        Chrome 21-2012
      </div>
    </div>
    <div class="webkit-invert white flexdisable">
      <div class="">
        Chrome 18-2012
      </div>
    </div>

    <svg style="position: absolute; top: -99999px" xmlns="http://www.w3.org/2000/svg">

    </svg>

    <div class="filter">
      <svg xmlns="http://www.w3.org/2000/svg" version="1.1">
        <g
           transform="scale(8)"
           aria-label="FF4"
           id="text8419">
           <rect
              style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.79374999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
              id="rect21965"
              width="17.005648"
              height="3.9855044"
              x="-0.16825682"
              y="-0.025296567" />
          <path
             d="m 1.0052634,1.5511362 v 0.7639843 h 0.4564063 q 0.092604,0 0.092604,0.066146 0,0.069453 -0.092604,0.069453 H 0.69107072 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 h 0.1785938 V 0.72431329 h -0.1785938 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 2.1793519 V 1.0484278 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 0.72431329 H 1.0052634 V 1.4155373 H 1.4848207 V 1.2667091 q 0,-0.089297 0.066146,-0.089297 0.069453,0 0.069453,0.089297 v 0.4332552 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 1.5511362 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8421" />
          <path
             d="m 2.9883464,1.5511362 v 0.7639843 h 0.4564063 q 0.092604,0 0.092604,0.066146 0,0.069453 -0.092604,0.069453 h -0.770599 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 2.8527475 V 0.72431329 H 2.6741537 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 4.1624349 V 1.0484278 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 0.72431329 H 2.9883464 V 1.4155373 H 3.4679037 V 1.2667091 q 0,-0.089297 0.066146,-0.089297 0.069453,0 0.069453,0.089297 v 0.4332552 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 1.5511362 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8423" />
          <path
             d="M 5.6692683,1.8917872 H 4.7729923 V 1.7363445 l 0.754062,-1.28322911 h 0.277813 V 1.7561883 h 0.112448 q 0.0893,0 0.0893,0.069453 0,0.066146 -0.0893,0.066146 h -0.112448 v 0.4233333 h 0.112448 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -0.499402 q -0.0893,0 -0.0893,-0.069453 0,-0.066146 0.0893,-0.066146 h 0.251355 z m 0,-0.1355989 V 0.58871439 h -0.07938 L 4.9019713,1.7561883 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8425" />
          <path
             d="M 8.2881171,1.6077068 H 6.9585859 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 h 1.3295312 q 0.089297,0 0.089297,0.066146 0,0.069453 -0.089297,0.069453 z"
             style="stroke-width:0.79374999"
             id="path8422" />
          <path
             d="m 8.9582054,0.90656104 q 0,-0.14882812 0.1785937,-0.31749999 0.1819011,-0.17197916 0.4365625,-0.17197916 0.2414323,0 0.4233333,0.17197916 0.1852081,0.17197916 0.1852081,0.39687498 0,0.14882817 -0.0893,0.28111977 Q 10.006617,1.3960402 9.7056533,1.67716 L 9.0210439,2.3154672 v 0.00992 H 10.059533 V 2.2063266 q 0,-0.089297 0.06945,-0.089297 0.06614,0 0.06614,0.089297 V 2.460988 H 8.8920596 V 2.2625506 L 9.6725804,1.5283318 q 0.2315104,-0.2282031 0.3009635,-0.3307291 0.07276,-0.102526 0.07276,-0.21497396 0,-0.17197916 -0.1422132,-0.30096353 -0.1422136,-0.12898437 -0.3307292,-0.12898437 -0.1686718,0 -0.3075781,0.0992188 -0.1355989,0.0992188 -0.1752864,0.24804686 -0.019844,0.0661458 -0.069453,0.0661458 -0.023151,0 -0.042995,-0.0165365 -0.019844,-0.0198437 -0.019844,-0.0429948 z"
             style="stroke-width:0.79374999"
             id="path8424" />
          <path
             d="m 12.207981,1.3001287 v 0.3307292 q 0,0.3902604 -0.171979,0.6349999 -0.171979,0.2447396 -0.446484,0.2447396 -0.274506,0 -0.446485,-0.2447396 Q 10.971054,2.0211183 10.971054,1.6308579 V 1.3001287 q 0,-0.39356766 0.171979,-0.63830724 0.171979,-0.24473957 0.446485,-0.24473957 0.274505,0 0.446484,0.24473957 0.171979,0.24473958 0.171979,0.63830724 z M 11.589518,0.55268084 q -0.224896,0 -0.353881,0.22820312 -0.128984,0.22489584 -0.128984,0.53578124 v 0.2943489 q 0,0.3241146 0.132292,0.5457031 0.135599,0.2182813 0.350573,0.2182813 0.224895,0 0.35388,-0.2248959 0.128984,-0.2282031 0.128984,-0.5390885 V 1.3166652 q 0,-0.32411458 -0.135599,-0.54239582 -0.132292,-0.22158854 -0.347265,-0.22158854 z"
             style="stroke-width:0.79374999"
             id="path8426" />
          <path
             d="M 13.642054,0.43692564 V 2.3253891 h 0.459713 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -1.055026 q -0.0926,0 -0.0926,-0.069453 0,-0.066146 0.0926,-0.066146 h 0.459714 V 0.61551938 l -0.373724,0.37372394 q -0.02646,0.0264584 -0.06945,0.0264584 -0.02646,0 -0.0463,-0.0198438 -0.01654,-0.023151 -0.01654,-0.056224 0,-0.0297656 0.03638,-0.0661458 l 0.436562,-0.43656248 z"
             style="stroke-width:0.79374999"
             id="path8428" />
          <path
             d="M 15.625137,0.43692564 V 2.3253891 h 0.459713 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -1.055026 q -0.0926,0 -0.0926,-0.069453 0,-0.066146 0.0926,-0.066146 h 0.459714 V 0.61551938 l -0.373724,0.37372394 q -0.02646,0.0264584 -0.06945,0.0264584 -0.02646,0 -0.0463,-0.0198438 -0.01654,-0.023151 -0.01654,-0.056224 0,-0.0297656 0.03638,-0.0661458 l 0.436563,-0.43656248 z"
             style="stroke-width:0.79374999"
               id="path8430" />
          </g>
      </svg>
    </div>
    <div class="white gradient msfilter" style=color:white>
      FF3.6-2010
    </div>
  </body>
 </html>
qwazix
quelle
2
CSS hat tatsächlich Releases. Es gibt 1.0, 2.0, 2.1, 3.0 und 4.0. Die Frage lautete sogar, Wikipedia oder die Website der Sprache als Nachweis des Veröffentlichungsdatums zu verwenden. Erstveröffentlichung: 17. Dezember 1996
mbomb007
Es hat nicht den Sinn, dass es keine Implementierung dieser Ebenen gibt (sie werden nicht einmal Releases genannt, weil sie es nicht sind, Sie sollten den von Ihnen geposteten Link überprüft haben). Und CSS3 und 4 haben nicht einmal ein Veröffentlichungsdatum, da sie direkt erstellt werden und zwischen Entwürfen, Kandidaten und Empfehlungen hin und her wechseln. Außerdem implementiert kein Browser eine bestimmte Stufe 100% und 0% der nächsten Stufe, sodass das beste Datum, das Sie finden können, das Veröffentlichungsdatum des Browsers ist.
Qwazix
Dann entspricht die von Ihnen ausgewählte Sprache nicht den erforderlichen Spezifikationen für diese Herausforderung. Nicht so, wie du es versuchst. Eine Sprache wird durch seine Implementierung definiert, so dass Sie einen Browser wählen haben und bleiben Sie dabei, andere Browser - Versionen , nicht verschiedene Browser. Ich würde das OP trotzdem fragen.
mbomb007
Das OP sagte nicht, dass unterschiedliche Versionen als unterschiedliche Sprachen gelten, sondern nur, dass das Erscheinungsjahr der verwendeten Sprachversion für unterschiedliche Sprachen ausgedruckt werden soll . Die Hälfte der Antworten basierte jedoch auf der Annahme, dass verschiedene Versionen unterschiedlich genug sind, um als Sprachen gezählt zu werden. Wenn Python 2.5.0 und 2.5.1 als unterschiedlich genug angesehen werden, kann ich nicht verstehen, wie IE und Chrome nicht sind.
Qwazix
6

3 Jahre, 89 Bytes

Python 2, JavaScript (ES6) und Perl

eval((["1","print=_=>console.log(1995)"])[+(2/3>0)]);print(eval(("1991",1987)["$$">"0"]))

Der erste evalwird 1auf Python 2 und print=_=>console.log(1995)auf JavaScript und Perl ausgeführt, wobei die Ganzzahlteilungsfunktion von Python 2 verwendet wird. Dadurch wird eine printFunktion in JavaScript erstellt, und Perl kümmert sich nur im Hintergrund um die Syntaxfehler und setzt diese unabhängig davon fort.

Die zweite evalbasiert 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.

Dom Hastings
quelle
2

3 Sprachen, 3 Jahre

Eine Ad-hoc-Antwort zum Spaß.

2002!~+++++++[<+++++++>-]<[.++++++++..------.[-]] 2016 !.
  • 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) und2016 !.druckt2016.

  • Brainfuck : druckt 1993 wie in anderen Antworten zu sehen. Das letzte Fremdwort .wird von ignoriert beef.

Beachten Sie, dass die Anzeige des aktuellen Stapels < stackdurch Calc mit jeder nicht leeren Eingabezeile Teil der Eingabeaufforderung >und nicht Teil der Ausgabe ist.

Katze
quelle
Wo finde ich Informationen zu Mouse-2002? Der Github scheint keinerlei Spezifikationen zu haben.
Wheat Wizard
@WheatWizard Die README-Datei des Repository enthält Links zu Dr. Grogonos Original- MUSYS und zu David Simpsons 2002-Neustart , die zusammen ein OK-Bild ergeben.
Katze
2

Microsoft Excel / Google Sheets, 22 Byte

Anonyme Arbeitsblattfunktion, die 1987in Microsoft Excel und 2006in Google Sheets keine Ein- und Ausgaben akzeptiert

=IfError(M(2006),1987)
Taylor Scott
quelle
0

Perl 5 & Perl 6 (2 Jahre)

my $a=2015;my @a=1994;print $a[0],"\n"

Die erste Veröffentlichung von Perl 5 erfolgte 1994

Das erste offizielle Release von Perl 6 war im Jahr 2015

bb94
quelle