「スタックマシン」の版間の差分
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| 2行目: | 2行目: | ||
== 概要 == | == 概要 == | ||
[[スタック]]は最新の値が常に先頭に置かれ、新しい値がプッシュされるとスタックの先頭が移動し、ポップされると先頭が戻るという仕組みを持っています。 | |||
スタックマシンでは、通常、命令はスタックの先頭にある値に対して操作を行います。例えば、2つの数値を足す命令を実行する場合、スタックの先頭にある2つの値をポップして加算し、結果を再度スタックにプッシュすることで計算を行います。 | スタックマシンでは、通常、命令はスタックの先頭にある値に対して操作を行います。例えば、2つの数値を足す命令を実行する場合、スタックの先頭にある2つの値をポップして加算し、結果を再度スタックにプッシュすることで計算を行います。 | ||
| 12行目: | 12行目: | ||
ただ同世代では不利であってもスタックマシンは「[[CPU]]が進歩した際」に新たに追加された機能を使った最適化(高速化)がしやすいという特徴があります。 | ただ同世代では不利であってもスタックマシンは「[[CPU]]が進歩した際」に新たに追加された機能を使った最適化(高速化)がしやすいという特徴があります。 | ||
[[category: コンピューター]] | |||
2025年8月25日 (月) 02:18時点における最新版
スタックマシンとは、スタックと呼ばれる一時的なメモリ空間を使って、命令を実行するコンピュータアーキテクチャの一種です。
概要[編集 | ソースを編集]
スタックは最新の値が常に先頭に置かれ、新しい値がプッシュされるとスタックの先頭が移動し、ポップされると先頭が戻るという仕組みを持っています。
スタックマシンでは、通常、命令はスタックの先頭にある値に対して操作を行います。例えば、2つの数値を足す命令を実行する場合、スタックの先頭にある2つの値をポップして加算し、結果を再度スタックにプッシュすることで計算を行います。
利点と欠点[編集 | ソースを編集]
スタックマシンは、プログラムが比較的簡単で、コンパクトなバイトコードとして表現できるため、プログラムの解析や翻訳に適しています。
一方でスタックマシンはスタックの操作に時間がかかるため、一般的には同世代のレジスタマシンよりも処理速度が遅くなる傾向があります。
ただ同世代では不利であってもスタックマシンは「CPUが進歩した際」に新たに追加された機能を使った最適化(高速化)がしやすいという特徴があります。