猫型エンジニアのブログ

プログラム/ネットワーク系の技術関連をまとめたページです 

言語のしくみ その6

2-7 AST(抽象構文木)に変換

  • 抽象構文木をたどるには再帰呼び出しを実行する。
  • 抽象構文木をたどる処理系は、メモリ空間に不連続に存在する構造体にアクセスする。よってキャッシュ効率は落ちてしまい性能がでない。
  • 多くの処理系ではアクセスは狭い領域で連続的に行えるように、抽象構文木仮想マシンの命令列に変換し、実際の実行はこの命令列を解釈する方法で実行する。

3-6 Streemのオブジェクト指向

  • 動的結合:適用するデータの種類によって適切な処理が選択されること。ex. lengthという関数で、配列・文字列両方の長さが取得できる。
  • 総称関数:引数のデータ型に応じて内部処理を選択する関数。
  • モンキーパッチ:Rubyにおいて既存クラスに後から機能を追加すること。便利な反面後から無制限にメソッドを追加すると、ライブラリ間で機能が衝突する可能性がある。英語版wikiでは以下のように説明されている。→『A monkey patch is a way for a program to extend or modify supporting system software locally (affecting only the running instance of the program).』