私は、スタック/ヒープメモリモデルの使用がプログラマのための決定であるのか、それがOSに依存しているのか、そしてプログラマがそれに取り組むべきかどうかを理解できません。スタック/ヒープメモリモデルはオプションですか?
例えば、Fortran77のようなスタックレス言語は、スタックレスのアレイベースのメモリモデルを使用している現代のプラットフォームで動作できますか?代わりに、現代のFortranコンパイラは、配列メモリモデルをスタック/ヒープメモリモデルに変換する必要がありますか? (私はFortranのメモリ管理に関する多くのドキュメントを見つけることができません)
メモリモデルがプログラマのための決定である場合、私が遭遇するすべてのことが、スタック/ヒープモデルが唯一のオプションであると暗黙に仮定しているように見えますか?たとえば、LLVMはスタックフレームを使用して動作しますが、他の方法ではメモリの管理に関するドキュメントが見つかりません。 LLVM上に構築されたすべての言語、たとえ関数言語であっても、代替モデルがより適している場合は、スタック/ヒープモデルを採用する必要があります。
メモリモデルがOSの決定である場合、カスタムメモリモデルを使用するプログラムを作成するにはカスタムOSを作成する必要がありますか?たとえば、Fortranが設計されたアレイベースのメモリモデルを使用するFortranプログラムを実行する場合、カスタムOSが必要ですか?
答えがOSに依存する場合は、異なるOS間でいくつか比較してください。
ソフトウェアエンジニアリングのスタックエクスチェンジサイトは、この質問のためのより良い場所かもしれません。 – jdigital
@jdigital他のサイトを参照しているときは、[cross-posting frowned at](https://meta.stackexchange.com/tags/cross-posting/info) – gnat
を指摘しておくと役立つことがよくあります。どのようにスタックレスですか?それは確実にプログラムスタックを持ち、スタックにメモリを割り当てることができます。動的メモリ割り当て(ヒープ)は使用できません(少なくとも私が正しく覚えている場合)。あなたはその質問のより具体的な例を挙げることができますか? – linuxuser27