言語理論とコンパイラ

第十四回: 実行環境、仮想計算機、ゴミ集め、動的コンパイラ

2012 年 7 月 20 日

http://www.sw.it.aoyama.ac.jp/2012/Compiler/lecture14.html

Martin J. Dürst

AGU

© 2005-12 Martin J. Dürst 青山学院大学

今日の予定

これからの予定

7月27日、11:10-12:35: 期末試験

前回の残り

再配置可能プログラム

 

実行環境

コンパイラと一緒に用意が必要

従来の動的メモリの仕組み

 

ゴミ集めの仕組み

ゴミ集めの手法

要点: できるだけ普通の処理と同時に少しづつ進める

  1. 動的メモリの部分が参照されている数 (reference count) を記録・更新、0 になったらゴミとして回収
  2. 印掃式 (mark and sweep): 全ての動的メモリの部分に印を付けて、これを最初に off にする。静的メモリなどから参照可能な動的メモリの部分の印を on にする。印が off になっている部分をゴミとして集める。
  3. 複写式 (copy): 動的メモリ領域を二つ用意し、参照されている動的メモリだけをコピー

 

仮想計算機

動的コンパイル

まとめ