10 лет, 12 языков, 2430 байт
Этот ответ является сотрудничество между мной и пользователем 1000000000 .
Краткий список языков:
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
Вот код:
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
# """
Чтобы вписать это в ответ, я воздержусь от целых ссылок TIO и скорее просто опубликую ссылку на действительный интерпретатор, где код может быть введен пользователем. Вот ссылка Pastebin для этой цели.
болтушка
Формат файла PPM , один из форматов изображений, из которого мы можем прочитать интерпретатор Piet, имеет текстовую версию ASCII. Используя это, мы смогли встроить код других языков в качестве мусора в файл изображения, прочитанный Пайтом и Брейнкоптером.
Изображение выглядит так:
Не все изображения важны для Пита. Вот версия со строкой, обозначающей путь, по которому Piet следует через код:
Несмотря на несколько запутанные способы создания программы, сама программа довольно проста. Вдоль верхней части изображения он помещается 1 10 10 10 2
в стек; вдоль стороны это умножается трижды и добавляет один раз. В нижнем углу выводится результат (2001), а затем останавливается.
Braincopter
Braincopter - другой визуальный язык. Он также опирается на тот же ppm
файл изображения для запуска. Из-за очень жестких ограничений в npiet наш код Braincopter может использовать только подмножество исходных операций Braincopter. Мы ограничены в использовании цветов, которые действительны в Пит. Это удаляет -
оператора из Braincopter.
Вот путь, прослеженный кодом Braincopter:
Программа Braincopter немного странная из-за отсутствия -
оператора. Стены голубого и темного голубого служат для перенаправления указателя, но в остальном он идентичен следующему бреду:
++++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++..+++++.
Это печатает 2005.
Paintfuck
Paintfuck является третьим языком визуального программирования в нашем списке, однако вместо того, чтобы брать изображение и выводить текст, Paintfuck принимает текст и выводит изображение.
Так как Paintfuck игнорирует нерелевантные символы, поскольку no-ops большая часть кода не имеет значения. Соответствующий раздел кода:
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
в конце кода ничего не делается. Они там для части травы решения. n
, e
, s
, И w
используются для перемещения изображения и *
используются для построения точки в определенном месте. Программа выводит:
Большая версия:
Brainfuck
Как Paintfuck Brainfuck игнорирует большинство персонажей. Еще раз вот важные из них:
[]+++---[.++....+.+..+.+.+.]++++++++-[<+++++++>-]<[.++++++++..-------+.[-]]>[<>,+,,+,<>]
Большая часть этого в дальнейшем не имеет отношения к обстоятельствам и просто является символами, которые нужны другому языку. Более тонкая версия этого кода:
+++++++[<+++++++>-]<[.++++++++..------.[-]]
Это довольно просто печатает 1993
.
Brainbool
Brainbool очень похож на Brainfuck в выборе персонажей. Большая разница, которая позволяет им сплетаться вместе, - отсутствие -
Brainbool. Важные персонажи для Brainbool:
[]+++[.++....+.+..+.+.+.]++++++++[<+++++++>]<[.++++++++..+.[]]>[<>,+,,+,<>]
Выводы Brainbool и brainfuck являются взаимоисключающими. Brainbool скрывает свой вывод во втором наборе []
. Brainfuck встречается +++---
до того, как достигает [
нулевого значения, и пропускает вывод, в то время как Brainbool видит только +++
установку 1, в результате чего он проходит через цикл. Точно так же Brainbool устанавливается в ноль в 4-м цикле, заставляя его пропускать, пока Brainfuck входит в цикл со значением 49.
Так как Brainbool не имеет десятичного вывода, он выводит 2010 в двоичном виде:
11111011010
расщепление
Единственная часть кода, которая важна для деления:
R"2014";
В R
повестке в атоме движется вправо, на "2014"
принты 2014
и ;
останавливает выполнение.
Befunge
Befunge проходит только через следующих персонажей:
P3v
7
> 7*::,8 +:,,2 +,@
Они P3
необходимы для создания правильного изображения .ppm для piet и кумулятивно помещают 3 в стек. v
помещается перенаправить указатель вниз. Затем он проходит через 7
в 17
используется для указания ширины .ppm изображения. >
Перенаправляет указатель вправо. 7*
умножает вершину стека на 7, оставляя 49 (значение ASCII 1
) на вершине стека. ::
дублирует вершину стека дважды. 1
Выводится ,
. 8 +
добавляет 8 к верхнему приращению к ASCII 9
. :,,
выводит 9
дважды. 2 +
увеличивает ASCII 1
до ASCII 3
и ,
печатает. Наконец @
завершает программу.
В целом это печатает 1993
.
Пробелы
Пробелы, как следует из названия, используют только пробелы в своих программах. Вот что видит интерпретатор пробелов:
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][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]
Большая часть того, что делает этот код, не имеет значения для выполнения программы (все строки, содержащие только пробелы, просто помещают ноль в стек). Важная часть:
[Space][Space][Space][Tab][Tab][Tab][Tab][Tab][Space][Tab][Space][Space][Tab][Tab][LF]
[Tab][LF]
[Space][Tab][LF]
[LF]
[LF]
Первая строка помещает 2003 в стек. После этого [Tab][LF][Space][Tab]
печатается вершина стека (2003) в виде числа. Наконец, последние три перевода строки завершают выполнение программы.
трава
Трава игнорирует весь символ , пока первый w
в файл и после этого всех символов, которые не являются w
, W
или v
. Травяной переводчик читает:
wWWWwWWWWwv
wWWwWWWwv
wWWWwWWWWWwWWWWWWwwwWWWWWWWwWWWWWWwwwWWWWWWWWWWwWWWWWWWWWWwv
wWWWwWWWWwv
wWWwWWWwv
wWWwWWWwv
wWWwWWWwv
wWWwwwwwwwwwwwWWWwWWWWWwWWWWWWWwWWWWWWWWWwWWWWWWWWWWWWWWWwWWWWWWWWWWWWwv
Первая строка определяет функцию, которая добавляет два к тому, что ей передают. Вторая строка определяет функцию, которая добавляет четыре к тому, что ей передают. Третий определяет функцию, которая печатает два плюс аргумент, печатает аргумент дважды, а затем, наконец, печатает семь плюс аргумент (Grass выводит символы на основе значения ASCII). Четвертая, пятая и шестая строки определяют функции, которые добавляют восемь, добавляют 16, добавляют 32 и добавляют 64 к их аргументу соответственно. Последняя строка определяет основную функцию, которая принимает символ w
(единственное предопределенное число в Grass, значение ASCII 119) и добавляет к нему 185, используя функции add, определенные в программе, а также встроенную функцию add one. Трава переносит числа в 256, и поэтому результат равен 48 (соответствует символу0
). Затем функция передает это в функцию третьей строки, которая печатает 2007.
звездный
Звездные игнорирует все , за исключением пространства, +
, *
, .
, ,
, `
, и '
. При этом звездный переводчик видит только:
+ + +. + +.. '.. +. +.. +. +. +. + + + + + + + + + + + + + + +. + + + + + + + +.. ` +. '
*, +,, +,************************************************* `
Тем не менее, инструкции label и jump используются для пропуска разделов кода, которые могут вызвать проблемы при запуске, поэтому код фактически таков:
+ + +. + +.. ' ` +. ' `
Этот код помещает два в стек, дублирует его дважды, а затем выскакивает и печатает один из них как число. Затем толкает ноль, дублирует его и печатает оба ноля в виде чисел. Затем он выталкивает одну из двойок и прыгает, а затем толкает семь к стеку и выталкивает и печатает как число. Наконец, он помещает последние два в стек и переходит в конец программы.
Python 2.7.2
Код Python соответствует формату:
P3v="";print(sum([ord(x)for x in"~~~~~~~~~~~~~~~y"]));"""..."""
где ...
стоит за всем другим хламом.
Первая строка P3v=""
указана потому, что для того, чтобы быть допустимым .ppm
файлом, наш код должен начинаться с P3
этого, что обычно приводит к ошибке, но если мы сообщим python, что это объявление переменной, он проигнорирует его.
Далее мы должны распечатать 2011
. Однако из-за способа .ppm
форматирования а мы не можем включать в эту строку какие-либо числа. Чтобы обойти это, мы суммируем все значения ASCII строки "~~~~~~~~~~~~~~~y"
и напечатаем результат. Наконец, мы используем тройные кавычки многострочного комментария, чтобы python игнорировал все остальное.
Brainflak
Мы сохранили лучшее для последнего.
Brainflak, как и другие, игнорирует большинство персонажей. Соответствующие символы:
(([()])){}{}[](((((()()()()){}){}){}){})({({}[<()>()])}{}<[[]]>)[<><>]
Код Python, (([()]))
дважды помещает -1 в стек, поэтому его необходимо удалить до начала обработки программы.
После этого Brainbool использует []
nilad, который ничего не делает, и программа начинается.
(((((()()()()){}){}){}){})({({}[<()>()])}{}<[[]]>)
толкает 2016 год. Последнее [<><>]
- это остатки Befunge и Brainfuck, но, к счастью, ничего не делает.
Когда программа завершает работу, она печатает содержимое стека, то есть печатает 2016
.
источник
We saved the best for last
. : DОтветы:
5 лет
1989: C89 [1] и 1999: C99
Однострочный комментарий
//
был добавлен в C99, поэтому компилятор C89 будет читать этот код какc=-4.5 / /*comment*/ -4.5
, что аналогичноc=-4.5 / -4.5
, а компилятор C99 будет читать какc=-4.5 //comment/**/
- 4.5
, что так же, какc=-4.5 - 4.5
.Часть Python - это комментарий в программе на Си.
2010: Python 2.7 и 2015: Python 3.5
Документы различаются между Python 3 и 2, эта программа использует длину документов для определения версии Python.
Часть C находится в строке в программе Python.
1993 [2] : Brainfuck
Это в основном игнорирует все, что нет
.,[]+-<>
. Так как в программе на С есть,
, я должен был заставить Brainfuck отклонить эту часть, установив текущий байт в 0.источник
-4.5/-4.5
и-4.5-4.5
. Создание двух версий каждого из двух основных языков довольно впечатляюще, даже безa=
строке 2 нет необходимостиa=
и это дало ошибку, поэтому я решил оставить ее. Я не знаю, почему это дало ошибку, хотя, вероятно, опечатка.15 лет, JavaScript
Поскольку цикл выпуска JavaScript очень необычный и непоследовательный, я собираюсь использовать реализацию Firefox. Пожалуйста, дайте мне знать, если это не разрешено.
Версии: 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 (все протестировано на Windows 7)
Важное примечание: установка и открытие Firefox 1.0.0 или более поздней версии может стереть все ваши сохраненные данные Firefox , включая историю и закладки.
Кроме того, начиная с 1.0.0, вы можете одновременно открывать только одну версию; Попытка открыть другую версию приводит к появлению нового окна уже открытой версии.
инструкции
Код
источник
<!--<<<<-[>+<-----]>--.++++++++..------.[-][-->
перед сценарием и другой HTML-комментарий, содержащий только]
последующие.6 языков, Turtlèd и brainfuck , Python 3.5, Python 2.7, > <> , Fission
Turtlèd не существовал до этого года, и поэтому он легко объективен, даже если коммиты github не учитываются, и у BF есть свидетельство на странице esolang, выпущенное в 1993 году. Python 3.5 - 2015, 2.7 - 2010.> <> также имеет страницу esolang , заявив 2009, как и деление, 2014
Я, вероятно, должен отдать должное странице констант bf на esolangs ... ¯ \ _ (ツ) _ / ¯
Как это работает, вроде:
Turtlèd:
Turtlèd ничего не делает для строк, отличных от первого:
/ нет
Brainfuck
Brainfuck игнорирует символы не в своих командах
он видит
-[>+<-----]>--.++++++++..------.
(последний. из части Python)который просто делает Brainfuck, он использует обтекание для деления 255 на 5, затем вычитает 2 из результата, печатает, увеличивает 8 раз, печатает дважды, уменьшает 6 раз, печатает
Python 2 и 3
длина документации для len варьируется между версиями, поэтому она печатает год для версии 3, если это правильная длина, иначе для версии 2.
> <>
# отражает указатель в обратном направлении, поэтому он попадает в / на другой стороне этой строки, проходит через пробел между
else
и2010
, затем снова отражается, чтобы достичь «2009», помещая 9,0,0,2 в стек, затем распечатывая в обратном порядке ,расщепление
У деления есть порождающие, поэтому у нас может быть строка внизу, которую он выполняет в одиночку:
источник
3 года, 3 языка: C, TeX, MIXAL
Назовите файл
date.mixal
.1990
вstdout
.tex date.mixal
; печатает1982
в файлO.tex
(игнорируйте вывод DVI).mixasm date.mixal
и запустите сmixvm -r date.mix
; печатает1997
на устройство телетайпа (=stdout
).Программы TeX и MIXAL находятся в комментарии в программе C; за ним следует программа MIXAL,
\bye
поэтому TeX игнорирует ее. Программы C и TeX являются комментарием в программе MIXAL. По какой-то причинеgcc
готов принять*main
.источник
3 года (GolfScript, CJam, MATL),
2423 байтаЭто выводы
2007
в GolfScript.2015
в CJam (версия 0.6.5).2016
в MATL (версия 19.2.0).объяснение
Golfscript
Неопределенные токены являются noops в GolfScript . Единственные части кода, которые действительно что-то делают:
CJam
MATL
Все с этого
%
момента является комментарием.источник
%
получения [11 10]. Не то чтобы это имело значение.2 языка, Python 2.7 и Python 3.5
Python 2.7 был выпущен в 2010 году .
Python 3.5 был выпущен в 2015 году .
Это зависит от PEP 238, где оператор
/
был изменен с целочисленного деления в Python 2 на деление с плавающей точкой в Python 3.источник
'2010'if 3/2>1else'2015'
вместо этого?print(int(2010+1/2*10))
print('2015'if 1/2else'2010')
лучше8 лет, TI-Basic
«Любая из программ может печатать в STDERR или генерировать ошибки и предупреждения времени выполнения / компиляции, если правильный вывод все еще печатается в STDOUT или файл». В настоящее время отображается только год без ошибок, поэтому мы соблюдаем это правило. Однако, если вы хотите вместо этого записать в память, замените
Disp (date)
на(date)->I
.Рекомендации:
источник
5 лет, Go 1.0, 1.1, 1.4, 1.5, 1.6:
285257 байт(1.2 был выпущен в 2013 году как 1.1, 1.3 в 2014 году как 1.4 и 1.7 в 2016 году как 1.6.)
Не проверял это на каждой версии, потому что я могу получить доступ только к 1.6, но теоретически это должно работать! Изменения языка, вероятно, привели к тому, что программа не компилировалась, поэтому я полагался на стандартные изменения библиотеки.
Развернулся и прокомментировал:
источник
4 года, 99 байт / 77 символов
Примечание: я не уверен, что годы правильные
><>
2009Мне понадобилось некоторое время, чтобы понять, как заставить Python и JS работать вместе.
объяснение
v=1//1;"""
устанавливает переменнуюv
для1
деления на1
в Python и1
в Javascript (//
начинает комментарий в Javascript) и;"""
запускает многострочную строку в Python.;
Не может быть заменена новой строки , потому что будет делать Javascript перестанет работать.1991/*"""
остальная часть многострочной строки. Пространство необходимо, чтобы> <> не помещалось1
в стек. Поскольку начало многострочной строки было частью комментария в Javascript, она печатает1991
и запускает многострочный комментарий.for i in[0]:print 2010#🔟😃😇🔟😗➕➕😨
в Python - это цикл for, который повторяет список[0]
и запускаетсяprint 2010
. Комментарий - это просто код Emotinomicon (он игнорирует все, что не является смайликом или строкой). В> <> он (f
) помещается15
в стек.Цикл for не может быть удален, поскольку IP-адрес> <> понижается в столбце 1 и
p
не является допустимой командой в> <>. Вы также не можете заменить его наif
оператор, потому чтоi
это команда для ввода в> <>."""
начало многострочной строки."
является частью многострочной строки, необходимой для закрытия строки, которую мы открыли в> <> (первая кавычка предыдущей строки начала строку в> <>).>9002nnnn;
в> <>, меняет направление IP - направо, толкает9
,0
,0
и2
, вывести как числа и завершает программу."""#*/
в Python завершает многострочную строку и начинает комментарий. В Javascript*/
завершает многострочный комментарий.Бонусная версия с Gol> <>:
5 языков, 4 года,
118114 байтов /9692 символовExplanation²
IP начинается в верхнем левом углу, идет вправо. Это
v
заставляет это идти вниз.f
выталкивает15
."
начинается строка`
используется для экранирования символов, то, что> <> не имеет."
следует закрыть строку, но мы использовали`
, так что не будет.>
часть строки."
заканчивает строку>5102nnnn;
это фактический код.>
делает IP идти прямо,5102
толкает5
,1
,0
и2
, иnnnn;
печатает число и заканчивает программу.источник
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 лет, 8 браузеров
Не совсем даты выпуска языка, потому что на самом деле у css нет выпусков, но есть версии браузера (может быть, это версия компилятора?)
Для следующих браузеров, это печатает имя браузера, версию и дату выпуска и ничего больше. Он печатает то же самое для нескольких более поздних версий (вы увидите, что хром - это одна из версий, показанная позже на скриншотах, потому что трудно загрузить старые версии chrome по номеру версии)
Я мог бы напечатать номер версии, которую использовал, но я предпочел показать первую версию, где представлена использованная функция.
index.html
style.css
filter.svg
источник
3 года, 89 байт
Python 2, JavaScript (ES6) и Perl
Первый
eval
будет работать1
на Python 2, а такжеprint=_=>console.log(1995)
на JavaScript и Perl с использованием функции целочисленного деления Python 2. Это создаетprint
функцию в JavaScript, а Perl только молча заботится о синтаксических ошибках и продолжает независимо.Вторая
eval
основывается на том, что Perl интерполирует переменную$$
(текущий PID) в строку, что будет истинно при сравнении (с использованием>
оператора) с"0"
(Python требует строку в этом сравнении, тогда как Perl неявно преобразуется в целое число).Я мог бы носить обувь на большем количестве языков, но хотел иметь решение, которое не злоупотребляло бы комментариями и работало только на «обычных» языках.
Я использовал эту страницу Википедии, чтобы найти годы, чтобы использовать.
источник
3 языка, 3 года
Специальный ответ для развлечения.
Мышь-2002 : все, что после
~
- это комментарий, и первая часть, которую тоже можно написатьC0U!!!
, печатает2002
.это предварительная фиксация Calc : интерпретатор калькулятора на основе стека, который я только что разработал в C11 для Programming II, часть программы перед первым пробелом печатает ошибку (разрешено согласно спецификации вызова) и
2016 !.
печатает2016
.Brainfuck : печатает 1993, как видно из других ответов. Финал посторонний
.
игнорируетсяbeef
.Обратите внимание, что отображение Calc текущего стека
< stack
с каждой непустой строкой ввода является частью приглашения>
, а не частью вывода.источник
Microsoft Excel / Google Sheets, 22 байта
Функция анонимного рабочего листа, которая не требует ввода и вывода
1987
в Microsoft Excel и2006
Google Sheetsисточник
Perl 5 и Perl 6 (2 года)
Первый выпуск Perl 5 был в 1994 году
Первый официальный релиз Perl 6 был в 2015 году
источник