Вызов:
Напишите код, который при выполнении выведет исходный код второй программы, которая может быть выполнена на другом языке. Вторая программа должна выводить исходный код третьей программы, которая может быть выполнена на третьем языке и так далее. Последняя программа должна выводить PPCG
с необязательным трейлингом.
Победителем станет представление с большинством языков. Длина кода первой программы будет прерывателем связи.
Важные правила:
- Никакие программы не могут быть идентичными
- Каждый язык должен работать только с одним из исходных кодов. Должно быть невозможным использование одного и того же языка в двух местах цепочки, не нарушая его (см. Примеры) .
- Укороченная цепь не является сломанной цепью. Если вы можете использовать язык в другом месте, чем предполагалось, и конечный результат по-прежнему PPCG, то он недействителен
- Все версии языка считаются уникальными языками (но имейте в виду правило № 2)
Примеры:
Неверное представление:
print("""print'disp("PPCG")'""")
- Python 3:
print("""print'disp("PPCG")'""")
печатьprint'disp("PPCG")'
- Python 2:
print'disp("PPCG")'
печатьdisp("PPCG")
- Октава:
disp("PPCG")
принтыPPCG
Это работает правильно, но: вы можете запустить как первый, так и второй код в Python 2, не разрывая цепочку, поэтому это нарушает правило № 2.
Действительное представление с оценкой 3:
print("""print'disp("PPCG")'""")
- Python 3:
print("""print'disp("PPCG")'""")
печатьprint'disp("PPCG")'
- Perl:
print'disp("PPCG")'
печатьdisp("PPCG")
- Октава:
disp("PPCG")
принтыPPCG
Это тот же код, что и в недопустимом примере. Разница в том, что мы выбрали языки, которые придерживаются правила № 2: вы не можете запустить первый код в Perl / Octave, второй код в Python 3 / Octave или последний код в Python 3 / Perl. Это верно, даже если Python 2 может запускать две первые программы, потому что мы не использовали Python 2 в качестве одного из языков.
источник
Ответы:
12 языков, 64 байта
Древесный уголь -> tinylisp -> Python 3 -> /// -> Python 2 -> Perl -> QBasic -> Pip -> V -> Сетчатка -> Pyth -> GolfScript
Уголь
Любой запуск печатного ASCII - строковый литерал в Charcoal.
P
может использоваться для разнонаправленной печати, но в этом случае она просто печатает строку, идущую вправо.tinylisp
Единственными зарезервированными символами в tinylisp (на момент написания этой статьи) являются круглые скобки и пробелы. Любой другой набор символов - это токен, даже нечто подобное
+"\'PPCG\'`">"""'*1
. Скобки определяют списки. Встроенныйq
(цитата) возвращает свой аргумент без оценки - в данном случае, вложенный список(print ('/x/print/x"""x q<?"`i.*":?CHR$ (34) +"\'PPCG\'`">"""'*1))
. (Отсутствующие скобки в конце заполняются автоматически.)Python 3
Поскольку
print
это функция в Python 3, мы можем поместить ее в круглые скобки без проблем. В Python 2, где это утверждение, это синтаксическая ошибка. К сожалению, Perl в порядке с круглыми скобками, поэтому мы тоже делаем это*1
(повторение строк в Python, приведение к int и умножение в Perl).///
/x/print/
изменяется ,x
чтобыprint
в остальной части программы, которая не имеет косой черты и , следовательно , выводится без каких - либо дальнейших изменений.Python 2
Никаких круглых скобок после
print
, не работает в Python 3. Perl не нравятся тройные кавычки.Perl
Различные способы цитирования строки в Perl полезны и отличаются от других языков. Здесь мы используем
q<...>
.QBasic
Пару операторов печати (сокращенно как
?
), использующихCHR$(34)
для получения двойной кавычки.зернышко
Единственный шаблон (регулярное выражение) литерала в обратных кавычках.
В
Переключиться в режим вставки, добавить текст.
Сетчатка
Сопоставьте что-нибудь и замените это второй строкой.
Pyth
Кавычки Pyth не должны совпадать (что делает эту программу недопустимой в Pip).
GolfScript
источник
echo '…'
в началоJava -> C -> Ruby -> /// -> Python 3 -> Пакетная обработка -> JavaScript -> BrainFuck (8 языков)
Нажимайте названия языков для кода при каждом выполнении, кроме Batch, потому что я не смог найти для него онлайн-переводчика.
Объяснение:
источник
print()
работает в JavaScript, он ничего не выводит и фактически пытается напечатать страницу, поэтому я не думаю, что это считается..
inconsole.log
.Java -> BotEngine -> Treehugger -> Loader -> Batch -> Thue -> Microscript II -> BF -> ForceLang -> Javascript, 10 языков
Java программа:
Программа BotEngine:
Программа Treehugger:
Программа погрузчика:
Пакетная программа:
Четвертая программа:
Программа Microscript II:
BF программа:
Программа ForceLang:
Javascript программа:
источник
11 языков, 536 байт
Bash -> Python 3 -> Go -> Lua -> Rust -> Java -> C99 -> Python 2 -> JavaScript -> Ruby -> Batch
Bash:
p
Функция уменьшает размер кода по 497 байт , по сравнению с набрав все обратные слэши вручную.Python 3:
Обязательное дифференцирование Python 2/3.
Идти:
Lua:
Использование
if 1 == 1 then
предотвращает совместимость с Python.Ржавчина:
Джава:
C99:
Python 2:
JavaScript:
Рубин:
Batch:
источник
Befunge (5 версий)
Начнем с самой последней версии, Befunge-109 (работает с
cfunge -s 109
):Который выводит следующий код Befunge-98 ( попробуйте онлайн! ):
Который выводит следующий код Befunge-97 ( попробуйте онлайн! ):
Который выводит следующий код Befunge-96 ( попробуйте онлайн! ):
Который выводит следующий Befunge-93 ( попробуйте онлайн! ):
Который выводит строку:
PPCG
Каждая программа будет работать только в той версии Befunge, на которую она нацелена. Если вы попытаетесь запустить их в другой версии, они сразу выйдут, ничего не выводя.
Благодаря Деннису , почти все версии Befunge теперь доступны онлайн на TIO . Единственным исключением является Befunge-109, для которого вам понадобится cfunge , который можно найти здесь .
источник
11 языков (102 байта)
Я собираюсь добавить больше в ближайшее время.
Jelly -> Ruby ->> <> -> /// -> Пакетная обработка -> Python 3 -> JavaScript -> J -> FOG -> Jolf -> Stacked
Желе ( попробуйте онлайн! ) Выводит:
Ruby ( попробуйте онлайн! ) Выводит:
> <> (используйте этот интерпретатор; он выводит пробелы вместо нулевых байтов для пробелов):
/// ( попробуйте онлайн! ) Вывод:
Пакетные выходы:
Python 3 ( попробуйте онлайн! ) Выводит:
JavaScript ( попробуйте онлайн! ) Выводит:
J ( Попробуйте онлайн! - только приблизительное значение) дает:
FOG печатает:
Джольф ( попробуйте здесь! ) Выводит :
Наконец, Stacked ( попробуйте здесь! ) Вывод:
источник
Пакет Windows -> Powershell -> Ruby -> Python 3 -> JavaScript -> SQL -> CJam : 7 языков
Пакет Windows
Powershell
Рубин
Python 3
JavaScript
SQL
CJam
источник
/// к Jelly к Javascript к MS-SQL к QBasic к QBIC, 39 байтов, 6 языков
Объяснение:
QBIC и QBasic имеют много общего. Однако эти строки кода не являются кросс-совместимыми: QBasic принимает
?
как сокращение дляPRINT
, но не знает, что делать с@
обратным тэгом и. QBIC будет интерпретироватьPRINT
строку как ссылку на 5 различных строковых переменных иP$R$I$N$T$
не является допустимым оператором.источник
blert
;-)9 языков: Обработка -> Java -> C -> Python 3 -> JavaScript (ES6) -> Octave -> Bash -> sed -> V, 160 байт
Сейчас моя цель - найти и добавить языки, где мне не нужно избегать кавычек и прочего.
Обработка выходных данных (обратите внимание, что Java-программа не запускается в обработке и наоборот)
Выходы Java:
C выходов:
Python 3 (обратите внимание, что программа python не будет работать в обработке из-за комментария и наоборот) выводит:
Выводы JavaScript:
Октавы выходы:
Bash выходы:
выходы sed:
V выходы:
PPCG
источник
Python 2 -> Bash -> MySQL -> PHP
int score = 4;
Несмотря на то, что это не кодовый гольф, bytecount составляет 49.
Выходы Python:
Bash выходы:
MySQL выводит:
Выводы PHP:
Вот и вы!
источник
Новичок в Codegolf, просто пытаюсь сделать запись. Не пытается победить. Я делаю это правильно?
Bash -> Batch - 23 байта
Это выведет "echo PPCG" в .bat, который может быть выполнен в Windows.
источник