派生ポインタ変数の初期化に関する問題

Steven Yellowhair さんが、派生ポインタ変数の初期化に関する問題を報告しました。NULL() しかできないので、修正するのは難しくありませんでした。

Michael Richmond は、他のコンパイラのように、control-Z 文字でソース ファイルを終了できるようにすることを提案し、これが追加されました。

定数文字列の部分文字列のサポートが追加されました。

 


4月21日

割り当て/割り当て解除の作業が完了しました。私が思うに。ALLOCATE と DEALLOCATE は、スカラーへのポインター、割り付け可能な配列、およびポインター配列の 3 つのケースすべてで機能するようになりました。SAVE 属性を持つ配列を除き、割り当て可能な配列の場合、割り当て解除は自動的に行われます。文字の配列と派生型も同様に機能します。派生型内のポインタから配列を割り当てたり割り当て解除したりすることもできます。これらのポインターは、プロシージャーの終了時に割り当て解除されません。

ALLOCATED 組み込み関数が存在し、機能しているように見えます。また、ASSOCIATED 組み込み関数の 3 つのケースすべても同様です。

プロシージャが終了する前に割り当て可能な配列の割り当てを解除できるため、プロシージャ メモリを二重にリンクされたリストに戻しました。文字配列の出力を妨げていた I/O ライブラリのバグを修正しました。

 


4月20日

ALLOCATE と DEALLOCATE で使用されるメモリ管理プールの重大な再作業。これらのノードは、二重リンク リストではなくツリーに格納されるようになりました。問題は、DEALLOCATE は、割り当てを解除するための不適切なポインターが与えられたときに、必ずしもプログラムをクラッシュさせることが許可されていないことです。ステータス変数が存在する場合、そのポインタの割り当てを解除できないことを知らせる必要があります。双方向リンク リスト内の何かを検索するのは O(N) なので、行かなければならず、現在はツリーとして実装されています。プロシージャ メモリは単一リンク リストに移動され、一時メモリは二重リンク リストのままであるため、プログラムの最後に何も残らないようにすることができます。

I/O ライブラリのいくつかのバグが修正され、Martien Hulsen の fixed-to-free プログラムが正常に動作するようになりました。私はそれを通していくつかの固定ソースを実行しました。

派生型とポインターに関する最近の作業により、リンクされた構造の割り当て、トラバーサル、および割り当て解除が可能になりました。構造体のスタックのような単方向リンク リストを生成する小さなプログラムの作成に成功しました。ランタイム ライブラリが変更され、デフォルトで最大 25 個の放棄されたメモリ セグメントと、一時的であるはずの解放されていないメモリが報告されるようになりました。これは、必要に応じて環境変数でオーバーライドできます。

 


4月19日

ここ数日間、ポインターの問題に関する多くの作業が行われました。しばらくの間、私の目標は固定形式を自由形式に変換する Martien Hulsen によるプログラムでした。これで問題なくコンパイルできますが、I/O ライブラリでセグメンテーション違反が発生します。

タイトルとURLをコピーしました