Kode apa yang dikompilasi dalam jumlah bahasa terbanyak? [Tutup]


29

Tidak termasuk program sepele, kode apa yang dikompilasi dalam jumlah bahasa terbanyak?

(Dengan "sepele" maksud saya untuk mengecualikan jawaban seperti program kosong atau teks yang akan digaungkan secara langsung.)

Kode berikut ini ternyata mengkompilasi dalam semua bahasa pemrograman berikut (dan mencetak sesuatu yang berbeda di masing-masing bahasa): C, C ++, Perl, TeX, LaTeX, PostScript, sh, bash, zsh dan Prolog.

%:/*:if 0;"true" +s ||true<</;#|+q|*/include<stdio.h>/*\_/
{\if(%)}newpath/Times-Roman findfont 20 scalefont setfont(
%%)pop 72 72 moveto(Just another PostScript hacker,)show((
t)}. t:-write('Just another Prolog hacker,'),nl,halt. :-t.
:-initialization(t). end_of_file. %)pop pop showpage(-: */
int main(){return 0&printf("Just another C%s hacker,\n",1%
sizeof'2'*2+"++");}/*\fi}\csname @gobble\endcsname{\egroup
\let\LaTeX\TeX\ifx}\if00\documentclass{article}\begin{doc%
ument}\fi Just another \LaTeX\ hacker,\end{document}|if 0;
/(J.*)\$sh(.*)"/,print"$1Perl$2$/"if$_.=q # hack the lang!
/
sh=sh;test $BASH_VERSION &&sh=bash;test $POSIXLY_CORRECT&&
sh=sh;test  $ZSH_VERSION && sh=zsh;awk 'BEGIN{x="%c[A%c[K"
printf(x,27,27)}';echo "Just another $sh hacker," #)pop%*/

Itu 10 bahasa berbeda. Saya menemukannya melalui pts oldalai (yang juga memiliki puisi Natal yang luar biasa ditulis dalam C, C ++, Perl dan TeX). Adakah yang bisa berbuat lebih baik?


8
Istilah teknisnya adalah Polyglot
st0le

8
Berikut 16 bahasa polyglot
st0le

7
Jika sh, bash, dan zsh dihitung sebagai bahasa yang berbeda meskipun pada dasarnya hanya menggunakan sh maka saya pikir Anda perlu menentukan secara tepat apa yang Anda hitung sebagai bahasa yang berbeda. Misalnya Perl 4 vs Perl 5.10 memiliki beberapa perbedaan yang signifikan.
Peter Taylor

7
Ada bahasa (mis. Whitespace, BrainF ** k dan Perl), di mana hampir semua kombinasi karakter adalah program yang valid. Mereka dapat diklaim oleh program apa pun.
ugoren

Jawaban:


9

3 Bahasa - C, C ++, dan Python

#ifdef _cplusplus
    #include <iostream>
    #define print() int main(){cout << "Hello world! -- from C++" << endl;}
#elif (defined __STDC__) || (defined __STDC_VERSION__)
    #include <stdio.h>
    #define print() int main(){printf("Hello world! -- from C\n");}
#else
import builtins
print = lambda : builtins.print("Hello world! -- from Python")
#endif

print()

Sesuatu yang berbeda dicetak dalam setiap bahasa. Dalam C & C ++, baris yang dimulai dengan '#' adalah arahan preprocessing, tetapi baris yang sama adalah komentar dalam Python.


4

5 bahasa - Thue, Brainf ***, Boolf ***, Treehugger, dan Javascript

/*::=
alert::=~This is Thue!
::=
-><[[--->+<]>-.[---->+++++<]>-.+.++++++++++.+[---->+<]>+++.-[--->++<]>-.++++++++++.+[---->+<]>+++.+[->++<]>.---[----->+<]>-.+++[->+++<]>++.++++++++.+++++.--------.---[->+++<]>+...---------.[-]]
^^[[--->+^]>-.[---->+++++^]>-.+.++++++++++.+[---->+^]>+++.-[--->++^]>-.++++++++++.+[---->+^]>+++.>-[--->+^]>-.-[--->+^]>+.-------------..+++.[--->+^]>---.++[->+++^]>++..--.+++++++++++++.[--->+^]>-----.[-]]
-+[+;;+;+;+;+;+;+;;;;+;+;+;;+;+;+;;+;+;+;;+;+;;+;;+;;;+;;;;;;+;+;;+;+;;+;+;+;;+;+;;+;;+;;;+;;;;;;+;+;;;+;+;;;;+;+;+;;;;+;+;;+;+;;;;+;+;;+;;;+;;+;+;;+;;+;;+;;+;;+;;+;+;+;+;+;+;;;+;+;+;+;+;+;;;+;+;+;+;+;+;;+;+;;;;+;+;;]
*/alert("This is Javascript!")

Perhatikan bahwa porsi Treehugger habis dalam implementasi berbasis web, sayangnya, jadi Anda harus menggunakan penerjemah Treehugger yang berbeda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.