10 años, 12 idiomas, 2430 bytes

46

10 años, 12 idiomas, 2430 bytes

Esta respuesta es una colaboración entre mí y el usuario 1000000000 .

Una breve lista de idiomas:

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 

Aquí está el código:

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

Para encajar esto dentro de una respuesta, renunciaré a enlaces TIO completos y preferiré simplemente publicar un enlace a un intérprete válido donde el usuario pueda ingresar el código. Aquí hay un enlace de Pastebin para ese propósito.

Piet

El formato de archivo PPM , uno de los formatos de imagen que el intérprete de Piet que utilizamos puede leer, tiene una versión ASCII de texto sin formato. Con esto pudimos incrustar el código de otros idiomas como basura en el archivo de imagen leído por Piet y Braincopter.

La imagen se ve así:

Imagen en bruto

No toda la imagen es importante para Piet. Aquí hay una versión con una línea que resalta la ruta que Piet sigue a través del código:

Camino de Piet

A pesar de los métodos algo complicados para crear el programa, el programa en sí es bastante simple. A lo largo de la parte superior de la imagen, empuja 1 10 10 10 2a la pila; a lo largo del costado se multiplica tres veces y suma una vez. En la esquina inferior muestra el resultado (2001) y luego se detiene.

Braincopter

Braincopter es el otro lenguaje visual. También se basa en el mismo ppmarchivo de imagen para ejecutarse. Debido a restricciones muy severas en npiet, nuestro código de Braincopter solo puede usar un subconjunto de las operaciones originales de Braincopter. Estamos restringidos a usar colores que sean operaciones válidas en Piet. Esto elimina al -operador de Braincopter.

Aquí está el camino trazado por el código Braincopter:

Camino Braincopter

El programa Braincopter es un poco extraño debido a la falta de un -operador. Las paredes de cian y cian oscuro sirven para redirigir el puntero, pero aparte de eso, es idéntico al siguiente brainfuck:

++++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++..+++++.

Esto imprime 2005.

Paintfuck

Paintfuck es el tercer lenguaje de programación visual en nuestra lista, sin embargo, en lugar de tomar una imagen y generar texto, Paintfuck toma texto y genera una imagen.

Dado que Paintfuck ignora los caracteres irrelevantes como no operacionales, la mayor parte del código no es importante. La sección relevante del código es:

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

Si bien no son no-ops, los ws al final del código no hacen nada. Están allí para la porción de hierba de la solución. n, e, s, Y wse utilizan para mover alrededor de la imagen y *se utiliza para trazar un punto en cierto lugar. El programa genera:

Salida de paintfuck

Una versión más grande:

Salida de Painfuck, pero es más grande

Brainfuck

Al igual que Paintfuck, Brainfuck ignora a la mayoría de los personajes. Una vez más, aquí están los importantes:

 []+++---[.++....+.+..+.+.+.]++++++++-[<+++++++>-]<[.++++++++..-------+.[-]]>[<>,+,,+,<>]

La mayor parte de esto es aún más irrelevante por las circunstancias y simplemente son caracteres que algún otro idioma necesitaba. La versión más delgada de este código es:

+++++++[<+++++++>-]<[.++++++++..------.[-]]

Esto bonito simplemente imprime 1993.

Brainbool

Brainbool es muy similar a Brainfuck en su selección de personajes. La gran diferencia que permite que los dos se entrelacen es la falta de un -Brainbool. Los personajes importantes para Brainbool son:

[]+++[.++....+.+..+.+.+.]++++++++[<+++++++>]<[.++++++++..+.[]]>[<>,+,,+,<>]

Las salidas de Brainbool y brainfuck son mutuamente excluyentes. Brainbool oculta su salida en el segundo conjunto de []. Brainfuck se encuentra +++---antes de que llegue [a cero y hace que omita la salida, mientras que Brainbool solo ve +++que se establece en 1 y hace que pase por el bucle. Del mismo modo, Brainbool se establece en cero en el cuarto bucle, lo que hace que salte mientras Brainfuck ingresa al bucle con un valor de 49.

Como Brainbool no tiene salida decimal, genera el 2010 en binario:

11111011010

Fisión

La única parte del código que es importante para la fisión es:

R"2014";

La Rconvocatoria en un átomo que se mueve hacia la derecha, las "2014"impresiones 2014y la ;ejecución se detiene.

Befunge

Befunge solo pasa por los siguientes personajes:

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

El P3son necesarios para hacer una imagen de .ppm válida para Piet, y la acumulada empujar un 3 a la pila. el vse coloca para redirigir el puntero hacia abajo. Luego pasa a través 7de la 17utilizada para indicar el ancho de la imagen .ppm. El >redirecciona el puntero a la derecha. 7*multiplica la parte superior de la pila por 7 dejando 49 (valor ASCII de 1) en la parte superior de la pila. ::duplica la parte superior de la pila dos veces. El 1es emitido por ,. 8 +agrega 8 al incremento superior a ASCII 9. :,,salidas 9dos veces. 2 +incrementa el ASCII 1a un ASCII 3e ,imprime. Finalmente @termina el programa.

En general, se imprime 1993.

Espacio en blanco

Los espacios en blanco, como su nombre lo sugiere, solo usan espacios en blanco en sus programas. Esto es lo que ve el intérprete de espacios en blanco:

[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][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]

La mayor parte de lo que hace este código es intrascendente para la ejecución del programa (todas las líneas que contienen solo espacios simplemente empujan cero a la pila). La parte importante:

[Space][Space][Space][Tab][Tab][Tab][Tab][Tab][Space][Tab][Space][Space][Tab][Tab][LF]
[Tab][LF]
[Space][Tab][LF]
[LF]
[LF]

La primera línea empuja 2003 a la pila. Después de eso [Tab][LF][Space][Tab]imprime la parte superior de la pila (2003) como un número. Finalmente, los últimos tres avances de línea finalizan la ejecución del programa.

Hierba

Hierba ignora todos los caracteres hasta la primera wen el archivo y después de que todos los caracteres que no son w, Wo v. El intérprete de Grass dice:

wWWWwWWWWwv
wWWwWWWwv
wWWWwWWWWWwWWWWWWwwwWWWWWWWwWWWWWWwwwWWWWWWWWWWwWWWWWWWWWWwv
wWWWwWWWWwv
wWWwWWWwv
wWWwWWWwv
wWWwWWWwv
wWWwwwwwwwwwwwWWWwWWWWWwWWWWWWWwWWWWWWWWWwWWWWWWWWWWWWWWWwWWWWWWWWWWWWwv

La primera línea define una función que agrega dos a lo que se pasa. La segunda línea define una función que agrega cuatro a lo que se pasa. El tercero define una función que imprime dos más el argumento, imprime el argumento dos veces, luego finalmente imprime siete más el argumento (Grass imprime caracteres basados ​​en el valor ASCII). Las líneas cuarta, quinta y sexta definen funciones que suman ocho, agregan 16, agregan 32 y agregan 64 a sus argumentos, respectivamente. La línea final define la función principal que toma el carácter w(el único número predefinido en Grass, valor ASCII 119) y le agrega 185 usando las funciones de agregar definidas en el programa, así como la función incorporada de agregar una. Grass envuelve los números en 256 y el resultado es 48 (correspondiente al carácter0) La función luego pasa esto a la función de la tercera línea que imprime 2007.

Estrellado

Estrellada ignora todo excepto por el espacio, +, *, ., ,, `, y '. Así, el intérprete estrellado solo ve:

       + + +.     + +..  '.. +. +.. +. +. +. + + + + + + + + + + + + + + +. + + + + + + + +..  `             +. '
     *, +,, +,************************************************* `

Sin embargo, la etiqueta y las instrucciones de salto se utilizan para omitir secciones del código que podrían causar problemas si se ejecutan, por lo que el código es efectivamente esto:

       + + +.     + +..  '  `             +. ' `

Este código empuja dos a la pila, lo duplica dos veces y luego aparece e imprime uno de ellos como un número. Luego presiona cero, lo duplica e imprime ambos ceros como números. A continuación, aparece uno de los dos y saltos y luego empuja siete a la pila y aparece e imprime como un número. Finalmente, muestra los dos últimos en la pila y salta al final del programa.

Python 2.7.2

El código de Python sigue el formato:

P3v="";print(sum([ord(x)for x in"~~~~~~~~~~~~~~~y"]));"""..."""

donde se ...encuentra el resto de la basura.

La primera línea, P3v=""está allí porque para ser un .ppmarchivo válido , nuestro código debe comenzar con P3esto normalmente producirá un error, pero si le decimos a Python que es una declaración variable, lo ignorará.

A continuación tenemos que imprimir 2011. Sin embargo, debido a la forma en que .ppmestá formateado, no podemos incluir ningún número en esta línea. Para evitar esto, resumimos todos los valores ASCII de la cadena "~~~~~~~~~~~~~~~y"e imprimimos el resultado. Finalmente, usamos las comillas triples de un comentario de varias líneas para que Python ignore todo lo demás.

Brainflak

Guardamos lo mejor para el final.

Brainflak, como otros, ignora la mayoría de los personajes. Los personajes relevantes son:

(([()])){}{}[](((((()()()()){}){}){}){})({({}[<()>()])}{}<[[]]>)[<><>]

El código de Python (([()])), empuja -1 a la pila dos veces, por lo que debe eliminarse antes de que el programa comience a procesarse.

Después de eso, Brainbool usa un []nilad que no hace nada y comienza el programa.

(((((()()()()){}){}){}){})({({}[<()>()])}{}<[[]]>)empuja 2016. El último [<><>]es restos de Befunge y Brainfuck pero afortunadamente no hace nada.

Cuando el programa termina, imprime el contenido de la pila, es decir, imprime 2016.

Asistente de trigo
fuente
¡Brillante! Esperaba que Piet apareciera de alguna manera, incrustar cosas en un PPM es brillante. ¡Bien hecho!
cincodenada
1
+1 para We saved the best for last. : D
DJMcMayhem

Respuestas:

38

5 años

#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] y 1999: C99

El comentario de una sola línea //se agregó en C99, por lo que un compilador C89 leería ese código como c=-4.5 / /*comment*/ -4.5, que es el mismo que c=-4.5 / -4.5, mientras que un compilador C99 leería como c=-4.5 //comment/**/
- 4.5, que es lo mismo que c=-4.5 - 4.5.
La parte de Python es un comentario en el programa C.

2010: Python 2.7 y 2015: Python 3.5

Los documentos varían entre Python 3 y 2, este programa usa la longitud de los documentos para detectar la versión de Python.
La parte C está en una cadena en el programa Python.

1993 [2] : Brainfuck

Básicamente ignora todo lo que no lo es .,[]+-<>. Como el programa C tiene una función ,, tuve que hacer Brainfuck para descartar esa parte estableciendo el byte actual a 0.


  1. La especificación C89 se lanzó en 1990. Más información .
  2. No pude encontrar una fecha de lanzamiento oficial, así que creeré en Esolangs y Wikipedia .
Betseg
fuente
44
Esto es genial, especialmente el -4.5/-4.5y -4.5-4.5. Mezclar dos versiones de cada uno de los dos idiomas principales es bastante impresionante, incluso sin
incluir
Esto no es codegolf, pero el a=en línea 2 es innecesario
TheInitializer
@TheInitializer sí, lo intenté sin a=y me dio un error, así que decidí mantenerlo. Sin embargo, no sé por qué dio un error, probablemente un error tipográfico.
betseg
@betseg si ese código solo se ejecuta en Python, debería funcionar.
TheInitializer
17

15 años, JavaScript

Dado que el ciclo de lanzamiento de JavaScript es muy inusual e inconsistente, voy a usar la implementación de Firefox. Avísame si esto no está permitido.

Versiones: 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 (todos probados en Windows 7)

Nota importante: Instalar y abrir Firefox 1.0.0 o cualquier versión posterior puede borrar todos los datos guardados de Firefox , incluidos el historial y los marcadores.

Además, a partir de 1.0.0, solo puede tener una versión abierta a la vez; intentar abrir otra versión da como resultado una nueva ventana de la versión ya abierta.

Instrucciones

Código

<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>
ETHproducciones
fuente
Puede agregar un año 16 incluyendo BF: <!--<<<<-[>+<-----]>--.++++++++..------.[-][-->antes del script y otro comentario HTML que contenga solo un ]después.
Steven H.
66
@StevenH. Um ... wow, nunca pensé en incluir esolangs en esto. Y esa es una forma realmente inteligente de incluir BF :-) Pero no estoy seguro de que realmente quiera ...
ETHproductions
13

6 idiomas, Turtlèd y brainfuck , Python 3.5, Python 2.7, > <> , Fisión

Turtlèd no ha existido antes de este año, y es tan fácilmente objetivo, incluso si las confirmaciones de github no cuentan, y BF tiene la evidencia de la página esolang, lanzada en 1993. Python 3.5 es 2015, 2.7 es 2010.> <> también tiene esa página , indicando 2009, al igual que Fission, 2014

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

Probablemente debería dar crédito a la página de constantes bf en esolangs ... ¯ \ _ (ツ) _ / ¯

Cómo funciona, tipo de:

Turtlèd:

Turtlèd realmente no hace nada por líneas que no sean las primeras:

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

/ es un nop

Brainfuck

Brainfuck ignora los caracteres que no están en sus comandos

ve -[>+<-----]>--.++++++++..------.(el último. es de la parte de python)

que solo hace cosas de Brainfuck, usa envoltura para dividir 255 por 5, luego resta 2 del resultado, imprime, incrementa 8 veces, imprime dos veces, disminuye 6 veces, imprime

Python 2 y 3

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

la longitud de los documentos para len varía entre las versiones, por lo que imprime el año para la versión 3 si es la longitud correcta, de lo contrario para la versión 2.

> <>

# refleja el puntero hacia atrás, por lo que golpea el / al otro lado de esa línea, pasa a través del espacio entre ellos elsey 2010luego vuelve a reflejar para presionar "2009", empujando 9,0,0,2 en la pila, luego imprime al revés .

Fisión

La fisión tiene reproductores, por lo que podemos tener una línea en la parte inferior que se ejecuta sola:

#;"4102"L
        L spawn left moving atom
  "4102"  print this right to left
 ;        halt
# python comment
Limón Destructible
fuente
13

3 años, 3 idiomas: 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   */ 

Nombra el archivo date.mixal.

  1. C (1990) - Compila con advertencias e impresiones 1990a stdout.
  2. TeX (1982) - Compilar con tex date.mixal; imprime 1982en el archivo O.tex(ignore la salida DVI).
  3. MIXAL (1997) - Compile usando GNU Mix Development Kit mixasm date.mixaly ejecútelo con mixvm -r date.mix; imprime 1997en el dispositivo de teletipo (= stdout).

Los programas TeX y MIXAL están en un comentario en el programa C; el programa MIXAL viene después, \byepor lo que TeX lo ignora. Los programas C y TeX son un comentario en el programa MIXAL. Por alguna razón gccestá dispuesto a aceptar *main.

musaritmia
fuente
Me había olvidado de MIXAL, +1: D
cat
13

3 años (GolfScript, CJam, MATL), 24 23 bytes

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

Esto salidas

  • 2007 en GolfScript.

  • 2015 en CJam (versión 0.6.5).

  • 2016 en MATL (versión 19.2.0).

Explicación

Golfscript

Los tokens no definidos son noops en GolfScript . Las únicas partes del código que realmente hacen algo son:

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

Todo en %adelante es un comentario.

[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
fuente
Corrección: en CJam después de %obtener [11 10]. No es que importe.
aditsu
@aditsu ¡Vaya! Gracias, editado
Luis Mendo
12

2 idiomas, Python 2.7 y Python 3.5

Python 2.7 fue lanzado en 2010 .

Python 3.5 fue lanzado en 2015 .

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

Esto se basa en PEP 238 donde el operador /cambió de división entera en Python 2 a división de punto flotante en Python 3.

millas
fuente
3
Esto podría ser un desafío divertido si implica identificar errores / cambios en los operadores entre versiones
millas
1
@TuukkaX Me funciona tanto en Python 2.7.12 como en Python 3.5.1 en Fedora 24.
millas
1
¿No puedes hacer en su '2010'if 3/2>1else'2015'lugar?
Qwerp-Derp
15
O matemática estadounidense:print(int(2010+1/2*10))
Jakube
2
print('2015'if 1/2else'2010')es mejor
Cyoce
12

8 años, 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

"Cualquiera de los programas puede imprimir en STDERR, o lanzar advertencias y errores de tiempo de ejecución / tiempo de compilación siempre que la salida correcta todavía se imprima en STDOUT o en un archivo". Actualmente, la única visualización sin errores es el año, por lo que estamos cumpliendo con esta regla. Sin embargo, si desea escribir en la memoria, reemplácelo Disp (date)con (date)->I.

Referencias

  1. Fechas de lanzamiento de la calculadora: https://epsstore.ti.com/OA_HTML/csksxvm.jsp?nSetId=74258
  2. TI-83 + OS 1.15 fecha de lanzamiento - http://wikiti.brandonw.net/index.php?title=83Plus:OS:VersionDifferences#TIOS_1.15
  3. Compatibilidad de calculadora: http://tibasicdev.wikidot.com/compatibility
  4. Fecha de lanzamiento de TI-84 + CSE: https://www.amazon.com/Texas-Instruments-Silver-Graphing-Calculator/dp/B00AWRQKDC
  5. Fecha de lanzamiento de TI-84 + CE: http://www.prnewswire.com/news-releases/texas-instruments-unveils-the-new-ti-84-plus-ce-300026266.html y https: // www. cemetech.net/forum/viewtopic.php?t=8870
Timtech
fuente
9

5 años, vaya 1.0, 1.1, 1.4, 1.5, 1.6: 285 257 bytes

(1.2 se lanzó en 2013 como 1.1, 1.3 en 2014 como 1.4 y 1.7 en 2016 como 1.6).

No he probado esto en todas las versiones porque solo puedo acceder a 1.6, ¡pero debería funcionar en teoría! Los cambios de idioma probablemente habrían causado que el programa no se compilara, así que confié en los cambios estándar de la biblioteca.

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 y comentó:

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)
}
EMBLEMA
fuente
7

4 años, 99 bytes / 77 caracteres

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

Nota: no estoy seguro si los años son correctos

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

Me tomó un tiempo descubrir cómo hacer que Python y JS trabajen juntos.

Explicación

v=1//1;"""conjuntos de variables va 1dividido por 1en Python, y 1en Javascript ( //se inicia un comentario en Javascript), y ;"""se inicia una cadena de varias líneas en Python. No ;se puede reemplazar con una nueva línea porque eso haría que Javascript dejara de funcionar.

1991/*"""es el resto de la cadena multilínea. El espacio es necesario para que> <> no empuje 1a la pila. Dado que el inicio de la cadena multilínea era parte de un comentario en Javascript, imprime 1991e inicia un comentario multilínea.

for i in[0]:print 2010#🔟😃😇🔟😗➕➕😨en Python, es un bucle for que itera la lista [0]y se ejecuta print 2010. El comentario es solo el código de Emotinomicon (ignora todo lo que no es un emoji o una cadena). En> <>, se fempuja ( ) 15 a la pila.

El bucle for no se puede eliminar porque la IP de> <> está bajando en la columna 1 y pno es un comando válido en> <>. Tampoco puede reemplazarlo por una ifdeclaración, porque ies el comando para tomar entrada en> <>.

""" es el comienzo de una cadena multilínea.

" es parte de la cadena multilínea, necesaria para cerrar la cadena que abrimos en> <> (la primera comilla de la línea anterior inició una cadena en> <>).

>9002nnnn;en> <>, cambia de dirección IP a la derecha, empuja 9, 0, 0y 2, la salida de éstos como números y termina el programa.

"""#*/en Python, finaliza la cadena multilínea e inicia un comentario. En Javascript, */finaliza el comentario multilínea.


Versión de bonificación con Gol> <>:

5 idiomas, 4 años, 118114 bytes / 96 92 caracteres

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

Explicación²

IP comienza en la esquina superior izquierda, hacia la derecha. El vhace que baje.

fempuja 15.

" comienza la cadena.

` se usa para escapar de caracteres, algo que> <> no tiene.

"debería cerrar la cadena, pero la usamos `, por lo que no lo hará.

> parte de la cuerda.

" termina la cuerda

>5102nnnn;Es el código real. >IP hace que el ir a la derecha, 5102empuja 5, 1, 0y 2, y nnnn;imprime los números y termina el programa.

acrolito
fuente
Errores de Python en los caracteres unicode sin el encabezado adecuado. ( 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 Guarde el archivo como UTF-8
acrolith el
7

7 años, 8 navegadores

No son exactamente las fechas de lanzamiento del lenguaje porque css en realidad no tiene lanzamientos, sino versiones de navegador (¿podría pensarse como versiones de compilador tal vez?)

Para los siguientes navegadores, esto imprime el nombre del navegador, la versión y la fecha de lanzamiento y nada más. Imprime lo mismo para algunas versiones posteriores, (verá que el cromo es una versión tardía en las capturas de pantalla porque es difícil descargar versiones antiguas de Chrome por número de versión)

Podría imprimir el número de versión que utilicé pero preferí mostrar la primera versión donde se introduce la función utilizada.

  • IE6
  • IE7
  • IE8
  • IE9 (no probado, no tengo un IE9 alrededor)
  • Firefox 4
  • Firefox 3.6
  • Cromo 18
  • Chrome 21
  • Navegadores modernos

FF3.6 FF4 Cromo19 Cromo22 IE8-peculiaridades Compatibilidad con IE8-IE7 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
fuente
2
CSS en realidad tiene lanzamientos. Hay 1.0, 2.0, 2.1, 3.0 y 4.0. La pregunta incluso decía que usaba Wikipedia o el sitio del idioma como prueba de la fecha de lanzamiento, por lo que debería haberlo verificado. Fecha de lanzamiento inicial: 17 de diciembre de 1996
mbomb007
No lo hace con el sentido de que no hay implementación de ninguno de esos niveles (ni siquiera se llaman lanzamientos, porque no lo son, deberías haber verificado el enlace que publicaste). Y CSS3 y 4 ni siquiera tienen una fecha de lanzamiento porque se están creando sobre la marcha, y van y vienen entre borradores, candidatos y recomendaciones. Además, ningún navegador implementa un nivel específico del 100% y 0% del siguiente nivel, por lo que la mejor fecha que puede encontrar es la fecha de lanzamiento del navegador.
qwazix
Entonces, el idioma que seleccionó no cumple con las especificaciones requeridas para este desafío. No en la forma en que intentas hacerlo. Su implementación define un idioma, por lo que debe elegir un navegador y seguir con él, utilizando diferentes versiones del navegador , no navegadores diferentes. Sin embargo, todavía le preguntaría a la OP.
mbomb007
El OP no dijo que las diferentes versiones cuentan como idiomas diferentes, solo dijeron que imprimieran el año de lanzamiento de la versión de idioma utilizada, para diferentes idiomas . Sin embargo, ~ la mitad de las respuestas se basaron en el supuesto de que las diferentes versiones son lo suficientemente diferentes como para ser contadas como idiomas. Si python 2.5.0 y 2.5.1 se consideran lo suficientemente diferentes, no puedo entender cómo IE y Chrome no lo son.
qwazix
6

3 años, 89 bytes

Python 2, JavaScript (ES6) y Perl

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

El primero evalse ejecutará 1en Python 2 y print=_=>console.log(1995)en JavaScript y Perl usando la función de división de enteros de Python 2. Esto crea una printfunción en JavaScript y Perl solo se preocupa silenciosamente por los errores de sintaxis y continúa independientemente.

El segundo se evalbasa en que Perl interpola la variable $$(PID actual) en la cadena, lo cual será cierto cuando se compara (usando el >operador) con "0"(Python requiere una cadena en esa comparación, mientras que Perl se convierte implícitamente en entero).

Podría haber tenido cuernos de zapatos en más idiomas, pero quería tener una solución que no abusara de los comentarios y que solo funcionara en idiomas 'regulares'.

Usé esta página de Wikipedia para recuperar los años para usar.

Dom Hastings
fuente
2

3 idiomas, 3 años

Una respuesta ad-hoc para divertirse.

2002!~+++++++[<+++++++>-]<[.++++++++..------.[-]] 2016 !.
  • Mouse-2002 : todo lo que~sigue es un comentario, y la primera parte, que también podría escribirseC0U!!!, imprime2002.

  • esta confirmación previa al desafío de Calc : que es un intérprete de calculadora basado en pila que acabo de diseñar en C11 para la Programación II, la parte del programa antes del primer espacio imprime un error (permitido bajo la especificación de desafío) e2016 !.imprime2016.

  • Brainfuck : imprime 1993 como se ve en otras respuestas. El extraño final .es ignorado por beef.

Tenga en cuenta que la visualización de Calc de la pila actual < stackcon cada línea de entrada no vacía es parte de la solicitud >, no parte de la salida.

gato
fuente
¿Dónde puedo encontrar información sobre Mouse-2002? El github no parece tener ningún tipo de especificaciones.
Wheat Wizard
@WheatWizard El archivo README del repositorio contiene enlaces al MUSYS original del Dr. Grogono y al reinicio de 2002 de David Simpson , que juntos pintan una imagen correcta .
gato
2

Hojas de cálculo de Microsoft Excel / Google, 22 bytes

Función de hoja de trabajo anónima que no toma entradas y salidas 1987en Microsoft Excel y 2006en Hojas de cálculo de Google

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

Perl 5 y Perl 6 (2 años)

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

El primer lanzamiento de Perl 5 fue en 1994

El primer lanzamiento oficial de Perl 6 fue en 2015

bb94
fuente