Quines itu menyenangkan. Polyglots juga menyenangkan. Ada Polyglot Quines, tetapi kita dapat menaikkan bilah lebih tinggi lagi.
Tulis file yang berisi program yang valid untuk bahasa α, β, dan γ. Ketika file dieksekusi (mungkin setelah mengkompilasinya) sebagai program bahasa α atau β, output program harus dalam bentuk yang sama dengan pengiriman yang valid ke kontes ini. Jika file Anda dieksekusi sebagai program γ bahasa, itu akan menghasilkan angka. Nilai angka ini adalah rantai dari eksekusi program sebelumnya yang diartikan sebagai angka biner.
Penjelasan ini mungkin agak sulit dimengerti, jadi inilah contohnya. Biarkan Α, Β, dan Γ menjadi fungsi yang mengeksekusi input mereka sebagai bahasa α, β, atau γ resp. memprogram dan mengembalikan output dari program ini. Biarkan x menjadi pengajuan yang valid untuk kontes ini. Kemudian ungkapan berikut, di mana kami memproses x melalui bahasa β, α, β, α, α, β, dan γ dalam urutan ini, akan menghasilkan 41, karena 41 10 = 101001 2 .
Γ (Β (Α (Α (Β (Α (Β ( x )))))))))
Anda mungkin tidak berasumsi bahwa eksekusi kedua dari belakang dalam rantai adalah eksekusi dalam bahasa β. Untuk kasus di mana kiriman asli Anda langsung dieksekusi sebagai program γ bahasa, ia akan mencetak 0.
Program Anda harus berperilaku dengan benar hingga enam belas kompilasi dalam rantai; yaitu, jumlah tertinggi yang mungkin dicetak oleh program Anda pada akhirnya adalah 2 15 - 1. Tentu saja, program Anda diizinkan untuk mendukung rantai kompilasi yang lebih lama.
Ini adalah kontes popularitas untuk mendorong solusi kreatif. Pengajuan dengan penghitungan suara tertinggi akan menang.
sumber
magic += Number(System.env.lang_version[-1])
a,b,c
atau1,2,3
=)Jawaban:
Python 2, Python 3,> <> (Ikan)
Penjelasan python
Penerjemah Python 2 dan Python 3 bekerja dengan cara yang sama kecuali
v=int(1/2*2)
variabel mendapatkan nilai yang berbeda (0
dan1
) karena Python 2 menggunakan divisi float dan Python 3 menggunakan divisi integer.Dalam setiap run mereka menambahkan ekspresi
+0*2
atau+1*2
ke baris pertama (setelah#;n
) dan kex
string (setelah perintah tulis terakhir). Interpreter> <> menggunakan tambahan pertama dan Python menggunakan yang kedua untuk membuat quines yang benar.Kode setelah
B(A(B(B(x))))
:> <> Penjelasan (Ikan)
Ketika Anda menjalankan penerjemah> <>, penunjuk kode memantul kembali dari
#
wraps di sekitar baris pertama dan mulai dari akhir baris pertama dan menuju Barat mulai mendorong angka ke tumpukan. Jika seorang operator datang (+
atau*
) itu muncul dua elemen teratas dari tumpukan dan mendorong kembali hasilnya. Dengan metode ini kita berakhir dengan representasi base2 dari proses sebelumnya (13
dalam contoh sebelumnya). Ini adalah angka yang diinginkan sehingga kami menampilkann
dan mengakhiri;
.sumber