私はfunarg 問題についてこの論文を読んでいました。これは実際にはレキシカル クロージャの環境を維持する問題です。これは古い論文であり、著者の結論が今でも当てはまるかどうかはわかりませんが、ダイナミック スコープではなくレキシカル スコープを使用するには、従来の C スタイルのスタックを放棄し、代わりにツリー構造を使用する必要があることを彼は強く示唆しています。ヒープから割り当てられた環境の。
これにより、ハードリアルタイムシステムでレキシカルスコープのクロージャーを持つことが不可能になりますか? 待ち時間がマイクロ秒単位で測定されるリアルタイム組み込みシステムでは、ヒープ割り当ては、非決定論的な待ち時間が発生するため、通常は禁止されています。
これは私の怠惰な好奇心でした。なぜなら、私は主に C が事実上の言語であるファームウェア開発者として生計を立てているからです。より洗練された言語で無料で提供されることをさせてください。その結果、ハードリアルタイム組み込みマイクロコントローラーベースのシステム専用の micro-lisp コンパイラーを実装できないかと考え始めました。
余談ですが、私は最近、クロージャーとオブジェクトがどのように同等であるかなどの深いトピックについて大きな洞察を得ており、ストールマンやリッチ ヒッキー、ポール グレアムなどの人物に畏敬の念を抱いています。Lisp をゼロから実装することは、私には困難な作業のように思えます。どこから始めればよいかわかりにくい。(おそらく、McCarthy のオリジナルの eval 関数 IDK の PG による実装によるものです)。とにかく脱線します。