什么代码可以使用最多的语言进行编译?[关闭]


29

除琐碎的程序外,什么代码可以用最多的语言进行编译?

(“琐碎”是指排除诸如空程序或将直接回显的文本之类的答案。)

以下代码显然可以在以下所有编程语言中进行编译(并且在每种语言中打印出不同的内容):C,C ++,Perl,TeX,LaTeX,PostScript,sh,bash,zsh和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%*/

那是10种不同的语言。我通过pts oldalai(也有用 C,C ++,Perl和TeX编写的宏伟的圣诞节诗)找到了它。谁能做得更好?


8
技术术语为Polyglot
st0le 2012年

8
这是16种语言的多国语言
st0le 2012年

7
如果sh,bash和zsh本质上仅使用sh算作不同的语言,那么我认为您需要准确指定算作不同语言的内容。例如,Perl 4与Perl 5.10有一些显着差异。
彼得·泰勒

7
有多种语言(例如Whitespace,BrainF ** k和Perl),其中几乎所有字符组合都是有效程序。可以通过任何程序声明它们。
ugoren 2012年

Answers:


9

3种语言-C,C ++和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()

每种语言都会打印出不同的内容。在C&C ++中,以'#'开头的行是预处理指令,但这些行在Python中是注释。


4

5种语言-Thue,Brainf ***,Boolf ***,Treehugger和Javascript

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

请注意,不幸的是,Treehugger部分在基于Web的实现中超时,因此您应该使用其他Treehugger解释器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.