今後の Dex 設計方針についての検討で終了。これから越化参照が大活躍しそうだ。
まず,課題だった脚注記法の実装方針について検討している内に,越化参照が部区間通信に活用出来ることに気付いた。
部区毎に越化条件の変化などがあることから,各記法の解釈は部区個体に任せたい。しかし,脚注記法のように最上位部区との出与え共有が必要な記法もある。
このような場合,単純に考えれば指示体を通して部区個体間で変数を共有するということになるが,この種の記法が増えるたびに目的別の指示体を増やすのは設計として美しくない。汎用的な変数一つに集約するのも,効率性や厳密性の観点から難がある。
ここでふと,越化参照が使えることに気付いた。下位の部区個体で中途解釈した記法には目印となる越化参照を付け,上位の部区個体で変換処理を完了させる。
これに似た部区間通信の手法は Dex 初期実装から現 &_skp;
で使い続けているが,どちらかというと「邪道」だと感じていたため,意図的に応用範囲を広げなかった。紆余曲折を経て,これが一番単純性・効率性・保守性のバランスが良いということが分かった。
これで脚注記法や目次記法の実装は容易になった。他にも,輪郭情報の参照が必要な記法など,部区間通信が必要な場面全般で越化参照が活用出来るだろう。
1月21日4歩で,&_tgt;
や &_fin;
のような目印を付加することを考えていたが,付加的な越化参照では結局正規表現の複雑化が避けられないため,実用化出来ていなかった。
昨日終えた客体表現への書き換えで Dex 初期実装の交度を整理している時,再置換を避けるため記法の一部を越化参照(当時の疑似実体参照)に置換する手法を使っていたことを思い出した。これもあまり積極的に応用範囲を広げなかった手法だが,思っていたより合理的であることに気付いた。
例えば,http
は &_http;
のように一時的に置換してしまえばいい。考えてみれば単純なことだが,灯台下暗しのごとく単純なことの真価を理解するには時間がかかるということを改めて学んだ。経験不足だと,どうしてもより高度そうなことに目移りしてしまう。
直感で編み出した Dex 初期実装の手法を再評価する十分な経験が出来たこともあるが,「越化参照」という概念が完成し,積極的な活用を考えられるようになったことも大きいのだろう。中途半端だった「疑似実体参照」から発展したのはつい先月のことだ。