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í:
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:
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 2
a 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 ppm
archivo 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:
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 w
s 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 w
se utilizan para mover alrededor de la imagen y *
se utiliza para trazar un punto en cierto lugar. El programa genera:
Una versión 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 R
convocatoria en un átomo que se mueve hacia la derecha, las "2014"
impresiones 2014
y la ;
ejecución se detiene.
Befunge
Befunge solo pasa por los siguientes personajes:
P3v
7
> 7*::,8 +:,,2 +,@
El P3
son necesarios para hacer una imagen de .ppm válida para Piet, y la acumulada empujar un 3 a la pila. el v
se coloca para redirigir el puntero hacia abajo. Luego pasa a través 7
de la 17
utilizada 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 1
es emitido por ,
. 8 +
agrega 8 al incremento superior a ASCII 9
. :,,
salidas 9
dos veces. 2 +
incrementa el ASCII 1
a un ASCII 3
e ,
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 w
en el archivo y después de que todos los caracteres que no son w
, W
o 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 .ppm
archivo válido , nuestro código debe comenzar con P3
esto 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 .ppm
está 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
.
fuente
We saved the best for last
. : DRespuestas:
5 años
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 comoc=-4.5 / /*comment*/ -4.5
, que es el mismo quec=-4.5 / -4.5
, mientras que un compilador C99 leería comoc=-4.5 //comment/**/
- 4.5
, que es lo mismo quec=-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.fuente
-4.5/-4.5
y-4.5-4.5
. Mezclar dos versiones de cada uno de los dos idiomas principales es bastante impresionante, incluso sina=
en línea 2 es innecesarioa=
y me dio un error, así que decidí mantenerlo. Sin embargo, no sé por qué dio un error, probablemente un error tipográfico.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
fuente
<!--<<<<-[>+<-----]>--.++++++++..------.[-][-->
antes del script y otro comentario HTML que contenga solo un]
después.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
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:
/ 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
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
else
y2010
luego 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:
fuente
3 años, 3 idiomas: C, TeX, MIXAL
Nombra el archivo
date.mixal
.1990
astdout
.tex date.mixal
; imprime1982
en el archivoO.tex
(ignore la salida DVI).mixasm date.mixal
y ejecútelo conmixvm -r date.mix
; imprime1997
en 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,
\bye
por lo que TeX lo ignora. Los programas C y TeX son un comentario en el programa MIXAL. Por alguna razóngcc
está dispuesto a aceptar*main
.fuente
3 años (GolfScript, CJam, MATL),
2423 bytesEsto 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:
CJam
MATL
Todo en
%
adelante es un comentario.fuente
%
obtener [11 10]. No es que importe.2 idiomas, Python 2.7 y Python 3.5
Python 2.7 fue lanzado en 2010 .
Python 3.5 fue lanzado en 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.fuente
'2010'if 3/2>1else'2015'
lugar?print(int(2010+1/2*10))
print('2015'if 1/2else'2010')
es mejor8 años, TI-Basic
"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
fuente
5 años, vaya 1.0, 1.1, 1.4, 1.5, 1.6:
285257 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.
Ungolfed y comentó:
fuente
4 años, 99 bytes / 77 caracteres
Nota: no estoy seguro si los años son correctos
><>
2009Me tomó un tiempo descubrir cómo hacer que Python y JS trabajen juntos.
Explicación
v=1//1;"""
conjuntos de variablesv
a1
dividido por1
en Python, y1
en 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 empuje1
a la pila. Dado que el inicio de la cadena multilínea era parte de un comentario en Javascript, imprime1991
e inicia un comentario multilínea.for i in[0]:print 2010#🔟😃😇🔟😗➕➕😨
en Python, es un bucle for que itera la lista[0]
y se ejecutaprint 2010
. El comentario es solo el código de Emotinomicon (ignora todo lo que no es un emoji o una cadena). En> <>, sef
empuja ( )15
a la pila.El bucle for no se puede eliminar porque la IP de> <> está bajando en la columna 1 y
p
no es un comando válido en> <>. Tampoco puede reemplazarlo por unaif
declaración, porquei
es 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, empuja9
,0
,0
y2
, 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,
118114bytes /9692 caracteresExplicación²
IP comienza en la esquina superior izquierda, hacia la derecha. El
v
hace que baje.f
empuja15
."
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,5102
empuja5
,1
,0
y2
, ynnnn;
imprime los números y termina el programa.fuente
SyntaxError: Non-ASCII character '\xf0' in file test.txt on line 3, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
)7 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.
index.html
style.css
filter.svg
fuente
3 años, 89 bytes
Python 2, JavaScript (ES6) y Perl
El primero
eval
se ejecutará1
en Python 2 yprint=_=>console.log(1995)
en JavaScript y Perl usando la función de división de enteros de Python 2. Esto crea unaprint
función en JavaScript y Perl solo se preocupa silenciosamente por los errores de sintaxis y continúa independientemente.El segundo se
eval
basa 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.
fuente
3 idiomas, 3 años
Una respuesta ad-hoc para divertirse.
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) e
2016 !.
imprime2016
.Brainfuck : imprime 1993 como se ve en otras respuestas. El extraño final
.
es ignorado porbeef
.Tenga en cuenta que la visualización de Calc de la pila actual
< stack
con cada línea de entrada no vacía es parte de la solicitud>
, no parte de la salida.fuente
Hojas de cálculo de Microsoft Excel / Google, 22 bytes
Función de hoja de trabajo anónima que no toma entradas y salidas
1987
en Microsoft Excel y2006
en Hojas de cálculo de Googlefuente
Perl 5 y Perl 6 (2 años)
El primer lanzamiento de Perl 5 fue en 1994
El primer lanzamiento oficial de Perl 6 fue en 2015
fuente