2

まず第一に、これはポリグロットの定義です:

コンピューティングのコンテキストでは、ポリグロットは、複数のプログラミング言語の有効な形式で記述されたコンピューター プログラムまたはスクリプトであり、コンパイルまたは解釈に使用されるプログラミング言語とは無関係に、同じ操作または出力を実行します。

しかし、ここに質問があります。次のようなプログラムがある場合:

#include <stdio.h>

int main() {
  puts("Hello, world!");
  return 0;
}

これは C です。Objective-C (C の上の薄い OO レイヤー) は C の厳密なスーパーセットであるため、これは同じ出力を持つ Objective-C である可能性もあり、多言語になります。

しかし、ポリグロット (すべての C プログラムをポリグロットにする) に関しては、厳密なスーパーセットはカウントされますか?

4

1 に答える 1

2

厳密に言えば、はい、C と Objective-C の多言語です。しかし、それは誰も感動しません。

ポリグロットは、非常に異なる言語で動作する場合により興味深いものになります。Python、Brainfuck、Perl、Befunge でも動作するようになれば、もう少し印象的です。

于 2010-12-29T14:57:33.430 に答える