Qual código compila no maior número de idiomas? [fechadas]

29

Excluindo programas triviais, qual código compila no maior número de idiomas?

(Por "trivial", pretendo excluir respostas como o programa ou texto vazio que será repetido diretamente.)

O código a seguir aparentemente compila em todas as seguintes linguagens de programação (e imprime algo diferente em cada uma): C, C ++, Perl, TeX, LaTeX, PostScript, sh, bash, zsh e 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%*/

São 10 idiomas diferentes. Encontrei-o via pts oldalai (que também tem um magnífico poema de Natal escrito em C, C ++, Perl e TeX). Alguém pode fazer melhor?

shamp00
fonte
8
O termo técnico sendo Polyglot
st0le
8
Aqui está o poliglota
st0le
7
Se sh, bash e zsh contam como idiomas diferentes, mesmo quando é essencialmente apenas o uso de sh, acho que você precisa especificar com precisão o que conta como idiomas diferentes. Por exemplo, Perl 4 vs Perl 5.10 têm algumas diferenças significativas.
Peter Taylor
7
Existem idiomas (por exemplo, espaço em branco, BrainF ** k e Perl), onde praticamente qualquer combinação de caracteres é um programa válido. Eles podem ser reivindicados por qualquer programa.
Ugoren

Respostas:

9

3 idiomas - C, C ++ e 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 é impresso em cada idioma. No C & C ++, as linhas que começam com '#' são diretivas de pré-processamento, mas essas mesmas linhas são comentários no Python.

golfer9338
fonte
4

5 idiomas - Thue, Brainf ***, Boolf ***, Treehugger e Javascript

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

Observe que a parte do Treehugger atinge o tempo limite na implementação baseada na Web, infelizmente, portanto, você deve usar um intérprete do Treehugger diferente.

SuperJedi224
fonte