TL-1のさらなるコンパクト化
(1)
- tl1cでTL-1を13行も削減したわけですが、ではTL-2はもっと短く高速にできないのでしょうか。・・・もちろんできます。
- 手法としては基本的に同じで、たとえば「18」という文字列も18という定数を意味するのではなく、18という初期値が入った変数だとみなします。そのほか、区別するのが面倒ですし特に大きな問題もないので、「+」や「;」や「print」なども変数してしまいます。ただしこれらは正常なプログラムを実行している限りにおいては一度も参照されません。
- text0002では、様々な文字種を自由に設定したり変更できたりするために、isNumber()、isAlphabet()、isSymbol()、isSymbol1()を定義して使ってきましたが、この仕様だと行数を食うので、isAlphabet()を除いて残りすべてはlexer()内に展開してしまいました。
- これにより、TL-2cは104行まで削減されます。
- ここまでのまとめ
| オリジナル | c版 |
| TL-1 | 65行 | 52行 |
| TL-2 | 65行 | 52行 |
こめんと欄