アカウント名:
パスワード:
JSやCSSでこの手のプリプロセッサ作る|使うのは処理系に容易に手を入れられない事情があるから仕方が無しにやってる訳で、決して最善の策ではないと若い人たちにちゃんと伝えていきたい。うちの会社ではrails3系でcoffeescriptが入ったとき素で書くより便利でしょ?で済ませてしまってそのあたりをちゃんと言わなかったら、後にnode使うようになってビルドプロセス含め更にaltjs周りが煩雑になってもこれが当たり前と思われてしまった。
コンパイラでもぷりぷせったでもなくてトランスパイらだと思う
遙か昔はC++でさえC言語にトランスレートしてからコンパイルしていたものです
自分的には実行時エラーのエラー発生場所の情報が変換前ソース基準になってくれるならコンパイラって感じですね。
逆に、実行時エラーの発生位置が「特別な工夫をしなくても」ソースの行番号で求まる実行環境こそインタプリタであり、「特別な工夫をしなくても」ソースとアウトプットのマッピング情報を出力出来る変換系こそプリプロセッサ的だと思う。
C/C++とかはソースとのマッピング情報を構文木の段階でも保持した上でデバッグ用メタ情報としてわざわざ別途出力し、その上デバッガ上で実行時エラーの発生位置をトラップしてマッピング情報を解析した場合にしか行番号出ないのが元々だし。そのくせはC/C++のプリプロセッサ部分は#LINEディレクティブを埋め込む位で楽勝に変換前行番号を埋め込めている。
altJSでも同じで単純な変換であればあるほど行番号のマッピング情報を作りやすいが、がっつり構文解析して出力し直してると解析済みの状態から最適化その他の過程までずっと行番号保持するとかいう処理が必要になる。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stableって古いって意味だっけ? -- Debian初級
プリプロは本来邪悪 (スコア:1)
JSやCSSでこの手のプリプロセッサ作る|使うのは処理系に容易に手を入れられない事情があるから仕方が無しにやってる訳で、
決して最善の策ではないと若い人たちにちゃんと伝えていきたい。
うちの会社ではrails3系でcoffeescriptが入ったとき素で書くより便利でしょ?で済ませてしまってそのあたりをちゃんと言わなかったら、
後にnode使うようになってビルドプロセス含め更にaltjs周りが煩雑になってもこれが当たり前と思われてしまった。
Re: (スコア:0)
あんまりプリプロセッサという意識で使ってる人はいないと思うが。
Re:プリプロは本来邪悪 (スコア:1)
TypeScriptはコンパイラっぽい気がしているが
CoffeeScriptはプリプロセッサな印象がある
Re: (スコア:0)
コンパイラでもぷりぷせったでもなくてトランスパイらだと思う
Re: (スコア:0)
遙か昔はC++でさえC言語にトランスレートしてからコンパイルしていたものです
Re: (スコア:0)
自分的には実行時エラーのエラー発生場所の情報が変換前ソース基準になってくれるならコンパイラって感じですね。
Re: (スコア:0)
逆に、実行時エラーの発生位置が「特別な工夫をしなくても」ソースの行番号で求まる実行環境こそインタプリタであり、
「特別な工夫をしなくても」ソースとアウトプットのマッピング情報を出力出来る変換系こそプリプロセッサ的だと思う。
C/C++とかはソースとのマッピング情報を構文木の段階でも保持した上でデバッグ用メタ情報としてわざわざ別途出力し、
その上デバッガ上で実行時エラーの発生位置をトラップしてマッピング情報を解析した場合にしか行番号出ないのが元々だし。
そのくせはC/C++のプリプロセッサ部分は#LINEディレクティブを埋め込む位で楽勝に変換前行番号を埋め込めている。
altJSでも同じで単純な変換であればあるほど行番号のマッピング情報を作りやすいが、
がっつり構文解析して出力し直してると解析済みの状態から最適化その他の過程までずっと行番号保持するとかいう処理が必要になる。