オブジェクト指向対応型のプログラミング言語を実装する上で、クラスの管理は欠かせないものになります。というか、それが全てだといっても過言はありません。少なからず、コンパイラの内部でクラスに関するすべてのデータを持ち合わせ、照合を行いながらコード生成に挑んでいく必要があるのです。

では、データとして持たなければならない「クラスに関する情報」というのは、具体的にはどのようなものがあるのでしょう?これは一般論ではなく、ABを実装する上での事象ですので、その点をご了承の上・・・

  • クラス名(これが無いとお話になりませんf(^^;;;)
  • スーパークラスへの指標
  • メンバに関する情報(複数)
    • メンバ名
    • (必要であれば)配列要素
    • アクセシビリティ
  • メソッドに関する情報(複数)
    • メソッド名
    • 仮想関数かどうか
    • パラメータに関する情報(複数)
      • パラメータ名
      • 参照型かどうか(ByRef/ByVal)
      • (必要であれば)配列要素
    • 戻り値の型
    • アクセシビリティ
  • アライメント値

このような情報を一つのクラスとしてまとめ、更にプロジェクト内に存在するすべてのクラスを統括して管理するためのクラスデータベースクラスを用意してしまえば、クラスの管理を効率的に行えるようになります。

このように、オブジェクト指向をクラスという側面から見た場合、そのクラス構造そのものも、クラスとして捉えるという、またワケのわからないことを書いてしまいました。