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.