¿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?


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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.