4

Scalaの配列について分析しています。私は本(ロバートW.セベスタによるプログラミング言語の概念)に従ってこの分析を行っています。この本によると、添え字範囲へのバインド、ストレージへのバインド、およびストレージの割り当て元に基づいて、配列には5つのカテゴリがあります。カテゴリは次のとおりです。

  • 静的配列:添え字範囲が静的にバインドされ、ストレージ割り当てが静的(実行時前に実行)である配列です。静的アレイの利点は効率です。動的な割り当てや割り当て解除は必要ありません。欠点は、配列のストレージがプログラムの実行時間全体にわたって固定されることです。

  • 固定スタック動的配列:添え字範囲が静的にバインドされている配列ですが、割り当ては実行中の宣言の作成時に行われます。静的アレイに対する固定スタック動的アレイの利点は、スペース効率です。1つのサブプログラム内の大きな配列は、両方のサブプログラムが同時にアクティブでない限り、別のサブプログラム内の大きな配列と同じスペースを使用できます。2つのアレイが同時にアクティブではない異なるブロックにある場合も、同じことが言えます。欠点は、必要な割り当てと割り当て解除の時間です。

  • スタック動的配列:添え字範囲とストレージ割り当ての両方が精緻化時に動的にバインドされる配列です。ただし、添え字範囲がバインドされてストレージが割り当てられると、変数の存続期間中は固定されたままになります。静的および固定スタック動的アレイに対するスタック動的アレイの利点は、柔軟性です。配列が使用されるまで、配列のサイズを知る必要はありません。

  • 固定ヒープ動的配列:ストレージが割り当てられた後、添え字範囲とストレージバインディングの両方が固定されるという点で、固定スタック動的配列に似ています。違いは、添え字範囲とストレージバインディングの両方が、実行中にユーザープログラムがそれらを要求したときに実行され、ストレージがスタックではなくヒープから割り当てられることです。固定ヒープ動的配列の利点は柔軟性です。配列のサイズは常に問題に適合します。欠点は、ヒープからの割り当て時間であり、スタックからの割り当て時間よりも長くなります。

  • ヒープ動的配列:添え字範囲のバインドとストレージ割り当てが動的であり、配列の存続期間中に何度でも変更できる配列です。他の配列に対するヒープ動的配列の利点は柔軟性です。配列は、スペースの必要性が変化するにつれて、プログラムの実行中に拡大および縮小する可能性があります。欠点は、割り当てと割り当て解除に時間がかかり、プログラムの実行中に何度も発生する可能性があることです。次の段落では、5つのカテゴリの例を示します。

Scala言語が使用しているこれらのタイプのマトリックスはどれですか?

4

1 に答える 1

9

ScalaとJavaはどちらもfixed heap-dynamic arrayプリミティブ配列で使用します。VectorJavaやScalaなどArrayBuffer、プリミティブに基づいての特性を提供するクラスがありますheap-dynamic array

于 2012-09-28T18:38:28.780 に答える