Quel code compile dans le plus grand nombre de langues? [fermé]


29

À l'exception des programmes triviaux, quel code compile dans le plus grand nombre de langues?

(Par «trivial», j'entends exclure des réponses telles que le programme vide ou le texte qui seront répercutés directement.)

Le code suivant compile apparemment dans tous les langages de programmation suivants (et imprime quelque chose de différent dans chacun): C, C ++, Perl, TeX, LaTeX, PostScript, sh, bash, zsh et 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%*/

C'est 10 langues différentes. Je l'ai trouvé via pts oldalai (qui a aussi un magnifique poème de Noël écrit en C, C ++, Perl et TeX). Quelqu'un peut-il faire mieux?


8
Le terme technique étant Polyglot
st0le


7
Si sh, bash et zsh comptent comme des langues différentes même si elles n'utilisent essentiellement que sh, je pense que vous devez spécifier précisément ce que vous comptez comme langues différentes. Par exemple, Perl 4 et Perl 5.10 présentent des différences importantes.
Peter Taylor

7
Il existe des langages (par exemple Whitespace, BrainF ** k et Perl), où pratiquement n'importe quelle combinaison de caractères est un programme valide. Ils peuvent être réclamés par n'importe quel programme.
ugoren

Réponses:


9

3 langages - C, C ++ et 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()

Quelque chose de différent est imprimé dans chaque langue. En C & C ++, les lignes commençant par '#' sont des directives de prétraitement, mais ces mêmes lignes sont des commentaires en Python.


4

5 langues - Thue, Brainf ***, Boolf ***, Treehugger et Javascript

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

Notez que la partie Treehugger expire malheureusement dans l'implémentation Web, vous devez donc utiliser un interpréteur Treehugger différent.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.