Mã nào biên dịch trong số lượng ngôn ngữ nhiều nhất? [đóng cửa]


29

Không bao gồm các chương trình tầm thường, mã nào biên dịch theo số lượng ngôn ngữ nhiều nhất?

(Theo "tầm thường", tôi có nghĩa là loại trừ các câu trả lời như chương trình trống hoặc văn bản sẽ được lặp lại trực tiếp.)

Đoạn mã sau dường như biên dịch trong tất cả các ngôn ngữ lập trình sau (và in một cái gì đó khác nhau ở mỗi ngôn ngữ): C, C ++, Perl, TeX, LaTeX, PostScript, sh, bash, zsh và 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%*/

Đó là 10 ngôn ngữ khác nhau. Tôi tìm thấy nó qua pts oldalai (người cũng có một bài thơ Giáng sinh tuyệt vời được viết bằng C, C ++, Perl và TeX). Bất cứ ai có thể làm tốt hơn?


8
Thuật ngữ kỹ thuật là Polyglot
st0le

8
Đây là 16 ngôn ngữ đa ngôn ngữ
st0le

7
Nếu sh, bash và zsh được tính là các ngôn ngữ khác nhau ngay cả khi về cơ bản nó chỉ sử dụng sh thì tôi nghĩ bạn cần xác định chính xác những gì bạn tính là các ngôn ngữ khác nhau. Ví dụ: Perl 4 so với Perl 5.10 có một số khác biệt đáng kể.
Peter Taylor

7
Có các ngôn ngữ (ví dụ: Whitespace, BrainF ** k và Perl), trong đó khá nhiều sự kết hợp nhân vật là một chương trình hợp lệ. Họ có thể được yêu cầu bởi bất kỳ chương trình.
ugoren

Câu trả lời:


9

3 ngôn ngữ - C, C ++ và 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()

Một cái gì đó khác nhau được in trong mỗi ngôn ngữ. Trong C & C ++, các dòng bắt đầu bằng '#' là các chỉ thị tiền xử lý, nhưng các dòng đó là các nhận xét trong Python.


4

5 ngôn ngữ - Thue, Brainf ***, Boolf ***, Treehugger và Javascript

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

Lưu ý rằng phần Treehugger hết thời gian thực hiện dựa trên web, vì vậy, bạn nên sử dụng một trình thông dịch Treehugger khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.