現代のほとんどのコンピュータ（命令セットを問わない）とほとんどのコンパイラは、メモリ上のコールスタックを局所変数の格納場所およびサブルーチンからの復帰のための情報格納に使っている。サブルーチンコールのたびに「スタックフレーム」をコールスタック上に作り、そのサブルーチンから呼び出し側に復帰するまで対応するスタックフレームが維持される。コールスタックを特別なアドレスレジスタなどを使ってハードウェアで管理する場合もある。あるいは、コンパイラの呼出規約によって特定の汎用レジスタをコールスタック処理に使う場合もある。一般にコンピュータは、大域変数とその時点で実行中のプロシージャまたは関数の局所変数への効率的アクセス手段を提供する。一般に呼び出し側のプロシージャまたは関数のスタックフレームを遡ってアクセスする必要性はほとんどなく、ハードウェアが直接そのような手段を提供することもない。必要ならば、スタックフレーム内にあるフレームポインタで遡ることもできる。バロース B5000 ではハードウェアでスタックフレームを遡る手段を提供しているが、これは動的な入れ子構造ではなく、プログラムの静的な入れ子構造（変数のスコープ）を辿るものである。その後このような機能をハードウェアで実装した例はない。ニクラウス・ヴィルトは CDC 6000 シリーズ向けにPascalコンパイラを開発した際、フレームポインタを配列に格納して常に更新するよりも、コールスタック上のフレームポインタを遡ってたどった方が全体として高速だということを発見した。この方式だと、遡って参照することのないC言語などのプログラミング言語でも、余計なオーバーヘッドが発生しない。バロース B5000 では、タスクまたはスレッドの入れ子もサポートしている。あるタスクとそのタスクを作ったタスクは、タスク作成時点のスタックフレームを共有するが、作成した側の次のフレームや作成されたタスク自身のフレームは共有されない。そのため西部劇でよく見るようなサボテンのようなスタック構造になる。各タスクは自身のスタックとフレームを保持するメモリセグメントを持つ。そのスタックのベースは作成した側のスタックの途中とリンクされている。一般的なフラットなアドレス空間を持つマシンでは、あるタスクのスタックとそれを作成した側のスタックは1つのヒープ内の別々のヒープオブジェクトになる。プログラミング言語によっては、外側のスコープのデータ環境が常に入れ子になっているわけではない。そのような言語では、1つのスタックにスタックフレームを積んでいくのではなく、別個のヒープオブジェクトとしてプロシージャの「アクティベーション・レコード」を編成する。Forthのような単純な言語では、局所変数やパラメータの名前がなく、スタックフレームにはリターンアドレス以外に何も必要としない。そのため、リターンスタックにはフレームが存在せず、単にリターンアドレスが格納される。リターンスタックとデータスタックは分離しており、プロシージャの呼び出しと復帰は高速に行われる。
純粋なスタックマシンは、構造を持つデータオブジェクトの複数のフィールドにアクセスするのが不得意である。スタックマシンでは、オブジェクトのベースアドレスとフィールドのオフセットからアドレスを計算しなおして、ポインタをスタック上に置きなおす必要がある。一般的な対処方法としては、レジスタマシンの一部機能をスタックマシンに取り入れ、アドレス格納用にソフトウェアから見えるレジスタファイルを用意し、レジスタマシン風の命令でロードや単純なアドレス計算を行う。なお、レジスタファイルを汎用なものにするとスタックマシンである積極的な理由がなくなってしまう。もう1つの一般的なハイブリッド方式として、レジスタマシンのアーキテクチャを出発点とし、スタックマシンでのプッシュおよびポップをエミュレートする操作を追加する方式がある。この方式をポピュラーなものにしたのは、DECのPDP-11ミニコンピュータである。これがVAXに受け継がれ、MC6800やMC68000といったマイクロプロセッサにも採用された。これにより初期のコンパイラでスタックを簡単に扱えるようになった。また、スタックインタプリタまたはスレッデッドコードを使って仮想機械を効率的にサポートする。ただし、これによってレジスタマシンのコードが純粋なスタックマシンほどコンパクトになるわけではない。このようなハイブリッド方式のマシンで、スタックマシンのように頻繁にプッシュやポップを行うと性能は悪くなる。スタック操作はプロシージャコールの際にのみ行う方がよく、当然ながらメモリ参照せずにレジスタのみで処理するのが最善である。第2世代スタックマシンと呼ばれるものは、データスタックからメモリアドレッシングの処理を肩代わりするアドレスレジスタ群を備えている。例えば、MuP21は "A" というレジスタを持っており、もっと最近の GreenArrays のプロセッサは A と B という2つのレジスタを持っている。x86ファミリは基本的にレジスタ指向の命令セットだが、初期は外付けされ、後には内蔵・一体化された、浮動小数点関係のx87命令と浮動小数点レジスタは、スタック（マシン）指向である。これも一種のハイブリッドと言えよう。これは初期（1980年代）に、命令空間やチップ面積を節約する必要があったためである。現代の64ビット化されたx86であるx64では、（互換のために従来のFPUも残されているが）通常使用されるSSEの浮動小数点関係の命令も全てレジスタ指向の命令（レジスタ指向のSIMD命令）となっている。
1887年11月、チャイコフスキーはロシア交響楽演奏会の公演のいくつかを聴くのに間に合うようサンクトペテルブルクに到着していた。演奏会の中には彼の交響曲第1番の最終稿が全曲初演された回や、リムスキー＝コルサコフの交響曲第3番の改訂版が初演された回などがあった。このサンクトペテルブルク行きの前から、彼はリムスキー＝コルサコフやその周辺の人物と交流しながら多くの時間を過ごしていた。リムスキー＝コルサコフはアレクサンドル・グラズノフ、アナトーリ・リャードフをはじめとする愛国的思想を持った作曲家や音楽家らとともに、ベリャーエフ・サークルと呼ばれる集団を形成していた。この集団の名前の由来となった材木商のミトロファン・ベリャーエフはアマチュアの音楽家であったが、グラズノフの作品に関心を持つようになって以降、音楽家のパトロン並びに出版者として影響を与えた人物である。チャイコフスキーは滞在中こうした面々と多くの時間を共にし、幾分波乱含みであった5人組との関係性はベリャーエフ・サークルとのより調和の取れた関係へと融合していくことになる。この関係性は彼がこの世を去る1893年の暮れまで続いていく。一方、5人組は散り散りとなって久しく、ムソルグスキーが1881年に死去するとボロディンも1887年に後を追っていた。キュイは相変わらずチャイコフスキーの音楽に批判的な論評を書いていたが、チャイコフスキーの側では単に批判的な癪の種としか看做していなかった。孤独に暮らしていたバラキレフの音楽は傍流へと追いやられており、ただひとり、リムスキー＝コルサコフだけが作曲家として活発に仕事を続けていた。チャイコフスキーにとってグラズノフ、リャードフ、リムスキー＝コルサコフとの親交の副産物として、作曲家としての自らの能力に自信が増したことに加え、自作を進んで同時代の音楽作品と並べられるようになったことが挙げられる。ベリャーエフの演奏会で再び大きく取り上げられた後の1889年1月、チャイコフスキーはフォン・メックへ宛てて次のように書いている。「いつでもあらゆる派閥の『外側』に身を置くようにしてきましたし、音楽で栄誉を受け才能のある著名人に対しては、その人物の思想がどういったものであろうと、私が愛情を持っており敬意を払うことをあらゆる手段を尽くして示すようにしてきました。」また、自分がベリャーエフ・サークルの作曲家たちに並んで「演奏会という場に出ていけることを喜んでいる」ように思うとも記している。これは自作がこれらの作曲家の音楽と同時に演奏されることに対して心から準備が整ったという自覚の現れであり、自らの作品と並ぶような恐るべき楽曲はないのだという言外の自信から発せられていたのである。