多言語のHello World


72

仕事

複数のプログラミング言語で有効なプログラムまたは関数を作成し、異なる言語としてコンパイル/解釈すると、「Hello、World!」と出力されます。別の自然言語で。

たとえば、有効なソリューションはHello World!、コンパイルしてCとして実行すると(英語)、Hallo Welt!C ++としてコンパイルして実行すると(ドイツ語)、你好世界!Pythonとして実行すると(中国語)を出力します。

ルール

回答の有効性に関するあいまいさを避けるために、いくつかの言語で使用できるフレーズのバージョンのリストを以下に示します。このリストは、Google Translateがコミュニティで検証したフレーズの翻訳を持っている言語のフレーズで構成されています(この記事の執筆時点)。

これらの翻訳の正確性については議論の余地がありますが、この課題で使用されるものです。印刷される文字列は、以下の形式に正確に従う必要があります(先頭または末尾の空白を除く)。

Afrikaans:    Hello Wêreld!
Albanian:     Përshendetje Botë!
Amharic:      ሰላም ልዑል!
Arabic:       مرحبا بالعالم!
Armenian:     Բարեւ աշխարհ!
Basque:       Kaixo Mundua!
Belarussian:  Прывітанне Сусвет!
Bengali:      ওহে বিশ্ব!
Bulgarian:    Здравей свят!
Catalan:      Hola món!
Chichewa:     Moni Dziko Lapansi!
Chinese:      你好世界!
Croatian:     Pozdrav svijete!
Czech:        Ahoj světe!
Danish:       Hej Verden!
Dutch:        Hallo Wereld!
English:      Hello World!
Estonian:     Tere maailm!
Finnish:      Hei maailma!
French:       Bonjour monde!
Frisian:      Hallo wrâld!
Georgian:     გამარჯობა მსოფლიო!
German:       Hallo Welt!
Greek:        Γειά σου Κόσμε!
Hausa:        Sannu Duniya!
Hebrew:       שלום עולם!
Hindi:        नमस्ते दुनिया!
Hungarian:    Helló Világ!
Icelandic:    Halló heimur!
Igbo:         Ndewo Ụwa!
Indonesian:   Halo Dunia!
Italian:      Ciao mondo!
Japanese:     こんにちは世界!
Kazakh:       Сәлем Әлем!
Khmer:        សួស្តី​ពិភពលោក!
Kyrgyz:       Салам дүйнө!
Lao:          ສະ​ບາຍ​ດີ​ຊາວ​ໂລກ!
Latvian:      Sveika pasaule!
Lithuanian:   Labas pasauli!
Luxemburgish: Moien Welt!
Macedonian:   Здраво свету!
Malay:        Hai dunia!
Malayalam:    ഹലോ വേൾഡ്!
Mongolian:    Сайн уу дэлхий!
Myanmar:      မင်္ဂလာပါကမ္ဘာလောက!
Nepali:       नमस्कार संसार!
Norwegian:    Hei Verden!
Pashto:       سلام نړی!
Persian:      سلام دنیا!
Polish:       Witaj świecie!
Portuguese:   Olá Mundo!
Punjabi:      ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ ਦੁਨਿਆ!
Romanian:     Salut Lume!
Russian:      Привет мир!
Scots Gaelic: Hàlo a Shaoghail!
Serbian:      Здраво Свете!
Sesotho:      Lefatše Lumela!
Sinhala:      හෙලෝ වර්ල්ඩ්!
Slovenian:    Pozdravljen svet!
Spanish:      ¡Hola Mundo!         // Leading '¡' optional
Sundanese:    Halo Dunya!
Swahili:      Salamu Dunia!
Swedish:      Hej världen!
Tajik:        Салом Ҷаҳон!
Thai:         สวัสดีชาวโลก!
Turkish:      Selam Dünya!
Ukrainian:    Привіт Світ!
Uzbek:        Salom Dunyo!
Vietnamese:   Chào thế giới!
Welsh:        Helo Byd!
Xhosa:        Molo Lizwe!
Yiddish:      העלא וועלט!
Yoruba:       Mo ki O Ile Aiye!
Zulu:         Sawubona Mhlaba!

したがって、使用できる言語は74個あります。

受賞基準

最大数の言語でフレーズを出力できるソリューションが勝ちです。同点の場合、短い方のソリューション(バイト単位)が優先されます。


*マダガスカル語とマルタ語の翻訳はコミュニティで検証済みとマークされましたが、明らかに間違っていました(1つは「Hello World!」、もう1つは「Hello dinja!」でしたが、「Hello!」だけが「Bongu!」に翻訳されました)。これらは除外されました。また、一部の言語(アラビア語、ヘブライ語、パシュトウ語、ペルシャ語、イディッシュ語)はGoogle翻訳で右から左に読みますが、ここでコピーすると左から右に読みます。大丈夫だと思います。


使用されているプログラミング言語で使用されていないバイトをカウントする一貫した方法を使用できますか?
ザカリー

@Zacharý回答に使用されているすべての文字を表現する単一のエンコーディングを使用して、バイトをカウントできると思います。または、バイトは回答ごとにUTF-8でカウントする必要がありますか?
Steadybox

1
他のすべてと異なるエンコードを使用する言語がある場合、コードをその言語のコードページに変換するか、同じバイト表現を使用する必要がありますか?(バイトの一部が不正なUTF-8になるため難しい)
-NieDzejkob

2
@NieDzejkobポリグロットのルールには、測定可能なバイトサイズのファイルが1つあり、複数のインタープリター/コンパイラーで実行できると思います。(
-user202729

4
中国語と日本語の感嘆符(、U + FF01)は他の感嘆符(、U + 0021)とは異なることに注意してください!
-alephalpha

回答:


32

23 Befunges、713バイト

私が本当に知っている唯一の言語はBefungeなので、複数の言語の代わりに、Befungeの複数の実装を試しました。これはPPCGルールの下でまだ有効であると信じています。PPCGルールでは、その実装によって言語が定義されると見なさます。

8023/# !-1401p680p88+79*6+1p238*7+0pg90p$#v0';1';+>9%80p$$$$"ph~s"+3vv
vv_2#!>#-/\#21#:+#:>#\<0/-2*3`0:-/2g01g00p>#< 2#0 ^#1/4*:*9"9"p00***<<
>>$:2%3*-4/3g68*-70p1-0`02-3/-03-2%1+2/-70g+80g65+70g`7++3g68*-70g9`*v
0168:0>0133?45130120340200v00:<+8*+76%4p00+5/4:+-*86g3++98/2%+98g09+<<
                         @>gg#^:#+,#$"!"-#1_@
       !Helo Byd!!!!!Hai dunia!!!!Ciao mondo!!!Hallo Wereld!!!!
       !Hallo Welt!!!Halo Dunia!!!Halo Dunya!!!Bonjour monde!!!
       !Hei Verden!!!Hej Verden!!!Moien Welt!!!Labas pasauli!!!
       !Molo Lizwe!!!Salut Lume!!!Hei maailma!!Sveika pasaule!!
       !Hello World!!Salom Dunyo!!Tere maailm!!Sawubona Mhlaba!
       !Kaixo Mundua!Salamu Dunia!Sannu Duniya!!!!!!!!!!!!!!!!!

Befungeのイライラすることは、オープンソースのリファレンス実装があり、言語自体は非常にシンプルですが、リファレンス動作に正確に一致するサードパーティのインタプリタ(私が知っている)が1つもないことです。すべての実装は異なる方法で失敗します。

プラス面として、これにより、ほとんどすべてのインタープリターで異なる結果を生成する単一のコードを開発する機会が得られます。それが上記のプログラムで私が試みていることです。

誰かが結果を検証することに興味があるなら、私はさまざまな実装を簡単に立ち上げて実行できるかどうかに基づいてカテゴリにグループ化しようとしました(たとえば、Windowsバイナリを実行できない人や、ソースからビルドしますが、誰でもオンライン通訳をテストできる必要があります)。

オンライン通訳

インストールは必要ありません。通常は、コードを貼り付けてボタンをクリックするだけです。ただし、これらのいくつかは非常に遅いため、実行を完了するには時間が必要な場合があります。

アレクシオスBefunge遊び場 - Salamuドゥニア!

Clear...ボタンをクリックして、コードを入力フィールドに貼り付けます。Editスイッチを切り替えてインタープリターをアクティブにし、Runボタンをクリックして実行を開始します。
このサイトは、おそらくChrome以外のブラウザでは動作しないことに注意してください。

Befungius - Molo Lizwe!

入力フィールドにコードを貼り付け、既存のコードを必ず上書きします。次に、Runボタンをクリックして実行します。

デビッドKlickさんBefunge 93通訳 - Sannu Duniya!

Playfield入力フィールドにコードを貼り付け、Runボタンをクリックして実行を開始します。

イアン・オスグッドのBefunge-93通訳 - SalutのLUME!

Showボタンの下の入力フィールドにコードを貼り付け、@既にあるコードを必ず上書きします。Showボタンをクリックしてコードをインポートし、ボタンをクリックしてRun実行を開始します。

jsFunge IDE - Hej Verden!

最初に[ ヘルプ ]ダイアログを閉じ、次に[ 開く/インポート ]ツールバーボタン(左から2番目)をクリックし、コードを貼り付けて、をクリックしますOK。実行するには、[ 実行モード ]ボタン(左から4番目)、[開始](左から5番目)の順にクリックします

また、コンソールベースのインタープリターのいくつかは実際にTIOで利用できるため、技術的にはオンラインインタープリターではありませんが、オンラインでテストできます。サポートされているもの(現在はBEF、FBBI、MTFI、PyFunge)には、Try It Onlineを含めましたエントリの横のリンク。

Java IDE

これらにはJavaランタイムをインストールする必要がありますが、理論的にはどのプラットフォームでも動作するはずです。ただし、Windowsでのみテストされています。

アシュリーMillsのビジュアルBefungeアプレット - Moienウェルト!

これは最初はオンラインアプレットでしたが、残念ながら使用できなくなりましたが、jarをダウンロードしてデスクトップアプリケーションとしてローカルで実行できます。プログラムエディターウィンドウにコードを貼り付けてから、Convertボタンをクリックしてからボタンをクリックする必要がありRunます。

ワサビ:わさびの素晴らしいアシニンベファンジュインタープリター -ハロウェルト

コードを貼り付けるには、エディターウィンドウの左上隅を右クリックし(一番左でなければなりません)、[ 貼り付け ]メニュー項目を選択します。次に、[ フルスピード]チェックボックスをオンにします(それ以外の場合は永遠にかかります)Run!。ボタンをクリックして実行を開始します。

YABI93:もう一つのBefunge93通訳 -ヘイロードゥニア!

Ctrl+ ACtrl+ Vを押して、エディタウィンドウにコードを貼り付けます。必ずデフォルトのソースを上書きしてください。次に、Startボタンをクリックして実行を開始します。

Windows IDE

通常、これらにはWindowsが必要になりますが、場合によっては、他のオペレーティングシステムで使用可能なバイナリが存在することもあります。ただし、コードが他のプラットフォームで動作することを約束することはできません。

BefunExec - Hello World!

コードをエディターに貼り付けることはできないため、最初にディスクのどこかに保存する必要があります。次に、IDEから[ファイル ] > [開く ]メニューを使用してディスクからコードをロードし、[ シミュレーション]> [実行/一時停止 ]メニューを選択して実行します。

BeQunge -のLABAのpasauli!

Ctrl+ Vを押してコードを貼り付け、[ デバッグ ] ツールバーボタン(青い歯車)をクリックして実行を開始します。デバッガーパネルが表示されたら、速度を最大(スライダーの右側にあるボタン)に設定します。そうしないと、完了するまでに時間がかかります。

菌類 -テレメイルム!

Ctrl+ Vを押してコードを貼り付け、次にを押しF5て実行します。

Visbef:WindowsのVisual Befunge '93 -ハローWereld!

コードをエディターに貼り付けることはできないため、最初にディスクのどこかに保存する必要があります。次に、IDEからCtrl+ Oを押してファイルブラウザを開き、ディスクからコードをロードし、を押しF5て実行します。

Windowsコンソールアプリ

繰り返しますが、これらは通常Windowsを必要としますが、他のプラットフォームも利用できますが、動作が保証されるわけではありません。

すべての場合において、コードをディスク上のファイルに保存し、ファイル名をコマンドラインパラメーターとしてインタープリターに渡す必要があります(以下のコマンドライン例のsource.bf)。また、これらの一部は技術的にはBefunge-98インタープリターであり、Befunge-93互換モードを強制するには特定のコマンドラインオプションで実行する必要があることに注意してください。そうしないと、正しい結果が得られません。

BEFI:RugxuloのBefunge-93通訳 -ヘイフェルデン!

コマンドライン: bef93w32 -q source.bf

CCBI:準拠同時Befunge-98通訳 - Sveikaのpasaule!

コマンドライン: ccbi --befunge93 source.bf

MTFI:メイガステクニカFunge通訳 -ハイドゥニア!

コマンドライン:mtfi -3 source.bfオンラインそれを試してみてください!

PythonおよびPHPコンソールアプリ

これらには、PythonまたはPHPの適切なスクリプト言語がインストールされている必要があります。

Befungee - Helo Byd!

コマンドライン: befungee.py source.bf

PyFunge - Halo Dunya!

コマンドライン:pyfunge -v 93 source.bfオンラインそれを試してみてください!

Bephunge - Bonjour monde!

コマンドライン: php bephunge.phps source.bf

ソース専用コンソールアプリ

これらはソースからビルドする必要があり、それは通常* nixのような環境で最も簡単です。Windowsでは、Linux用のWindowsサブシステムを使用します

BEF:Befunge-93基準分布 -チャオのモンド!

コマンドライン:bef -q source.bfオンラインそれを試してみてください!

cfunge - Sawubona Mhlaba!

コマンドライン: cfunge -s 93 source.bf

FBBI:Flaming Bovine Befunge-98通訳者 -ヘイ・マイルマ

コマンドライン:fbbi -93 source.bfオンラインそれを試してみてください!

菌類 - Kaixo Mundua!

コマンドライン: fungi source.bf

RC / Funge-98 - Salom Dunyo!

コマンドライン: rcfunge -93 source.bf

使い方

これに伴う課題は、インタープリターを最も差別化するテストの数を最小限に抑えることでした。最終的には、4つの主要なテストシーケンスになりました。

  1. 1つ目は、オフセット-1、1からの範囲外のメモリ読み取りです。理論上、これは常に32(ASCIIスペース)を返すはずですが、実際には実際には10のバリエーションがありました。このテストは、2つのインタープリターが範囲外の読み取りでクラッシュするという事実によって複雑になるため、これら2つの境界を強制的に戻すには、いくつかの特殊なケーステスト(分割丸めとスペースブリッジング)が必要でした。

  2. 2番目のシーケンスは、Befunge-98の機能のテストです。具体的には、命令;'です。ほとんどすべてのインタープリターはBefunge-93であるか、Befunge-93互換モードで実行されるため、それらの命令を無視する必要があります。実際には、このシーケンスの解釈には6つの異なる方法がありました。

  3. 3番目のテストでは、メモリセルの範囲をチェックします。リファレンスインタプリタでは、メモリセルは8ビットに署名されていますが、他の実装は8ビットから無制限、いくつかの署名あり、いくつかの無署名までの範囲で異なります。ただし、このテストの目的では、これらのバリアントのうち5つだけを区別する必要がありました。

  4. 4番目の最後のシーケンスは、アンダーフローと負の除算テストの組み合わせです。インタプリタが誤ってアンダーフローを起こす方法はいくつかあり、除算命令とモジュロ命令を実装する方法は少なくとも3つありますが、ここで考慮した組み合わせは3つだけでした。

これらの各シーケンスは単一の数値を返し、それらの4つの数値は(いくつかの基本的な算術および変換テーブルを介して)結合されて0から22の範囲の最終値を生成しました。表示する。


かなり安い方法ですが、これを破る方法はありません。これで、おそらくこれを調整して、BrainFuckの亜種を絞り込めます。
ザカリー

10
あなたが想像するほど簡単ではないことを保証します。20を超えるバグのあるインタープリターでクラッシュすることなくコードを実行できるようにするだけの課題です。安くしたい場合は、Befunge-98を使用して、実装ハンドプリント(3y)を照会するだけでした。
ジェームズホルダーネス

2
私はあなたがどのように使用するかのように安価に言及てるだけ befungesをするが、これは実際には非常に印象的です。
ザカリー

これは信じられないほど印象的ですが、異なるインタープリターが異なる扱いをする理由を説明することは可能ですか?23のバージョンすべてではないかもしれませんが、少なくとも利用している動作の違いのいくつかの例はありますか?
ジャックブラウンスタイン

1
@JackBrounstein答えの最後に少し説明を加えました。
ジェームズホルダーネス

64

16言語、1363バイト

 #define ip"MemuL tulaS",,,,,,,,,,"!",@++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.@,kc"Kaixo Mundua!"v#!
#define print(A,B,C)main(){printf("Helo Byd!");}//ss                                                                          ;ooooooooooooooooooo"Moni Dziko Lapansi!"<  
#ifdef __cplusplus//p                                                                                                                                 ;;];;
#include<cstdio>//ffffffffff?
#define print(A,B,C)int main(){printf("Halo Dunya!");}//ssp
#endif//;  [;;;;;;;;;     "!etejivs vardzoP"]
#ifdef __OBJC__//;;;;;
#define print(A,B,C)main(){printf("Hallo Welt!");}//ss
#endif//\
"""echo" "Salom Dunyo!";"exit";puts"Moien Welt!";\
__END__
#define B//\
"""#;;;;;
print(["Hai dunia!","Hej Verden!","Halo Dunia!"][(int(1>0)is 1)+~int(-1/2)*2])
#define s eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejiiiiiiiijeeeeeeeeeeeeeejiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejeejijiiiiiiiiiijeeeeeeeeeeejiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiij
#define U   !"!dlereW ollaH"<           ;
#define T@,kc"Sannu Duniya!?%?"

オンラインでお試しください!

(言語を変更するには「言語の切り替え」を使用します)

  • Python 3 = Halo Dunia!(インドネシア)

  • Python 2 = Hej Verden!(デンマーク語)

  • Python 1 =ハイドゥニア!(マレー語)

  • C(gcc)= Helo Byd!(ウェールズ)

  • C ++(gcc)= Halo Dunya!(スンダ語)

  • 客観的C(clang)=ハローウェルト!(ドイツ人)

  • Brainfuck = Hello World!(明らかに英語)

  • Befunge-93 =サリューム!(ルーマニア語)

  • ルビー=モイエンウェルト (ルクセンブルク)

  • Bash = Salom Dunyo!(ウズベク語)

  • Befunge-98(PyFunge)= Kaixo Mundua!(バスク)

  • Unefunge-98(PyFunge)= Sannu Duniya!(ハウサ)

  • 枢機==ハロー・ウェレド!(オランダの)

  • Alphuck = Ciao mondo!(イタリアの)

  • > <> =モニ・ジコ・ラパンシ!(チチェワ)

  • 分裂=ポズドラフスヴィジェット!(クロアチア語)

ゴルフのヒントは大歓迎です(特にBrainfuckで)!!

-1バイトの@JonathanFrechに感謝します!また、-40バイトの@ovsに感謝します!

どのように(一般的なアイデア、私は実際に詳細を忘れてしまった)?

言語は4つのグループに分類できます。

  • マクロ:C、C ++、Objective C
  • コメント:Python3、Python2、Python1、Ruby、Bash
  • 次元:Befunge-93、Befunge-98、Unefunge-98、Cardinal、> <>、Fission
  • 下品:Brainfuck、Alphuck

マクロ言語#は、プリプロセッサディレクティブの開始と見なします。これらは、他のグループのコードを格納する、マクロ言語を区別する、実際にマクロを定義するという3つの理由で使用されます。3つすべてが//コメントとして使用されるため、その後、他のグループのコードを保存します。また、これらの言語ではバックスラッシュがコメントを継続します。

コメント言語#は、コメントの始まりと見なされます。ここでの癖はトリプルクォートで、PythonとRubyをBashと区別しています。また、Python 1と2を3から区別するために、出力の配列とともに、3つすべてで区別機能を使用します。そうそう、それもあり__END__ます。これは、コメント言語の一部(正確にどれを思い出せないか)のコードを終了するために使用されます。

次元言語は、説明するのが難しい方法で区別されます。理解するには、各言語の詳細を知る必要があります。たとえば#、fungeoidsはスキップのみですが、他の言語ではさまざまなことを行います。コードはこれらの言語のいたるところに散らばっています。

そして最後に、下品な言語に到達します。これらの2つは、有効な文字のセットにないすべてを無視します。コードにはすでに文字セットの文字が含まれているため、これらの言語および他の言語でバランスをとる行為を行う必要があります。


Pythonサブミッションの文字列を1つの大きな文字列に結合し、文字列スライスを使用してインデックスを作成できますか?例えば"abcabcabc"[n::3] -> "aaa" for n = 0, "bbb" for n = 1。おそらく、スライスに重複する文字を含めることで(Hや!など)、スライスしてバイトを節約する方法があると思います。
コール

2
クール!角かっこ["Hai dunia!","Hej Verden!","Halo Dunia!"]はコンマを保護します!
ウリエル

3
TIO Brainfuckがユーザーからの入力を使い果たした場合、デフォルトで0(または何もしない、わからない)であるという事実を悪用します。この事実を悪用する他の9つの非シールドコンマがあります。
ザカリー

2
+[++[<+++>->+++<]>+++++++]<<<--.<.<--..<<---.<+++.<+.>>.>+.>.>-.<<<<+.BFパーツを使用していない理由はありますか?(ソース
エソランジングフルーツ

1
見たい人のために説明を追加しました。
ザカリー

38

15言語、532バイト

# ;"!audnuM oxiaK">:#,_@R"Hej Verden!";;@,kb"Tere maailm!";# w"!amliaam ieH"ck,@oooooooooo"Hai dunia!"
`true #{puts'Hola món!'}` \
__END__
"Hola Mundo!" puts
case `ps -p$$ -oargs=` in \
b*)echo Hallo Welt!;;k*)echo Ndewo Ụwa!;;d*)echo Ciao mondo!;;z*)echo Moien Welt!;;a*)echo Hei Verden!;;esac
true; 
#xx
#x%"Olá Mundo!"x
#xx+++[++[<+++>->+++<]>+++++++]<<<--.<.<--..<<---.<+++.<+.>>.>+.>.>-.<<<<+.
   	  	   
	
     		  	 	
	
     		 		  
	
     		 				
	
     	     
	
     	    	 
	
     				  	
	
     		  	  
	
     	    	
	
  

オンラインでお試しください!

  1. Kaixo Mundua! Befunge-93で
  2. Hej Verden! 核分裂で
  3. Tere maailm! Unefunge-98で
  4. Hei maailma!! Befunge-98で
  5. Hai dunia! で> <>
  6. Hola món! Rubyで
  7. Hola Mundo! GolfScriptで
  8. Hallo Welt! バッシュ
  9. Ndewo Ụwa! kshで
  10. Ciao mondo! ダッシュ中
  11. Moien Welt! zshで
  12. Hei Verden! 灰の中
  13. Olá Mundo! 枢機inで
  14. Hello World!頭の中で、プリモの礼儀
  15. Helo Byd! ホワイトスペースで

説明

行1は、5つの2Dエソランを区別しています。

  1. ><>#ミラーとして読み取り、左に折り返し、印刷"Hai dunia!"してクラッシュします(@)。すべてのFungesはトランポリンとしてそれを読み、正しく行きます。
  2. Befunge-93は無視し;、出力Kaixo Mundua!して終了します(@)。
  3. '98 Fungesは最初;から2番目にジャンプし、次に3番目;から4 番目にジャンプします。wBefunge-98、印刷用のNOPですHei maailma!
  4. しかしw、Unefunge-98の印刷の指示ポインタを反映していますTere maailm!
  5. 核分裂は左上隅からまったく始まりません。R"Hej Verden!";実行されます。(別の命令ポインターはDin から始まりますが、__END__何もしないので;inに死にtrue;ます。)

`true #{puts'Hola món!'}`それからルビーは見る__END__

GolfScriptは`、次にtrue(NOP)、次にコメントを見ます。その後__END__(NOP); その後"Hola Mundo!" puts(これが実行されます); 次にcase(NOP)、次に`(空のスタックでクラッシュ)。

シェルはコメント、次にtrue(NOP)への呼び出し、次に不明なコマンドへの呼び出し、__END__および"Hola Mundo!"(STDERRへのエラーですが実行は継続します)、case現在のプロセスの名前の最初の文字に基づいて区別するステートメントを確認します。

Cardinalは%、から始まり、上下左右に4つのIPを送信する別の2Dエソランです。それらはすべて周囲のxコマンドによって殺されますが、"Olá Mundo!"死ぬ前に印刷されます。

Brainfuckコードはprimoであり++、ダッシュを打ち消すために接頭辞が付いていps -p$$ -oargs=ます。

コード内の空白は、空白プログラムとして実行されます

 push 0
 push 0
label_0:
 push 0
 push 0
 drop
 drop
 push 72; printc
 push 101; printc
 push 108; printc
 push 111; printc
 push 32; printc
 push 66; printc
 push 121; printc
 push 100; printc
 push 33; printc

印刷する Helo Byd!

編集:私はUDLR文字を追加するとFissionプログラムが壊れることを忘れていたので、これらを避けるために文字列を変更しました。


1
すぐに届きます。
ザカリー

1
私は今降伏すると思う、あなたは素晴らしい仕事をした。
ザカリー

あなたのソリューションには、はるかに興味深い方法で相互作用する言語があるため、少し気分が悪いです!私は本当に「5シェル」の答えに、お互いに簡単に混同しやすいエソランを埋めました...>。<;
リン

1
今、誰かがこれらの言語をDでポリグロットできるなら、私は永遠にwe敬の念を抱きます。(#defineDでは、ポリグロットの邪魔になるものではありません)。また、私は本当に空白を学ぶ必要があります。
ザカリー

1
ああ、今はもっと大文字があります。別のHello Worldを選択して、少し修正します。
リン


12

7言語、221バイト

<?php echo'مرحبا بالعالم!';die?>h+#;"!dlereW ollaH"ck,@;
;echo Kaixo Mundua!;                        <@,k+4f"ሰላም ልዑል!"

Բարեւ աշխարհ!
@,k+4f"Përshendetje Botë!";XXXX;"Hello Wêreld!"

このプログラムにはいくつかの厄介な文字が含まれているため、xxdを次に示します。

00000000: 3c3f 7068 7020 6563 686f 27d9 85d8 b1d8  <?php echo'.....
00000010: add8 a8d8 a720 d8a8 d8a7 d984 d8b9 d8a7  ..... ..........
00000020: d984 d985 2127 3b64 6965 3f3e 682b 233b  ....!';die?>h+#;
00000030: 2221 646c 6572 6557 206f 6c6c 6148 2263  "!dlereW ollaH"c
00000040: 6b2c 403b 0a0c 3b65 6368 6f20 4b61 6978  k,@;..;echo Kaix
00000050: 6f20 4d75 6e64 7561 213b 2020 2020 2020  o Mundua !;
00000060: 2020 2020 2020 2020 2020 2020 2020 2020
00000070: 2020 3c40 2c6b 2b34 6622 e188 b0e1 888b    <@,k+4f"......
00000080: e188 9d20 e188 8de1 8b91 e188 8d21 220a  ... .........!".
00000090: 0ad4 b2d5 a1d6 80d5 a5d6 8220 d5a1 d5b7  ........... ....
000000a0: d5ad d5a1 d680 d5b0 210a 402c 6b2b 3466  ........!.@,k+4f
000000b0: 2250 c3ab 7273 6865 6e64 6574 6a65 2042  "P..rshendetje B
000000c0: 6f74 c3ab 2122 3b58 5858 583b 2248 656c  ot..!";XXXX;"Hel
000000d0: 6c6f 2057 c3aa 7265 6c64 2122 0a         lo W..reld!".

どうして<?='مرحبا بالعالم!';die?>?これは、有効なPHP(と本質的に同じだ<?php echo ... ?>)、
イスマエルミゲル

@IsmaelMiguel私はその機能を忘れていたので...そのように簡単です
-NieDzejkob

9

5言語、168バイト

  //"!nedreV jeH",,,,,,,,,,,@R"Hello World!"*#x
///"!mliaam ereT">:?v; x"!dyB oleH"           %x
//               ^ o<                         x
// >`Sawubona Mhlaba!`;

2次元言語は興味深いと思います。

> <>印刷Tere maailm!
Befunge-98印刷Hej Verden!
Beeswax印刷Sawubona Mhlaba!
Cardinal印刷Helo Byd!
Fission印刷Hello World!

オンラインでお試しください!(枢機卿)


2
//多くの言語のコメントがあるので、ここに大きな可能性があると思います。
ザカリー

@Zacharýそれが彼らのほとんどがそこにいる唯一の理由です。現在、2つは> <>に、もう1つは蜜蝋に使用されています。最初の2列の列は何もしません。
KSmarts

蜜蝋の制御フローを説明できますか?それがこの挑戦に適しているかどうか見たいです。
ポテト44

@ Potato44これは、コードを境界のある六角形のグリッドとして解釈する2次元言語なので、ポインターは6方向に移動できます。ミツバチ(ポインター)はキャラクターによって生成され、*/\_固定方向またはミラーまたは回転によってリダイレクトできます。詳細はこちらをご覧ください。
KSmarts

蜜蝋部分の場合;、2番目のバックティックの後は必要ないため、1バイト単位でカットできます。蜂は蜂の巣から右に向かって走り去ります。
ML

7

2言語、16文字、24バイト

まあ、少なくともそれは両方の文字列よりも短いです。

L"שלום עולם"33ç«

05AB1E -שלום עולם!

助けて、WarDoq!-Hello World!

助けて、WarDoq!2つの数値を追加して素数をテストできるため、このメタ投稿ごとに有効なプログラミング言語と見なされます。


IIRC、05AB1Eの1バイトではありません。TIOの制限によるものです。\
ザカリー

@Zacharýよろしいですか?一部のエンコーディングでは、ヘブライ文字が1バイトであることを知っています。文字コードが重複している可能性があります。
ウリエル

ここにヘブライ語が見えますか?
ザカリー

固定@ザカリー(私はそれが24バイトになるだろうと思う)
ウリエル

6

3言語、67 62バイト

この報奨金(100担当者)の資格を得るため。

x:Helo Byd!
O
y:"Hai dunia!"
u?`h;`4$'5^5D+Asi:^:E+IvIvAB*vhm,

Add ++: オンラインでお試しください!

Foo: オンラインでお試しください!

ソンム: オンラインで試してみてください!

説明

追加++

Add ++の見方:

x:Helo Byd!
O

「出力xの文字列」

y:"Hai dunia!"

「yを別の文字列に設定」

u?`h;`4$'5^5D+Asi:^:E+IvIvAB*vhm,

「何か変なものを見つけて、エラーが出る」

フー

フーは見る:

x:Helo Byd!
O
y:"Hai dunia!"

「ああ、引用符、私はそれらを出力します。」

u?`h;`4$'5^5D+Asi:^:E+IvIvAB*vhm,

「ええと...モードについて何か?Idk、エラーが出るよ。」

ソンム

ソンムは、よく、これを見ます:

8s+vi:4+vhIvE-Asi:^:E+IvIvAB*vhm,

すべての列がコードポイントに変換され、32がそれらから減算され、それぞれが95を法として取得されます。これは、「Hei Verden!」と印刷されるこれらの文字に対応します。


さて、1週間が終わり、あなたは最も短い(そして唯一の)競合する答えなので、賞金にお祝いを申し上げます!
08分

@cairdcoinheringaahingありがとう!:D
コナーオブライエン

5

4言語、138バイト

''' '/*' '''
print(["Bonjour monde!","Hei maailma!","Hallo Wereld!"][((int(not 0)is 1)+2*int(1/2==0))-1])
''' '*/print("Hallo Welt!")' '''

オンラインでお試しください!

Py1、Py2、Py3、プロトン; Xcoder氏に感謝します。ザカリーの答えから翻訳


4言語(プロトン、Py1、Py2、Py3)。ザカリーの答えに触発されました
ミスターXcoder

@ Mr.Xcoderすごい、ありがとう!
ハイパーニュートリノ

4

4言語、115バイト

print ((("b" + "0" == 0)and eval('"Hallo Wereld!"'))or(0 and"Hello World!"or(1/2and"Hei Verden!"or"Hej Verden!")));

Perl 5のは、与えHallo Wereld!- TIOを

Rubyは与えHello World!- TIOを

Pythonの2を与えますHej Verden!- TIOを

Pythonの3が与えられるHei Verden!- TIOを


107バイト—print (((“b”+”0"==0)and eval('"Hallo Wereld!"'))or(0and"Hello World!”or((1/2and"Hei"or"Hej")+" Verden!")));
ジョリーワット

4

4つの言語、なんと650バイト

//iiciccepepceaiiiaiaiaicccsascciijceeeeeejccijjccjceaajaajcccjeeejaajaaijcccej
//[
/*
GOTO end
*/
//pis
//p
//p
//\u000Apublic class Main{public static void main(String[]a){System.out.print("Salut Lume!");}}
/*
lblend
print Hola Mundo!
//s
*/
//]
//s
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++++++++++++++++.--------.++++++++++++++.-------------------------------------------------------------------------------.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.++.-.----------.+++++++++++.------------------------------------------------------------------------------.

Javaは「Salut Lume!」を提供します それを試してみてください!

SILOSは「Hola Mundo」を提供します

Brainfuckは「Ciao mondo!」を提供します それを試してみてください!

(alphuckコードは上Esolangsページから変更されAlphuck

Alphuckは「Hello World!」を提供します それを試してみてください!

\ u000Aで始まる行はJavaコードです。1行目のコードはAlphuckコードで、残りのコードは無視されます(「p」と「s」のバランスが取れている場合。SIL/ SILOSに関連する行は「print Hola Mundo」、およびbrainfuckコードです)最後にあり、残りのコードを無視します。


1
このページで提供されている定数とそこで使用されている手法を使用して、BFコードをいくつかゴルフできると思います。
コール

@cole bfコードを最適化するためにもう少し時間が取れたら、bfコードをもう一度見てみます。基本的に、私はそれだけで定数を使用するのに十分だとは思わない、私は漸化式を定義する必要がありますするつもりだ
ロハンJhunjhunwala

1
「チャオモンド!」の78:+>++>+>+++[+++++[>+++++++++++>++++<<-]+++<]>>--.>+.>.>-.>.<--.++.-.<+++.>+.>+.バイトシーケンス[
69、104、97、112、32

4

5言語、213バイト

私は自分で小さな答えを書いてみることにしました。

#include<stdio.h>
#define hint(x)int main(){auto i=.5;puts(i?"Hallo Welt!":"Hei maailma!");}
#define R "Pozdrav svijete!";
#if 0
hint=print
goto=len
s="Tere maailm!"
goto("endif")
s="Hallo Wereld!";
#endif
hint(s)

言語:

C:                                       Hei maailma!      (Finnish)
C++:                                     Hallo Welt!       (German)
Python 3:                                Hallo Wereld!     (Dutch)
Operation Flashpoint scripting language: Tere maailm!      (Estonian)
Fission:                                 Pozdrav svijete!  (Croatian)

CおよびC ++では、コードは次のように表示されます。

#include<stdio.h>
#define hint(x)int main(){auto i=.5;puts(i?"Hallo Welt!":"Hei maailma!");}
#define R "Pozdrav svijete!"; // Unused macro
hint(s)

auto i=.5;(実質的に)int i=0;Cと同じですがdouble i=0.5;、C ++ と同じです。

オンラインでお試しください!(Cとして)

オンラインでお試しください!(C ++として)

Python 3は、コードを次のように認識します。

hint=print
goto=len
s="Tere maailm!"
goto("endif")         # Calculate string length and discard the result.
s="Hallo Wereld!"
hint(s)

オンラインでお試しください!

OFPスクリプト言語は次を認識します。

; (A semicolon at the beginning of a line comments the line in a script.)

; Four labels with strange names.
#include<stdio.h>
#define hint(x)int main(){auto i=.5;puts(i?"Hallo Welt!":"Hei maailma!");}
#define R "Pozdrav svijete!";
#if 0

; Assign a null value to "hint", no practical effect. Same for "goto".
hint=print
goto=len

; Assign the string to variable "s".
; I would like to have used the Czech phrase for OFP (because it's a Czech game),
; but it didn't recognize the 'ě' and printed a '?' instead.
s="Tere maailm!"

; Jump to label "endif".
goto("endif")

; This reassignment of "s" gets skipped.
s="Hallo Wereld!";

; Declare a label called "endif".
#endif

; Print the string "s".
hint(s)

核分裂は見ている:

R "Pozdrav svijete!";

オンラインでお試しください!


2

3言語、184 181バイト

一度だけ動作します-リストをクリアして再度実行する必要があります。

when gf clicked
add<[]=[]>to[c v
if<(join(item(1 v)of[c v])[d])=[1d
say[Helo Byd!
else
repeat(300000
add[]to[c v
end
if<(length of[c v])>[250000
say[Hello world!
else
say[Hai dunia!

スクラッチ1.4: Helo Byd!

スクラッチ2.0: Hello world!

この回答時点でのスクラッチ3.0ベータ: Hai dunia!

説明

スクラッチ1.4では、リストにブール値を追加する追加1又は0、しかし2.0とアップでは、追加true又はfalse、しかし項目が等しいかどうかをチェックするときに1<[] = []>との項目のいずれかである場合、それは真を返します1またはtrue、別の文字を追加して確認します。

Scratch 3.0では、リストの最大サイズは200,000アイテムなので、アイテムを追加して、リストがその長さであるかどうかを確認します。


1

3言語、61バイト

;“,ḷṅḳȦ»Ḋḷ“
x:Hai dunia!
O
y:"Helo Byd!"
;”

++出力の追加Hai dunia!

ゼリー出力Hello World!

Foo出力Helo Byd!

賞金を設定したからといって、参加できないわけではありません:D(ab)Conorが Add ++で見つけた素晴らしい文字列設定トリックを使用します

使い方

追加++

;“,ḷṅḳȦ»Ḋḷ“     ; A comment. This does nothing
x:Hai dunia!    ; Set the x accumulator to the string "Hai dunia!"
O               ; Output x
y:"Helo Byd!"   ; Set the y accumulator to the string "Helo Byd!"
;”              ; Another comment

ゼリー

Jellyのコメントは構文ḷ“comment”で形成できます。これは、Add ++およびFooコードが無視される方法です。Jellyによって実際に実行されるコードは

;“,ḷṅḳȦ»Ḋ - Main link. Arguments: None
 “,ḷṅḳȦ»  - Yield the string "Hello World!"
;         - Append 0, yielding "0Hello World!"
        Ḋ - Remove the first character, yielding "Hello World!"

フー

Fooは、ここを除くすべての文字を無視します"Helo Byd!"。引用符で囲まれているため、出力されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.