なんちゃってLaTeX展開器の開発日記

@mod_poppo が作っていた「なんちゃってLaTeX展開器」に関する記録。TeX/LaTeXの話題と、Haxeに関する話題など。
2
mod_poppo @mod_poppo

\newcommand, \renewcommand, \providecommand を実装済み。他は全て未実装。

2016-04-16 02:10:57
mod_poppo @mod_poppo

無限ループは絶対に阻止(強い意志) pic.twitter.com/8Xk54Z6Ih9

2016-04-16 02:11:48
拡大
mod_poppo @mod_poppo

寝る前に作業分をコミットしないと

2016-04-16 02:13:44
mod_poppo @mod_poppo

まだTeXプロセッサーの全貌を理解して作ってるわけじゃないし、完成度を上げていく上で数回の書き直しは必要になりそう(処理対象はTeXじゃなくてあくまでLaTeXのつもりだけど)

2016-04-16 02:24:29
mod_poppo @mod_poppo

昨夜のなんちゃってLaTeX展開器はHaxeというやつで実装してるんだけど、Javaの悪いところとJavaScriptの悪いところを集めたような感じがして辛い

2016-04-16 12:18:05
mod_poppo @mod_poppo

系譜を考えると「ActionScriptの悪いところを集めた」の一言で済むな

2016-04-16 12:18:51
mod_poppo @mod_poppo

代数的データ型&パターンマッチがあるのは高く評価するが、Haskellみたいな強力な言語と比較するとどうしても貧弱な感じがしてしまう

2016-04-16 12:20:22
mod_poppo @mod_poppo

やはり型クラスとモナド構文がない言語はクソなのでは

2016-04-16 12:21:58
mod_poppo @mod_poppo

あと、複数の環境をターゲットにしてて、標準ライブラリが各環境の標準ライブラリを使って実装されてるっぽいけど、ターゲットによって挙動が微妙に違うのが辛い。Write once, debug everywhere を感じる。

2016-04-16 12:23:57
mod_poppo @mod_poppo

Javaはあんまり使い込んだことはないけど、さすがにプラットフォームによって正規表現の動作が違うなんてことはないでしょ

2016-04-16 12:26:24
mod_poppo @mod_poppo

まあ、標準ライブラリを全部実装してたら出力が肥大化するのは目に見えてるからトレードオフなんだろうけど

2016-04-16 12:27:17
mod_poppo @mod_poppo

言語としての「対応プラットフォーム」は9個ぐらいあるみたいだけど、各プラットフォームでのデバッグの手間とかを考えると俺個人のレベルで対応できるのは実際に使う2〜3個程度だと思われる

2016-04-16 12:32:07
mod_poppo @mod_poppo

「Javaの悪いところ」としては、「すべての関数をクラスに押し込めないといけない」みたいなやつを想定しています

2016-04-16 12:38:41
mod_poppo @mod_poppo

昨日のやつ、 \renewcommand で上書きしようとするコマンドが存在するかチェックしてないな d-poppo.nazo.cc/damepo-latex/

2016-04-16 12:44:24
mod_poppo @mod_poppo

俺がプログラミング言語の評価をするときは、Haskellに存在する機能がなかったら減点、みたいな減点方式になる

2016-04-16 13:05:53
mod_poppo @mod_poppo

昨日のこれにこういうのをブチ込むと処理が終わらないように見える(ブラウザ側でタイムアウトする)のは単に時間がかかっているだけだよな?別に再帰の深さのチェックが間違っていて無限ループしてるわけではないよな…? pic.twitter.com/3jEgKts5Ij

2016-04-16 23:58:23
拡大
mod_poppo @mod_poppo

無限ループは怖いけど有限ループも怖い

2016-04-16 23:58:49
mod_poppo @mod_poppo

再帰の深さを制限するだけじゃなくて、展開結果のトークン列の長さも制限した方が良さそうだな

2016-04-17 00:09:31
mod_poppo @mod_poppo

expansion processor と execution processor に相当するクラスを分離した。しかし、 execution processor の役割というのをいまいちよく分かってないのでry

2016-04-17 01:22:58
mod_poppo @mod_poppo

こいつら割と不可分な感じがするし分けて正解なのかはよくわからん。せいぜいメソッド単位(処理ごとに)分けるのでも十分かもしれない。

2016-04-17 01:24:15
mod_poppo @mod_poppo

LaTeXを処理したい場合にどこまでTeXの処理を模倣する必要があるかはよくわからん

2016-04-17 01:25:54
mod_poppo @mod_poppo

途中のトークン列の長さが長くなる場合に対応した d-poppo.nazo.cc/damepo-latex/ pic.twitter.com/iysIow5O8J

2016-04-17 01:38:54
拡大
mod_poppo @mod_poppo

チューリングマシンの計算能力を制限する方向性としてテープの長さを制限するのとステップ数を制限するのみたいなアレを感じる

2016-04-17 01:47:22
1 ・・ 7 次へ