Zbuduj poliglotę dla Hello World


15

Utwórz plik tekstowy, który wydrukuje „Hello World!” w jak największej liczbie języków programowania podczas kompilacji / interpretacji, przy jednoczesnym możliwie najkrótszym czasie.

Wynik przesłania jest obliczany jako C / 2 ^ ((L - 1) / 4): gdzie „C” oznacza długość pliku tekstowego w znakach, a „L” oznacza liczbę języków, w których program jest ważny. Oczywiście wygrywa najniższy wynik.


1
To pytanie jest podobne do tego drugiego , ale w tym przypadku możesz udostępnić „Hello World” w niektórych językach, jeśli chcesz.
Joe Z.

Czy to musi być cały program, czy tylko prawidłowe polecenie?
ASCIIThenANSI

Odpowiedzi:


20
print("Hello World!")

Działa przynajmniej w Julii, Perlu, PHP, Python2, Python3, Qbasic, R, Ruby ...


1
Działa również w języku R i Julii (i na pewno w wielu innych językach).
Sven Hohenstein,

2
@jdstankosky, ten dokładny kod nie działa w PHP. pastebin.com/9x6HactK
manatwork

1
Coś w rodzaju wymuszania limitów, ale możemy powiedzieć, że działa również w JavaScript, ponieważ niektóre interpretery wiersza poleceń zapewniają print()funkcję wyjścia. pastebin.com/6fXtgFER
manatwork

2
działa również w lua
mniip

1
@gnibbler, nie działa w PHP bez tagów otwierających.
Tyzoid

12

JavaScript ES6, Mowa , Vitsy , Minkolang wynik = +71,94703045766462

121 / 2^(3/4). Śmieszny fakt? Nie próbuję wygrywać, tylko dodać tyle języków, ile to możliwe.

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

Co widzi Vitsy

„Cóż, jestem językiem 1D, więc ... na razie liczy się tylko pierwsza linia.”

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

Dzięki za ciasteczko, Vitsy: 3

Co widzi JavaScript ES6

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

„Zobaczmy ... Umieścisz numer, 222a następnie umieścisz coś w komentarzu. W porządku, jasne, rzucę się tym.”

shush=0

„Zrobiłeś zmienną. Zauważył.”

alert("Hello, World!")

„Ach, rozumiem do czego zmierzasz. Pokażę to.”

sorry=`
listen
capture Hello, World!`

„Oo! Ciąg wielowierszowy! Teraz rozmawiamy, ES6 rulz, ES5 ślini się!”

(EOF)

„Cóż, skończyłem. Pokój na zewnątrz”.

Co widzi Oration

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

„Nie było tego w moich notatkach ...! Najlepiej nic nie rób.”

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

„Och, oto kilka dodatkowych notatek”.

listen

"Słuchać..."

capture Hello, World!`

"...Witaj świecie!"

(EOF)

myśli nic więcej! Świetnie, skończyłem tutaj. oddycha głęboko

Wyjaśnienie Minkolanga

(Zbyt leniwy, aby tworzyć narrację. Być może zrobi to później, kod zajął chwilę.) Nieistotny kod został zastąpiony #lub pominięty. Dodano także komentarze C ... C.

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

Warstwa 1, pkt 1

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

Warstwa 2, pkt 1

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

Warstwa 1, pkt 2

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

Warstwa 2, pkt 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
Moje dziecko jest dumne z twojego poddania się. Tutaj. Masz ciasteczko. +1
Addison Crump

8

Wynik 0,84

H

Działa w H9 + i HQ9 +.

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


1
Zapomniałeś: HQ9 ++, HI9 +, FISHQ9 +, CHIQRSX9 +.
user75200

@ user75200 Zgaduję, że nie były tak popularne w 2013 roku
Timtech

7
'Hello World!'

Działa w kilku językach skryptowych, w tym PHP, GolfScript, APL, ...


Również AppleScript i JavaScript :)
tomsmeding

Czy Javascript nie zawiera cytatów?
Joe Z.

Działa to również w PowerShell.
Iszi

1
Działa we wszystkich pochodnych H9 + oprócz FISHQ9 +
Tornado547


1

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

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

ES8, TeaScript i Japt patrz "Hello World!".


Nie będzie działać w Hello z powodu dodatkowych postaci.
user75200,

Jestem pewien, że wiele z nich (HQ9, Hello i warianty) się nie liczą, ponieważ nie są to „prawdziwe” języki programowania.
KSmarts,

Tak oni są. To są prawdziwe języki. Ale mogą, ale nie muszą, działać. A Hello ++ odrzuca znaki inne niż h. Hello ++++ odrzuca wszystkie elementy, które nie są częścią „Hello world!”
user75200,

Zgodnie ze standardami PPCG nie są .
KSmarts,

I nie ma HQ9.
user75200,

1

Madbrain i [wstaw tutaj większość pochodnych BF], 272 227 bajtów

Po prostu publikuję dla zabawy, aby nie wygrać 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[-]+[-->-[>>+>-----<<]<--<---]>-.>>>+.>>..+++.>>.>.<<<.+++.------.<<-.>>>>+.

UWAGA: Nie ma TIO dla Madbrain, więc musisz mi zaufać w tej sprawie. Napisałem jednak (co prawda niezbyt dobrze napisany (ale hej, przynajmniej działa!)) Tłumacz dla Madbrain, który znajduje się na wiki esolangs.

Wyjaśnienie

Madbrain widzi: (napisałem ten kod 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

Przyznaję, Madbrain dociera do kodu BF, ale nic nie robi, więc go tu nie uwzględniłem.

Brainfuck (i wiele pochodnych BF) widzi:

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

BF ignoruje wszystko, co nie jest ><+-.,[], więc ignoruje większość kodu Madbrain. Jednak +w kodzie Madbrain jest kilka liter (to jest to, co ++++++jest), więc musisz to dodać[-] po tym, co ustawia bieżącą komórkę na 0.

Kod po ++++++[-]jest kodem do drukowania Hello World!.


0

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

"Hello World!

Uwaga: odpowiedź niekonkurencyjna, ponieważ Pyth został utworzony po opublikowaniu tego wyzwania


Działa również w ESMin, Japt, Teascript, O itp.
Mama Fun Roll

Pisz w dowolnym języku, nie ma znaczenia, kiedy został napisany.
user75200
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.