human
ほとんどのプログラミング言語がアレイの最初のインデックスとして0を持つのはなぜですか？その利点は何ですか？Luaのようないくつかの言語が1で配列を開始するのはなぜですか？
gpt
BCPL言語の作成者（Cの前駆体）の作成者であるMartin Richardsは、アドレスとして使用されるポインターPの値がメモリの位置p + 0にアクセスするため、ゼロから始まるアレイを設計しました。これは、位置XのサイズSのタイプの配列へのインデックスを作成することはP + S*xだけであり、Sが2つの小さなパワーである場合、単一の命令で実行できます。

一部の言語では、1つで配列を開始します。これには、Mathematicaなどの数学に焦点を当てた言語が含まれます。一般的に、ユーザーのエクスペリエンスと期待が生のパフォーマンスよりも重要であり、メモリを直接操作できる場合、ユーザーがプログラミングの背景がほとんどないかまったくない数学者であると予想されるかなど、メモリを直接操作できる場合に使用されます。。
human
どの言語がどの方法を使用しているかを見つけるにはどうすればよいですか？