Xây dựng một polyglot cho Hello World


15

Tạo một tệp văn bản in "Hello World!" trong càng nhiều ngôn ngữ lập trình càng tốt khi được biên dịch / giải thích, đồng thời càng ngắn càng tốt.

Điểm cho bài nộp của bạn được tính như sau C / 2 ^ ((L - 1) / 4), trong đó "C" là độ dài của tệp văn bản tính theo ký tự và "L" là số ngôn ngữ mà chương trình hợp lệ. Tất nhiên, điểm thấp nhất sẽ thắng.


1
Câu hỏi này tương tự câu hỏi này , nhưng trong trường hợp này, bạn có thể chia sẻ "Hello World" giữa một số ngôn ngữ nếu bạn muốn.
Joe Z.

Nó có phải là toàn bộ chương trình hay chỉ là một lệnh hợp lệ?
ASCIIThenANSI 17/05/2015

Câu trả lời:


20
print("Hello World!")

Hoạt động trong ít nhất Julia, Perl, PHP, Python2, Python3, Qbasic, R, Ruby ...


1
Nó cũng hoạt động trong R và Julia (và chắc chắn trong nhiều ngôn ngữ khác).
Sven Hohenstein

2
@jdstankosky, mã chính xác đó không hoạt động trong PHP. pastebin.com/9x6HactK
manatwork

1
Loại buộc các giới hạn, nhưng chúng ta có thể nói nó cũng hoạt động trong JavaScript, vì một số trình thông dịch dòng lệnh cung cấp print()chức năng cho đầu ra. pastebin.com/6fXtgFER
manatwork

2
cũng hoạt động ở lua
mniip 31/12/13

1
@gnibbler, không hoạt động trong PHP mà không có các thẻ mở.
Tyzoid

12

Điểm số ES6, Oration , Vitsy , Minkolang = 71.94703045766462

121 / 2^(3/4). Sự thật thú vị? Tôi không cố gắng để giành chiến thắng, chỉ để thêm càng nhiều ngôn ngữ càng tốt.

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

Những gì Vitsy nhìn thấy

"Chà, tôi là ngôn ngữ 1D, vì vậy ... hiện tại, chỉ có dòng đầu tiên được tính."

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

Cảm ơn cookie, Vitsy: 3

Những gì JavaScript ES6 nhìn thấy

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

"Hãy xem ... Bạn đặt số 222và sau đó đưa ra một nhận xét. Được rồi, chắc chắn, tôi sẽ lăn với nó."

shush=0

"Bạn đã thực hiện một biến. Lưu ý."

alert("Hello, World!")

"Ah, tôi thấy bạn đang đi đâu với điều này. Tôi sẽ hiển thị nó."

sorry=`
listen
capture Hello, World!`

"Oo! Một chuỗi nhiều dòng! Bây giờ chúng ta đang nói, ES6 rulez, ES5 drools!"

(EOF)

"Chà, tôi xong rồi. Yên tâm đi."

Những gì Oration nhìn thấy

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

"Đây không phải là ghi chú của tôi ...! Tốt nhất đừng làm gì cả."

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

"Ồ, đây là một số ghi chú thêm."

listen

"Nghe..."

capture Hello, World!`

"...Chào thế giới!"

(EOF)

"không nghĩ gì thêm! Tuyệt vời, tôi đã xong việc ở đây. hít thở sâu "

Giải thích về chồn

(Quá lười để tạo tường thuật. Có thể làm sau, mã mất một lúc.) Mã không liên quan được thay thế bằng #hoặc bỏ qua. Ngoài ra, thêm ý kiến C ... C.

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

Lớp 1, pt 1

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

Lớp 2, pt 1

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

Lớp 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

Lớp 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
Con tôi tự hào về sự phục tùng của bạn. Đây. Có một cái bánh quy. +1
Addison Crump

8

Điểm 0,84

H

Hoạt động trong H9 + và HQ9 +.

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


1
Bạn đã quên: HQ9 ++, HI9 +, FISHQ9 +, CHIQRSX9 +.
dùng75200

@ user75200 Tôi đoán những người không phổ biến trở lại vào năm 2013
Timtech

7
'Hello World!'

Chạy bằng nhiều ngôn ngữ script, bao gồm PHP, GolfScript, APL, ...


Ngoài ra AppleScript và Javascript :)
tomsmeding

Javascript không bao gồm các trích dẫn?
Joe Z.

Điều này cũng hoạt động trong PowerShell.
Iszi

1
Hoạt động trong tất cả các dẫn xuất của H9 + ngoại trừ FISHQ9 +
Tornado547


1

ES8, Japt, TeaScript, C #, C ++, C, ESMin, điểm: ~ 8,8

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

ES8, TeaScript và Japt xem "Hello World!".


Nó sẽ không hoạt động trong Hello do có thêm nhân vật.
dùng75200

Tôi khá chắc chắn rất nhiều trong số này (HQ9, Hello và các biến thể) không được tính vì chúng không phải là ngôn ngữ lập trình "thực".
KSmarts

Vâng là họ. Chúng là ngôn ngữ thực sự. Nhưng họ có thể hoặc không thể làm việc. Và Hello ++ loại bỏ các ký tự không phải h. Xin chào ++++ loại bỏ tất cả không phải là một phần của "Xin chào thế giới!"
dùng75200

Theo tiêu chuẩn PPCG, họ không .
KSmarts

Và không có HQ9.
dùng75200

1

Madbrain và [chèn hầu hết các dẫn xuất BF tại đây], 272 227 byte

Chỉ đăng bài cho vui chứ không phải để giành 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[-]+[-->-[>>+>-----<<]<--<---]>-.>>>+.>>..+++.>>.>.<<<.+++.------.<<-.>>>>+.

LƯU Ý: Không có TIO cho Madbrain, vì vậy bạn sẽ phải tin tưởng tôi về điều này. Tuy nhiên, tôi đã viết một trình thông dịch (được thừa nhận là không thực sự được viết tốt (nhưng này, ít nhất là nó hoạt động!)) Cho Madbrain, trên wiki esolang.

Giải trình

Madbrain thấy: (Tôi đã viết mã này 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

Tôi thừa nhận, Madbrain đạt được mã BF, nhưng nó không làm gì cả, vì vậy tôi đã không đưa nó vào đây.

Brainfuck (và rất nhiều dẫn xuất BF) thấy:

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

BF bỏ qua mọi thứ không phải là ><+-.,[] , vì vậy nó bỏ qua hầu hết mã Madbrain. Tuy nhiên, có một số +s trong mã Madbrain (đó là cái gì ++++++), vì vậy bạn cần thêm [-]vào sau đó đặt ô hiện tại thành 0.

Mã sau ++++++[-] là mã để in Hello World!.


0

TI-BASIC và Pyth, 13/2 ^ ((2-1) / 4) = 10.93

"Hello World!

Lưu ý: Câu trả lời không cạnh tranh, vì Pyth đã được tạo sau khi thử thách này được đăng


Cũng hoạt động trong ESMin, Japt, Teascript, O, v.v.
Mama Fun Roll

Hãy viết bằng bất kỳ ngôn ngữ nào bạn muốn, nó không quan trọng khi nó được tạo ra.
dùng75200
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.