[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 09/22 11:46 / Filesize : 280 KB / Number-of Response : 902
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

■吉里吉里/KAG/TJS雑談質問スレ■その15



679 名前:名前は開発中のものです。 mailto:sage [2008/10/19(日) 14:59:28 ID:Fd004zXJ]
>>678
ちょっと解説しとくと、「パーサ」ってのは、テキストでかかれたTJS2 を内部形式に変換する部分。
パーサが変換したあと、TJS2の実行部分(VM) がそれを解釈して実際のデータやらファンクション
やらになるのが本来の流れ。

(const) をつけると、そのパーサが、その後ろは定数だってことで、あらかじめ配列やら辞書やらを
最終的な形まで組み上げてしまう。パーサはC++で組まれているのと、定数ってことで変数を参照したり
する処理がいらないのでその分軽いわけ。あと逐次処理なので、実質結果分のメモリだけあればいい。
VMで処理すると、VMが処理してる間、元のデータ構造も全部持っておく必要があるので、単純に倍の
メモリが必要になるし、実行時間も余分にかかる。だから、
良く使う定数データの配列/辞書はコードの中でも (const) つけておいたほうがちょびっと軽い。小さいと誤差の範囲だけど。

そこでかかれてるサンプルだと hensuu2 は変数であって定数じゃないからエラーになる。
var a = (const)[1,2,(const)[1,2,3]]; // 定数だけなのでOK
var b = (const)[1,2,a]; // 変数まざってるのでパーサで処理できないのでNG(文法エラー)
var c = (const)[1,2,[1,2,3]]; // これも内部の [1,2,3] が定数になってないのでダメ

マニュアル的には「トークン」の項目の、「数値即値」「文字列即値」「オクテット列即値」および、
それらだけで構成されて (const) をつけて定数化した辞書/配列がOK。
「@つき文字列即値」はVMによる解析が必要なのでダメ。






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<280KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef