Який код складається на найбільшій кількості мов? [зачинено]


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
Технічний термін " Поліглот"
st0le

8
Ось 16 мовних поліглотів
st0le

7
Якщо sh, bash і zsh вважаються різними мовами, навіть якщо це по суті лише використання sh, я думаю, вам потрібно точно вказати, що ви вважаєте різними мовами. Наприклад, Perl 4 проти Perl 5.10 мають деякі суттєві відмінності.
Пітер Тейлор

7
Є мови (наприклад, Whitespace, BrainF ** k та Perl), де практично будь-яка комбінація символів є дійсною програмою. На них може претендувати будь-яка програма.
ugoren

Відповіді:


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 час від часу в веб-базі реалізації, на жаль, ви повинні використовувати інший інтерпретатор Treehugger.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.