Tujuannya adalah untuk menulis program "99 Bottles of Beer" sederhana .. yang valid dalam setidaknya 2 bahasa yang berbeda (misalnya bukan Python 2 dan Python 3). Itu harus berupa file lengkap yang akan dijalankan atau dikompilasi.
Jawaban yang menarik harus dipilih, tetapi kekompakan juga penting. (Tentu saja, keragaman bahasa adalah tujuan utama.)
EDIT: Saya akan mengatakan bahwa untuk memiliki kode C normal yang melakukan hal yang sama dengan C ++ dan Objective-C dianggap sebagai turunan. Kode harus melakukan hal-hal pintar sehingga garis memiliki makna berbeda dengan bahasa yang berbeda.
popularity-contest
polyglot
MadTux
sumber
sumber
Jawaban:
C, Perl, PHP, Python, Ruby
Pembaruan : Saya telah mengumpulkan jsfiddle yang membantu memvisualisasikan jalur melalui kode untuk masing-masing dari lima bahasa: http://jsfiddle.net/wK6bD/4/embedded/result/
Versi alternatif, yang menghapus semua komentar, dan memampatkan semua string, regex, dan pola penggantian yang tidak signifikan: http://jsfiddle.net/wK6bD/5/embedded/result/
Dan saya menyimpan satu byte saat saya menggunakannya. Ternyata C memiliki semi-kolon yang tidak perlu;)
Harap Dicatat : File ini perlu disimpan dengan akhiran garis campuran . Semua baris harus diakhiri dengan
LF
(char 10 , alias unix-style), kecuali untuk dua baris yang ditandai-- THIS LINE ENDS WITH CR --
, yang harus diakhiri denganCR
(char 13 , alias mac-style). Saya sarankan menggunakan notepad ++ , atau editor teks lain yang memungkinkan Anda untuk mengedit akhiran baris secara manual.Untuk PHP, diasumsikan
output_buffering
diaktifkan. Menurut dokumentasi , ini adalah hardcodeOff
ketika menggunakan CLI, terlepas dariini
pengaturan, sehingga perlu secara eksplisit (kembali) diaktifkan:Ini memungkinkan buffer 4kb, yang merupakan nilai 'yang disarankan'. Jika Anda menggunakan salah satu yang disediakan
ini
ini sudah akan ditetapkan, sehingga harus dijalankan apa adanya dari server web mana pun.Ukuran file total adalah 823 byte (tidak termasuk komentar tentang akhir baris), rata-rata 164,6 byte per bahasa.
Versi Diuji
C - gcc 4.8.1, cl 15.00
Perl - 5.16.2
PHP - 5.4.16
Python - 2.7.6, 3.3.4
Ruby - 1.8.7, 1.9.3
Output identik untuk semua lima bahasa (lihat di bawah).
Perl, PHP
Saya suka yang ini karena betapa pendeknya itu, jadi saya meninggalkannya. Ini juga menunjukkan seberapa banyak PHP Perl-wanna-be;)
Penggunaan sampel:
sumber
C + Ruby
Mereka sebenarnya sangat mirip sekali Anda menormalkan sintaks! : P
sumber
JavaScript (SpiderMonkey / NodeJS), Perl, PHP, Ruby
EDIT: Ditambahkan dan
Ruby
EDIT 2:
Kode:
Hasil:
sumber
<?php
tidak menampilkan Hello World), Anda dapat menambahkan bahasa lain hanya dengan menggunakan pengguna9
sekali$i = 9*11;
C ++ dan PHP
Saya pikir saya akan mencobanya.
EDIT: Dipadatkan sedikit.
Ini akan dikompilasi dengan baik sebagai C ++ dan akan memunculkan beberapa HTML yang bagus jika dijalankan melalui PHP. Either way, outputnya adalah:
sumber
Haskell, PHP
Menggabungkan bahasa fungsional dan imperatif!
Di Haskell, saya mendefinisikan fungsi
*/
yang membuat bekerja dengan komentar PHP jauh lebih mudah!sumber
Brainfuck, Bahasa Inggris
Sumber untuk BF: http://www.99-bottles-of-beer.net/language-brainfuck-1718.html
sumber
,
dan.
akan menyebabkan masalah. Perbaiki ini dengan menambahkan[
sebelum bagian bahasa Inggris, dan]
pada akhirnya.beef
dan mereka tidak menimbulkan masalah.,
membacaNULL
karakter (U+0000
).PHP dan 아희 (Aheui)
Aheui diuji dengan naheui .
Saya tahu ini curang, tapi tetap berhasil.
sumber
Ini akan bekerja di Python 3 dan Julia.
sumber
Ini melanggar aturan, tapi saya pikir dengan cara yang lucu.
Itu ditulis dalam C dan C ++. Dalam C ++ itu melakukan 99 botol cukup standar.
Di C, pertama-tama mengisi dinding, lalu mengosongkannya.
sumber
BrainFuck dan Python 2
Ini akan dikompilasi dan dijalankan di bawah CPython2.7 (dan mungkin lainnya) serta juru bahasa BrainFuck. Ini adalah dua bahasa yang berbeda, dengan sedikit tumpang tindih, dan jawaban ini benar-benar curang.
Baris kedua adalah kode yang dijalankan BrainFuck. Penerjemah BrainFuck harus mengabaikan sisa kode, dan penerjemah online akan menjalankannya.
Sisa kode adalah kode Python. Awalnya itu hanya akan mencetak seluruh set lirik, tapi itu tidak menyenangkan. Hal yang sama juga akan dilakukan untuk kode BrainFuck, tetapi gagal oleh pembatasan karakter dalam posting (sekitar 270.000 karakter).
sumber
Lua dan (F) ASM
Kredit untuk Revolusi untuk Fasm one liner, meskipun semua yang ada di antara baris 1 dan 3 diabaikan oleh Lua sehingga saya bisa membuat program fasm panjang yang tidak teratur di sana.
Kuncinya adalah bahwa dalam lua Anda dapat menggunakan tanda titik koma untuk memisahkan instruksi, untuk menulis beberapa instruksi pada baris yang sama, sementara pada intinya titik koma adalah awal komentar. S = 10; adalah tugas yang valid dalam kedua bahasa, yang lainnya cukup jelas
sumber
J, Python 2.x
Saya sedikit terlambat ke pesta, tapi oh well. Tidak ada yang terlalu mewah di sini, karena ini adalah polyglotting pertama saya. Python sangat tidak mungkin dicampur dengan J; jadi pada dasarnya saya berkomentar J keluar di Python dan membuat Python string literal dalam J. Saya mungkin akan menambahkan lebih banyak bahasa nanti.
sumber
C # + Ruby
untuk menjalankan (Ruby):
ruby -x script.cs
sumber
Ini harus bekerja di C, C ++ dan Objective-C. Objective-C ++ belum diuji tetapi mungkin akan berfungsi:
sumber
is valid in at least 2 distinct languages (e.g. not Python2 and Python3)
- Saya akan mengatakan ini benar-benar tidak lulus persyaratan itu. Panggilan OP sekalipun.Ruby, Golfscript
sumber