TeXのセマンティクスは(プログラミング言語として)これまでに公式化されていますか?

$ TeX
$で使われているマクロ言語は、何らかの種類の書き換えシステムや名前によるスコープ指定のプログラミング言語のように見えるかもしれません。

最近の$ TeX $エンジンの実装(例:$ mathit {Xe} TeX
$)は、コードを直接的に解釈しますが、現代の最適化インタプリタのように、実行を最適化しようとする試みは認識していません。 。しかし、$
TeX
$のような言語の正しい最適化パスを考案することは、マクロの再定義が持つことができる「遠くの行動」と、名前で呼び出すことによってマクロを再定義することができるため、非常に困難になります。

だから$ TeX $の仮説最適化インタープリタを実装することは実際には非常に難しい問題ですが、$ TeX
$は数学と科学のすべてで使われ、遅いコンパイル時間はシステムの既知の欠点なので非常に便利です。特に、計算量の重いパッケージ(
tikz
など)が使用されている場合は、実際の組版を計算するのではなく、コードの解釈に費やされることに注意してください。

多分言語の正式な意味論が問題に取り組むための始まりかもしれない。それで、$ TeX
$プログラミング言語のセマンティクスは正式化されましたか?

ベストアンサー

いいえ、私の知るところでは、興味のある種​​類のTeXを正式化する作業はありませんでした。

(以下は主観的で個人的な解説である)。私はそれが興味深く、よくポーズされたアイデアだと思うし、それを使って最適化を実行するあなたのモチベーションは合理的だと言えます

別の関連する質問は、解釈を高速化するためにバイトコードフォーマットを定義できるかどうかです。一方、このアイデアには2つの欠点があります。

まず、言語セマンティクスが構文解析と密接に関連している可能性があるため、最適化の可能性が大きい(例えば、どのような種類のプログラム保存型変換が計算を高速化できるかなど)文字の流れ、したがって最適化に適した中間表現の設計にあまり適応していない。

第二に、TeXの解釈速度の改善の必要性は十分に確立されていません。ハードウェアの改良により、バッチ速度の構築速度は妥当なままです。複雑なグラフィックスパッケージ(ビーマープレゼンテーションにはかなりの時間を要する)、豊富な計算を埋め込んだパッケージ(しかし別の言語が適しているかもしれない)、即時のユーザーフィードバックのための高速再構築が必要なケースがあります最適化ではなくインクリメンタル性がポイントになる可能性があります。正式なセマンティクスはインクリメンタルな実装についての理由にも役立ちます)。

言い換えれば、これは楽しい、教訓的な話のように聞こえるが、仕事をするための実用的な正当性が強いことは私には分かりません。誰かが好奇心からそれをやることに興味があった場合、それは素晴らしい冒険のように聞こえるが、それ以外の場合、エンドユーザーが求める影響がより強い同じスキルセットを採用する他の方法があるかもしれない。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です