Biasanya, poliglot dibuat sedemikian rupa sehingga setiap bahasa dapat mengabaikan bagian kode yang ada untuk bahasa lain, dengan membungkusnya dalam string literal, menggunakan sintaksis komentar, atau trik serupa lainnya.
Tujuan Anda adalah menulis polyglot di mana output untuk setiap bahasa adalah kode dari polyglot yang menghasilkan output itu. Secara khusus, output harus dibangun dari kode polyglot dengan hanya penghapusan, dan itu harus menjadi quine dalam bahasa yang diberikan.
Aturan
- Hanya quine yang diperbolehkan (tidak membaca kode sumber, tidak mengambil input, output harus ke STDOUT atau alternatif terdekat jika STDOUT bukan pilihan, dan program harus terdiri dari lebih dari sekadar literal yang dicetak secara implisit).
- Karena bahasa yang berbeda dapat menggunakan penyandian yang berbeda, byte mentah adalah yang penting di sini. Misalnya, jika bahasa A menggunakan UTF-8 dan bahasa B menggunakan CP437, kode (hex)
C3 88 46 47
akanÈFG
untuk bahasa A danÈFG
untuk bahasa B. - Semua output harus berbeda (sekali lagi, membandingkan byte mentah). Ini menghindari komplikasi dengan mencoba membatasi versi bahasa minor - jika dua bahasa menggunakan bagian kode yang sama untuk melakukan hal yang sama, Anda tidak dapat mengklaim keduanya.
- Jika Anda memiliki dua bahasa A dan B sehingga
XY
merupakan output yang valid di keduanya, tetapiYZ
juga valid dalam B, Anda dapat memilihXY
sebagai output untuk A danYZ
sebagai output untuk B, sehingga Anda dapat mengklaim keduanya dalam skor Anda ( tetapi Anda tidak dapat mengklaimXY
kedua bahasa karena aturan di atas).
- Jika Anda memiliki dua bahasa A dan B sehingga
- Semua output harus sesingkat mungkin. Misalnya, jika kode Anda adalah
print('foo')#something
, untuk Python 3 (mengabaikan fakta bahwa outputnya tidak benar), kode yang Anda perlu hasilkan adalahprint('foo')
, danprint('foo')#
tidak akan diizinkan. Jika ada beberapa string dengan panjang yang sama (minimal) yang menghasilkan output yang benar, Anda dapat memilih salah satu dari mereka. - Kiriman harus berupa polyglot setidaknya dalam 2 bahasa.
- Skor Anda akan diberikan oleh
(number of programming languages with distinct outputs)**3/(total byte size of polyglot)
. Skor tertinggi menang. Jika dua pengajuan mencapai skor yang sama, pengajuan yang mencapai skor itu akan menang terlebih dahulu.