Construisez un polyglotte pour Hello World


15

Produisez un fichier texte qui imprime "Bonjour tout le monde!" dans autant de langages de programmation que possible lors de la compilation / interprétation, tout en étant aussi court que possible.

Le score de votre soumission est calculé comme C / 2 ^ ((L - 1) / 4)suit: «C» est la longueur du fichier texte en caractères et «L» est le nombre de langues dans lesquelles le programme est valide. Le score le plus bas gagne, bien sûr.


1
Cette question est similaire à cette autre , mais dans ce cas, vous pouvez partager "Hello World" entre certaines langues si vous le souhaitez.
Joe Z.

Doit-il s'agir d'un programme entier ou simplement d'une commande valide?
ASCIIThenANSI

Réponses:


20
print("Hello World!")

Fonctionne au moins sur Julia, Perl, PHP, Python2, Python3, Qbasic, R, Ruby ...


1
Il fonctionne également en R et Julia (et sûrement dans de nombreuses autres langues).
Sven Hohenstein

2
@jdstankosky, ce code exact ne fonctionne pas en PHP. pastebin.com/9x6HactK
manatwork

1
Sorte de forcer les limites, mais nous pouvons dire que cela fonctionne aussi en JavaScript, car certains interpréteurs de ligne de commande fournissent une print()fonction pour la sortie. pastebin.com/6fXtgFER
manatwork

2
fonctionne aussi à lua
mniip

1
@gnibbler, ne fonctionne pas en PHP sans les balises d'ouverture.
Tyzoid

12

JavaScript ES6, Oration , Vitsy , Minkolang score = 71,94703045766462

121 / 2^(3/4). Fait amusant? Je n'essaye pas de gagner, juste d'ajouter autant de langues que possible.

222 //X>"!dlroW olleH"Z 
shush=0
alert("Hello World!")
sorry=`
listen
capture Hello World!`
$$$
=` >###      .O$r"!"rXr<`

Ce que Vitsy voit

"Eh bien, je suis une langue 1D, donc ... pour l'instant, seule la première ligne compte."

222 //X>"!dlroW ,olleH"Z
222                      push three twos
    //                   divide twice
      X>                 drop the result and carry on
        "!dlroW ,olleH"Z standard Hello, World! program

Merci pour le cookie, Vitsy: 3

Ce que JavaScript ES6 voit

222 //X>"!dlroW ,olleH"Z

"Voyons voir ... Tu as mis le numéro 222et ensuite mis quelque chose dans un commentaire. D'accord, bien sûr, je vais rouler avec ça."

shush=0

"Vous avez fait une variable. Noté."

alert("Hello, World!")

"Ah, je vois où tu vas avec ça. Je vais montrer ça."

sorry=`
listen
capture Hello, World!`

"Oo! Une chaîne multiligne! Maintenant, nous parlons, ES6 rulez, ES5 bave!"

(EOF)

"Eh bien, j'ai fini. Paix."

Ce que voit Oration

222 //X>"!dlroW ,olleH"Z

"Ce n'était pas sur mes notes ...! Il vaut mieux ne rien faire."

shush=0
alert("Hello, World!")
sorry=`

"Oh, voici quelques notes supplémentaires."

listen

"Ecoutez..."

capture Hello, World!`

"...Bonjour le monde!"

(EOF)

" Ne pense plus! Génial, j'ai fini ici. respire profondément "

Explication de Minkolang

(Trop paresseux pour créer un récit. Peut-être plus tard, le code a pris un certain temps.) Code non pertinent remplacé par #ou omis. Aussi, ajout de commentaires C ... C.

222 ###>"!dlroW olleH"# 
$$$  C this separates layers C
###>### #####.O$r"!"rXr<`

Couche 1, pt 1

222 ###>"!dlroW olleH"# 
222                      C push three 2s C
   _                     C space; fall to the next layer C

Couche 2, pt 1

###>### #####.O$r"!"rXr<`
   >                       C go this way C
       _                   C fall to the next (first) layer C

Couche 1, pt 2

222 ###>"!dlroW olleH"# 
       >"!dlroW olleH"   C go right and push those characters in that order C
                       _ C fall to the next layer C

Couche 2, pt 2

###>### #####.O$r"!"rXr<`
                       <  C starts here, going left C
                      r   C reverse stack C
                     X    C pop n (n = 2), and pop top n items on stack (2, 2) C
                    r     C reverse stack C
                 "!"      C push exclamation mark (for some reason, it's chopped off C
                r         C reverse stack C
              $O          C output stack as characters C
             .            C terminate program C

4
Mon enfant est fier de votre soumission. Ici. Ayez un cookie. +1
Addison Crump

8

Score de 0,84

H

Fonctionne en H9 + et HQ9 +.

1/2 ^ ((2 - 1) / 4) = 0,84


1
Vous avez oublié: HQ9 ++, HI9 +, FISHQ9 +, CHIQRSX9 +.
user75200

@ user75200 Je suppose que ceux-ci n'étaient pas aussi populaires en 2013
Timtech

7
'Hello World!'

Fonctionne dans plusieurs langages de script, dont PHP, GolfScript, APL, ...


Aussi AppleScript et Javascript :)
tomsmeding

Javascript ne comprendra-t-il pas les citations?
Joe Z.22

Cela fonctionne également dans PowerShell.
Iszi

1
Fonctionne dans tous les dérivés de H9 + à l'exception de FISHQ9 + aussi
Tornado547

1

CoffeeScript et CJam, 46/2 ^ ((2-1) / 4) = 38,68

e###
"Hello, World!"
e###alert "Hello, World!"

1

ES8, Japt, TeaScript, C #, C ++, C, ESMin, score: ~ 8,8

main=_=>"Hello World!"();

ES8, TeaScript et Japt voir "Hello World!".


Cela ne fonctionnera pas dans Hello en raison de caractères supplémentaires.
user75200

Je suis à peu près sûr que beaucoup d'entre eux (HQ9, Hello et variantes) ne comptent pas car ce ne sont pas de "vrais" langages de programmation.
KSmarts

Oui ils sont. Ce sont de vraies langues. Mais ils peuvent ou non fonctionner. Et Hello ++ supprime les caractères non h. Hello ++++ supprime tous ceux qui ne font pas partie de "Hello world!"
user75200

Selon les normes PPCG, ce n'est pas le cas .
KSmarts

Et il n'y a pas de HQ9.
user75200

1

Madbrain et [insérer ici la plupart des dérivés BF], 272 227 octets

Publier juste pour le plaisir, pas pour gagner c:

956658555658
852224222254
************
c4993c839941
1****1**+**+
01cc70776ccc
g+11+g++*11
 c003 c3c00
 1gg* 1*1gg
 0  c 0c0
 g  1 g1g
    0  0
    g  g[-]+[-->-[>>+>-----<<]<--<---]>-.>>>+.>>..+++.>>.>.<<<.+++.------.<<-.>>>>+.

REMARQUE: Il n'y a pas de TIO pour Madbrain, vous devrez donc me faire confiance sur celui-ci. J'ai cependant écrit un interprète (certes pas très bien écrit (mais bon, au moins ça marche!)) Pour Madbrain, qui est sur le wiki d'esolangs.

Explication

Madbrain voit: (J'ai écrit ce code c :)

956658555658
852224222254
************
c4993c839941
1****1**+**+
01cc70776ccc
g+11+g++*11
 c003 c3c00
 1gg* 1*1gg
 0  c 0c0
 g  1 g1g
    0  0
    g  g

J'avoue, Madbrain atteint le code BF, mais il ne fait rien, donc je ne l'ai pas inclus ici.

Brainfuck (et beaucoup de dérivés BF) voit:

++++++[-]+[-->-[>>+>-----<<]<--<---]>-.>>>+.>>..+++.>>.>.<<<.+++.------.<<-.>>>>+.

BF ignore tout ce qui ne l'est pas ><+-.,[], il ignore donc la plupart du code Madbrain. Cependant, il y a quelques +s dans le code Madbrain (c'est ce que ++++++c'est), vous devez donc ajouter[-] après celui qui définit la cellule actuelle à 0.

Le code après ++++++[-]est le code d'impression Hello World!.


0

TI-BASIC et Pyth, 13/2 ^ ((2-1) / 4) = 10,93

"Hello World!

Remarque: Réponse non concurrente, car Pyth a été créé après la publication de ce défi


Fonctionne également dans ESMin, Japt, Teascript, O, etc.
Mama Fun Roll

N'hésitez pas à écrire dans la langue de votre choix, peu importe quand elle a été faite.
user75200
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.