Используя два языка по вашему выбору, напишите наименьшее «взаимное квин », которое вы можете.
То есть напишите программу P на языке A, которая выводит исходный код для программы Q на языке B, так что вывод программы Q идентичен исходному коду для P.
Пустые файлы не учитываются, равно как и программы типа «читать исходный файл и печатать его».
Изменить: Ответы с P = Q больше не учитываются.
1
quine на нескольких языках. Так что вы можете сказать, что это J-программа, которая печатает программу Golfscript, которая печатает ...... и так далее.Ответы:
> <> (Рыба) и Питон - 26 символов
Создает этот Питон
источник
"
и'
включить строку разбор, так что вся программа не просто помещаются в стек и никогда не отображается."
включает разбор строк. Он читает всю программу, а затем снова оборачивается в. И"
запускает программу с собой в стекеprint \00gr00g:a9*2+$' tnirp'>o<
после истечения времени ожидания. Я почти уверен, что это происходит потому, чтоg
копирует фактическое содержимое ячейки, ноo
выводит версию символа ASCII и"
не является допустимым кодом символа ASCII. ideone.com/kaM0r"
- это ASCII 34. Ваш переводчик должен быть отключен.Python и Ruby, 39 символов
Этот фрагмент Python
генерирует этот фрагмент Ruby
который затем генерирует исходный фрагмент Python снова:
Обратите внимание, что это похоже на ответ JB .
источник
С и Perl, 73
Это C:
... выводит следующий Perl:
... который выводит С обратно.
источник
main(s){printf(s="print q<main(s){printf(s=%c%s%1$c,34,s);}>",34,s);}
C и C ++, 123 символа
Это C (скомпилировано с gcc v4.3.4):
выводит этот (идентичный) C ++ (компилируется с g ++ 4.3.4, одно предупреждение):
Это в пределах правил как отправлено. : P И, как и у Ventero, это основано на ответе JB .
источник
Java для Python - 219
Джава:
Python:
Использует тот факт, что Python допускает
'
строки; это значительно облегчает написание исходного кода Java-программы в программе Python.источник
ОднострочникиPython + Piet: 417 символов +73917107 исполняющих кодовЭтот скрипт Python создает изображение размером 7393 x 2; самый правый блок 2x2, который является «стражем», завершает программу; так что я не считаю их; а второй ряд в остальном белый. Вероятно, я смогу еще больше обработать код Пита, используя цепочки сложения / вычитания / умножения вместо наивного двоичного алгоритма ... но я не хочу выдавать решение будущей головоломки.
Я не собираюсь размещать изображение здесь, из-за его нелепых размеров. Если вы хотите его увидеть, запустите код на python и перенаправьте вывод в файл .ppm. Затем преобразуйте .ppm в .gif и запустите вывод в Rapapaing . (поочередно используйте не-веб-интерпретатор Piet, который переводит .ppm)
редактировать: немного ударил по мячу, уменьшив вес Хэмминга переменных имен.
менее golfed предварительно Куайн :
Это предыдущая версия, прежде чем я понял, что смогу сделать ее однострочной. Это немного легче понять. Функция P переводит набор специальных команд в Piet; и функция p принимает целое число и создает последовательность инструкций для создания этого целого числа в стеке. Я использую только инструкции
=,+,:,|
, так что это, вероятно, можно сделать более эффективным ... но мне нравится иметь полноценный компилятор Piet (в некотором роде) в исходном коде.источник
/Brainf..k/, 6988 байт
Brainfuck
Попробуйте онлайн!
Мозг-Flak
Попробуйте онлайн!
Brain-Flak может истечь на TIO.
объяснение
Скоро будет.
источник
Explanation coming soon
->Jan 27
Рубин и Питон (393 + 413 = 806 символов)
Небольшое изменение этого ответа моего. Определенно может быть уменьшено, поскольку я просто жестко запрограммировал ввод без какой-либо оптимизации.
Рубин (393 символа)
Питон (413 символов)
источник
Python 2 до Befunge 98,
9478Опять же, используя два способа создания строк в Python:
Python:
Befunge 98:
Программа python форматирует строку, чтобы включить себя и символы для одинарных и двойных кавычек.
Программа Befunge работает следующим образом:
<
: двигаться влево и обернуться. Итак, теперь мы выполняем команды справа налево"
: сделайте так, чтобы каждый встреченный символ помещался в стек, пока мы не встретим другого"
, поэтому мы нажимаем:На самом деле это просто программа на Python, полностью измененная из-за способа печати Befunge (который представляет собой цикл pop + print)
'M
: толкниM
в стек.M
также число 77, которое на единицу меньше числа символов, помещаемых в стек с помощью"
s.k
: вытолкните верхнее значение из стека (M
) и сделайте следующую операцию много раз, плюс один.,
: вытолкните верхнее значение из стека и напечатайте символ.@
: завершить программу.источник
Недогрузка и Betaload , 16 байт (не конкурирующие)
недогрузки:
Betaload:
Betaload - это расширенный набор недогрузки, поэтому это могут быть два ответа от недогрузки.
Это не конкурирует, потому что Betaload был создан после того, как этот вызов был опубликован.
источник
Клипер и С (111 + 108 = 219 символов)
Клипер (111)
С (108)
Это немного отговорка, потому что:
?'foo'
:-)?
и'
.#include <stdio.h>
, поэтому выдает предупреждение компиляторуисточник
PRINT
может быть сокращена?
:-)Питон и ~ - ~! - 77 и 81 = 158
Этот код Python:
выводит это ~ - ~! код:
Определенно может быть значительно улучшен, и принимает целую кучу из других ответов.
источник
Javascript и Windows .bat (71 и 81)
а также
источник