デザパたん シーズン2 第(X+6)回 インタープリタパターン

0

第何回か分からないまま。
デザパたん シーズン2 第(X+6)回 インタープリタパターン

担当者 @ina_ani
ブログ: wordpress

ぽり野郎 @polistes

今日はインタープリタパターン #dezapatan

2012-07-17 20:15:38
ぽり野郎 @polistes

言語の文法をオブジェクトに落とすためのパターン #dezapatan

2012-07-17 20:18:26
ぽり野郎 @polistes

終端記号、非終端記号ごとにクラスに分ける。2つって訳じゃない。 #dezapatan

2012-07-17 20:19:16
ぽり野郎 @polistes

ビジターの時には式の計算をごちゃごちゃしてたが、インタプリタは計算するのが目的 #dezapatan

2012-07-17 20:21:06
ぽり野郎 @polistes

コンテキスト、スタック。男気溢れるpiblicで値を一時的に保持する #dezapatan

2012-07-17 20:21:56
ぽり野郎 @polistes

要素。計算結果を返す。intなら保持してる値、addなら合計値 #dezapatan

2012-07-17 20:22:37
ぽり野郎 @polistes

ちゃんと計算が終わってれば、最後にはコンテキスト、スタックには値が一つだけ残る #dezapatan

2012-07-17 20:23:46
ぽり野郎 @polistes

逆ポーランド記法をいかにプログラムに落とすか #dezapatan

2012-07-17 20:24:39
ぽり野郎 @polistes

インタプリタを複雑な処理を、単純な処理の組み合わせで記述できるよ。 #dezapatan

2012-07-17 20:26:33
ぽり野郎 @polistes

ここに割り算を追加するのはすごい簡単。似てるビジターの場合はビジターを継承しているすべてのクラスを書き換える必要があった。 #dezapatan ここは使い分けの問題。

2012-07-17 20:27:53
ぽり野郎 @polistes

値(今回のコンテキスト)を持ち回るか、ビジターが全工程を保証するか。 #dezapatan

2012-07-17 20:29:11
ぽり野郎 @polistes

インタプリタは動作がオブジェクト中に記述されてる。自然。ビジターはビジター中に記載してるのでダブルディスパッチという謎の対応をしないといけなかった #dezapatan

2012-07-17 20:30:38
ぽり野郎 @polistes

エレメントのこうせいはコンポジットパターンになってる。インターフェイスと、数値、数値を処理するためのクラス #dezapatan

2012-07-17 20:31:52
Yuji Sato @kuidaoring

interpreterはcontextを各えelementが責任を持ってやってる感じ  #dezapatan

2012-07-17 20:33:27
ぽり野郎 @polistes

数式のパースと、数式の演算はセットで教わることが多い。 #dezapatan

2012-07-17 20:33:46
ぽり野郎 @polistes

細かく切り分けることがあるので動作が遅くなることがある。フライウェイトと組み合わせて使うことがある。 #dezapatan

2012-07-17 20:35:11
Yuji Sato @kuidaoring

visitorと比較して、全体に対する操作の追加とか変更がつらい #dezapatan

2012-07-17 20:38:55
ぽり野郎 @polistes

ビジターの場合は処理を追加するのが楽だったケド、インタープリタは処理を追加するのが大変。数式を文字列として出力するような改修をしたい場合には、インターフェイスとそれを実装する全要素に手をいれる必要がある #dezapatan

2012-07-17 20:39:14

擬人化フェーズ

ぽり野郎 @polistes

コンテキスト = 集金袋を渡して給食費を入れていってもらうイメージ。擬人化はどこに… #dezapatan

2012-07-17 20:50:25