¿Qué código compila en la mayor cantidad de idiomas? [cerrado]

29

Excluyendo programas triviales, ¿qué código compila en la mayor cantidad de idiomas?

(Con "trivial" me refiero a excluir respuestas como el programa vacío o el texto que se repetirá directamente).

El siguiente código aparentemente se compila en todos los siguientes lenguajes de programación (e imprime algo diferente en cada uno): C, C ++, Perl, TeX, LaTeX, PostScript, sh, bash, zsh y 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%*/

Eso son 10 idiomas diferentes. Lo encontré a través de pts oldalai (que también tiene un magnífico poema de Navidad escrito en C, C ++, Perl y TeX). ¿Alguien puede hacerlo mejor?

shamp00
fuente
8
El término técnico es Polyglot
st0le
8
Aquí hay 16 idiomas políglotas
st0le
77
Si sh, bash y zsh cuentan como idiomas diferentes, incluso cuando esencialmente solo usan sh, entonces creo que debe especificar con precisión qué cuenta como idiomas diferentes. Por ejemplo, Perl 4 vs Perl 5.10 tienen algunas diferencias significativas.
Peter Taylor
77
Hay idiomas (por ejemplo, espacios en blanco, BrainF ** k y Perl), donde casi cualquier combinación de caracteres es un programa válido. Pueden ser reclamados por cualquier programa.
Ugoren

Respuestas:

9

3 lenguajes: C, C ++ y 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()

Algo diferente se imprime en cada idioma. En C y C ++, las líneas que comienzan con '#' son directivas de preprocesamiento, pero esas mismas líneas son comentarios en Python.

golfista9338
fuente
4

5 idiomas: Thue, Brainf ***, Boolf ***, Treehugger y Javascript

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

Tenga en cuenta que la parte Treehugger se agota en la implementación basada en la web, desafortunadamente, por lo que debe usar un intérprete Treehugger diferente.

SuperJedi224
fuente