Tantangan:
Tulis kode itu, ketika dijalankan akan menampilkan kode sumber program kedua yang dapat dieksekusi dalam bahasa lain. Program kedua harus menampilkan kode sumber dari program ketiga yang dapat dieksekusi dalam bahasa ketiga dan seterusnya. Program terakhir harus di-output PPCG
dengan single trailing newline opsional.
Pemenangnya adalah pengiriman dengan bahasa paling banyak. Panjang kode program pertama adalah tie breaker.
Aturan penting:
- Tidak ada program yang identik
- Setiap bahasa hanya boleh bekerja pada salah satu kode sumber. Seharusnya tidak mungkin menggunakan bahasa yang sama dua tempat dalam rantai tanpa memutusnya (lihat contoh) .
- Rantai yang diperpendek bukanlah rantai yang rusak. Jika Anda dapat menggunakan bahasa di tempat yang berbeda dari yang dimaksudkan dan hasil akhirnya masih PPCG maka itu tidak valid
- Semua versi bahasa dihitung sebagai bahasa yang unik (tetapi perlu diingat aturan nomor 2)
Contoh:
Pengiriman yang tidak valid:
print("""print'disp("PPCG")'""")
- Python 3:
print("""print'disp("PPCG")'""")
cetakanprint'disp("PPCG")'
- Python 2:
print'disp("PPCG")'
cetakandisp("PPCG")
- Oktaf:
disp("PPCG")
cetakanPPCG
Ini berfungsi dengan baik, tetapi: Anda bisa menjalankan kode pertama dan kedua di Python 2 tanpa memutus rantai, jadi ini melanggar aturan nomor 2.
Pengajuan yang valid dengan skor 3:
print("""print'disp("PPCG")'""")
- Python 3:
print("""print'disp("PPCG")'""")
cetakanprint'disp("PPCG")'
- Perl:
print'disp("PPCG")'
cetakandisp("PPCG")
- Oktaf:
disp("PPCG")
cetakanPPCG
Ini adalah kode yang sama persis dengan contoh yang tidak valid. Perbedaannya adalah, kami telah memilih bahasa yang mematuhi aturan nomor 2: Anda tidak dapat menjalankan kode pertama di Perl / Octave, kode kedua di Python 3 / Octave atau kode terakhir di Python 3 / Perl. Ini valid meskipun Python 2 dapat menjalankan dua program pertama, karena kami belum menggunakan Python 2 sebagai salah satu bahasa.
sumber
Jawaban:
12 bahasa, 64 byte
Arang -> tinylisp -> Python 3 -> /// -> Python 2 -> Perl -> QBasic -> Pip -> V -> Retina -> Pyth -> GolfScript
Arang
Setiap menjalankan ASCII yang dapat dicetak adalah string literal di Charcoal.
P
dapat digunakan untuk pencetakan multi-arah, tetapi dalam kasus ini hanya mencetak string yang mengarah ke kanan.tinylisp
Satu-satunya karakter yang dilindungi undang-undang di tinylisp (saat tulisan ini dibuat) adalah tanda kurung dan spasi putih. Setiap rangkaian karakter lainnya adalah token, bahkan sesuatu seperti
+"\'PPCG\'`">"""'*1
. Tanda kurung mendefinisikan daftar. Theq
(kutipan) builtin mengembalikan argumen unevaluated - dalam hal ini, daftar bersarang(print ('/x/print/x"""x q<?"`i.*":?CHR$ (34) +"\'PPCG\'`">"""'*1))
. (Kurung yang hilang di bagian akhir dilengkapi secara otomatis.)Python 3
Karena
print
merupakan fungsi dalam Python 3, kita dapat membungkusnya dalam tanda kurung tanpa masalah. Dalam Python 2, di mana itu adalah pernyataan, ini adalah kesalahan sintaksis. Sayangnya, Perl baik-baik saja dengan tanda kurung, jadi kami juga melakukan*1
(pengulangan string dengan Python, dilemparkan ke int dan dikalikan dalam Perl).///
/x/print/
perubahanx
keprint
dalam sisa program, yang tidak memiliki garis miring dan karena itu output dengan tidak ada perubahan lebih lanjut.Python 2
Tidak ada tanda kurung setelahnya
print
, tidak bekerja dalam Python 3. Perl tidak suka dengan tanda kutip tiga.Perl
Berbagai cara Perl untuk mengutip string sangat membantu, dan berbeda dari bahasa lain. Di sini kita gunakan
q<...>
.QBasic
Beberapa pernyataan cetak (disingkat
?
), menggunakanCHR$(34)
untuk mendapatkan penawaran ganda.Pip
Pola tunggal (regex) literal dalam backticks.
V
Beralih ke mode penyisipan, tambahkan beberapa teks.
Retina
Cocokkan apa saja dan gantikan dengan baris kedua.
Pyth
Kutipan Pyth tidak perlu dicocokkan (yang membuat ini bukan program yang valid di Pip).
GolfScript
sumber
echo '…'
ke awalJava -> C -> Ruby -> /// -> Python 3 -> Batch -> JavaScript -> BrainFuck (8 Bahasa)
Klik nama bahasa untuk kode melalui setiap eksekusi, kecuali untuk Batch, karena saya tidak dapat menemukan penerjemah online untuknya.
Penjelasan:
sumber
print()
berfungsi dalam JavaScript, ia tidak menghasilkan apa-apa, dan pada kenyataannya mencoba untuk mencetak halaman, jadi saya tidak berpikir itu penting..
inconsole.log
.Java -> BotEngine -> Treehugger -> Loader -> Batch -> Thue -> Microscript II -> BF -> ForceLang -> Javascript, 10 bahasa
Program Java:
Program BotEngine:
Program Treehugger:
Program pemuat:
Program batch:
Programnya:
Program Microscript II:
Program BF:
Program ForceLang:
Program Javascript:
sumber
11 bahasa, 536 byte
Bash -> Python 3 -> Go -> Lua -> Rust -> Java -> C99 -> Python 2 -> JavaScript -> Ruby -> Batch
Pesta:
The
p
Fungsi mengurangi ukuran kode dengan 497 byte dibandingkan dengan mengetik semua backslashes manual.Python 3:
Diferensiasi Python 2/3 wajib.
Pergilah:
Lua:
Menggunakan
if 1 == 1 then
mencegah kompatibilitas Python.Karat:
Jawa:
C99:
Python 2:
JavaScript:
Rubi:
Batch:
sumber
Befunge (5 versi)
Kami mulai dengan versi terbaru, Befunge-109 (jalankan bersama
cfunge -s 109
):Yang menampilkan kode Befunge-98 berikut ( Coba online! ):
Yang menampilkan kode Befunge-97 berikut ( Coba online! ):
Yang menampilkan kode Befunge-96 berikut ( Coba online! ):
Yang menghasilkan Befunge-93 berikut ( Coba online! ):
Yang menghasilkan string:
PPCG
Setiap program hanya akan berjalan dalam versi Befunge yang ditargetkan. Jika Anda mencoba menjalankannya di versi lain, mereka akan segera keluar tanpa mengeluarkan apa pun.
Berkat Dennis , hampir semua versi Befunge sekarang tersedia online di TIO . Satu-satunya pengecualian adalah Befunge-109, di mana Anda membutuhkan cfunge , yang dapat ditemukan di sini .
sumber
11 bahasa (102 byte)
Saya akan menambahkan lebih banyak segera.
Jelly -> Ruby ->> <> -> /// -> Batch -> Python 3 -> JavaScript -> J -> FOG -> Jolf -> Stacked
Output Jelly ( Coba online! ):
Output Ruby ( Coba online! ):
> <> (gunakan juru bahasa ini; ini menghasilkan spasi alih-alih nol byte untuk spasi) menghasilkan:
/// ( Coba online! ) Keluaran:
Keluaran batch:
Output Python 3 ( Coba online! ):
Output JavaScript ( Coba online! ):
J ( Coba online! —Hanya perkiraan) menghasilkan:
Cetakan FOG :
Jolf ( Coba di sini! ) Keluaran:
Akhirnya, hasil Stacked ( Coba di sini! ):
sumber
Windows Batch -> Powershell -> Ruby -> Python 3 -> JavaScript -> SQL -> CJam : 7 bahasa
Windows Batch
Powershell
Rubi
Python 3
JavaScript
SQL
CJam
sumber
/// ke Jelly ke Javascript ke MS-SQL ke QBasic ke QBIC, 39 byte, 6 bahasa
Penjelasan:
QBIC dan QBasic memiliki banyak kesamaan. Namun, baris kode ini tidak kompatibel silang: QBasic menerima
?
singkatan sebagaiPRINT
, tetapi tidak tahu apa yang harus dilakukan dengan@
dan backtick. QBIC akan menginterpretasikanPRINT
baris sebagai referensi ke 5 variabel string yang berbeda danP$R$I$N$T$
bukan pernyataan yang valid.sumber
blert
;-)9 bahasa: Memproses -> Jawa -> C -> Python 3 -> JavaScript (ES6) -> Oktaf -> Bash -> sed -> V, 160 byte
Saat ini tujuan saya adalah menemukan dan menambahkan bahasa di mana saya tidak perlu lepas dari kutipan dan barang-barang.
Memproses output (perhatikan bahwa program Java tidak berjalan di Processing dan sebaliknya)
Output Java:
Output C:
Python 3 (perhatikan bahwa program python tidak akan berfungsi dalam Memproses karena komentar dan sebaliknya) output:
Output JavaScript:
Output oktaf:
Output Bash:
output sed:
Output V:
PPCG
sumber
Python 2 -> Bash -> MySQL -> PHP
int score = 4;
Meskipun ini bukan kode golf, bytecount adalah 49.
Output python:
Output Bash:
Output MySQL:
Output PHP:
Ini dia!
sumber
Baru mengenal codegolf, hanya mencoba membuat entri. Tidak berusaha menang. Apakah saya melakukan ini dengan benar?
Bash -> Batch - 23 byte
Ini akan menampilkan "echo PPCG" ke .bat yang dapat dieksekusi di windows.
sumber