- 1 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 13:12:25 ]
- 禁止事項【臨時】
・前スレの911自身の書き込み、またそれに関連した書き込みを禁止致します。 (スレが荒れる原因となります) プログラミング言語処理系の開発に興味のある人達のスレッドです。 字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換, CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン, SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化, JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。 意味論に関する話題も歓迎です。 過去スレ 1 pc.2ch.net/tech/kako/981/981672957.html 2 pc2.2ch.net/test/read.cgi/tech/1021136715/ 3 pc5.2ch.net/test/read.cgi/tech/1070089173/ 4 pc5.2ch.net/test/read.cgi/tech/1100097050/ 5 pc8.2ch.net/test/read.cgi/tech/1106129164/ 6 pc8.2ch.net/test/read.cgi/tech/1115335709/ 7 pc8.2ch.net/test/read.cgi/tech/1129287390/ 8 pc8.2ch.net/test/read.cgi/tech/1131273918/ 9 pc8.2ch.net/test/read.cgi/tech/1135082582/ 10 pc8.2ch.net/test/read.cgi/tech/1146844753/ 11 pc11.2ch.net/test/read.cgi/tech/1160879890/ 12 pc11.2ch.net/test/read.cgi/tech/1188688416/ 前スレ 13 pc12.2ch.net/test/read.cgi/tech/1233143342/ 関連リンクは多分 >>2-10 あたり
- 376 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:24:04 ]
- >>375
嘘つくんじゃねーよ ANTLR使い方書いてあるだけの 糞本じゃねーかよ
- 377 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 09:29:24 ]
- 上付きとか下付きとか、マンコの形なんかどうだっていい
- 378 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 09:36:02 ]
- リンクの冒険の話はスレ違いだ
- 379 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 18:41:31 ]
- >>343
> でもCの再解釈分だけオーバーヘッドがある そんな一般論は言えない。
- 380 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 13:36:59 ]
- >>376
たまたまCanalが悪かっただけさ。 つかANTLRで生成されたコード読めばいいだけじゃないか。 それにコードはdmozなりsf.netなり探せばあるだろ。まったく。 Nils M Holm氏による著書 ttp://www.bcl.hamilton.ie/~nmh/t3x.org/zzz/ Parsing Techniquesで知られるDick Grune氏のサイト ttp://www.cs.vu.nl/~dick/ ダウンロード先 : ftp://ftp.cs.vu.nl/pub/dick/ これでもbomb!と抜かすなら自分の力量が足りないか考えることだな。
- 381 名前:デフォルトの名無しさん [2010/02/22(月) 17:10:32 ]
- Aanal ねぇ
- 382 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 15:25:43 ]
- しつもん
Pythonみたいなインデント指向の言語を字句解析・構文解析するアプローチを教えてください
- 383 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 15:36:09 ]
- >>382
lexierでインデントを見て、begin、end的なダミーのスコープ限定子を出力すればいいんじゃね
- 384 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 15:52:22 ]
- >>382
どの言語だか忘れたが、 一旦、インデント数をひとつのパラメータ付き構文要素として、構文木に埋め込み、 これをもう一度構文解析して、構文木を再構成する実装を見たことがある。 実際はステートとして、現在のインデント数を持っておき、 >>383のように、ソースには現れない隠れ構文要素を構文木に構成しながら、 解析するのが簡単だと思う。
- 385 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 21:41:22 ]
- CPythonの実装は>>383みたいな感じのようだね。INDENT, DEDENTっていうトークンが用意されてる。
- 386 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 23:34:26 ]
- indentの逆はででーんとdedentなのか
明日会社で自慢しよう
- 387 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 00:08:22 ]
- インデントでブロック構造なんて信じられない。バグは大丈夫なのか?
- 388 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 00:11:28 ]
- あと、いくらCPUパワーが上がっても、コンパイルスピードと実行スピードが言語仕様のせいで全く上がらない。
Cにキャリー機能を追加してライブラリと最適化を強化する方が良いのでは?
- 389 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 02:00:25 ]
- >>387
だれでも最初はそう思うんだよね でも実際やってみるとほとんど問題ないってわかる
- 390 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 02:05:56 ]
- >>387
ちょっと長めのコードをコピペすると…
- 391 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 02:07:51 ]
- コピペ防止効果もあるのか、いいじゃないか
- 392 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 02:16:34 ]
- コードの移動に支障が出るんだから良い訳無いだろw
- 393 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 02:28:29 ]
- インデントブロック構造はネストしたブロックから抜ける構造の表現に難があるよな。
ネストが深くなるだけの構造だとキレイだけど。
- 394 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 04:21:33 ]
- 例外処理を作るときに、いちいちインデントを気にし、
少しでも気楽にコピペで作るときにインデントを気にし、 良いこと少ないね
- 395 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 04:53:40 ]
- >>389
pretty printできないから嫌い
- 396 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 05:25:30 ]
- >>390-392
pythonはモジュール化が簡単だからそこは問題にならない >>393 try: except: else: finaly: で問題なし >>394 お前の能力が低いことはわかった
- 397 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 07:09:58 ]
- 人間の目には錯覚がある。例外処理もいっぱいある。
さあ、何から議論しようか。坊や。 人間工学か? それとも実行スピードを無視した方法か?
- 398 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 07:16:58 ]
- おれは388だ。Cにキャリーをいれるのが最適のアセンブラに成ると思っている。
- 399 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 07:18:06 ]
- インデントでブロック構造なんて、tab2かw
- 400 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 07:22:30 ]
- 時々このスレがわからなくなる
- 401 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 07:27:11 ]
- 言語を作ることがスレの本分だったな。
ちんこの前のエロゲの言語が本分だったな。
- 402 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 07:28:56 ]
- しかし、9??の言うとおりのコンパイラが発売されたときは、
このスレ、もしかして馬鹿の集まりじゃないかっておもったよw
- 403 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 08:46:14 ]
- しかしコンパイラスレのエロゲコンパイラが発想も実装も凄いよな。本当なら。
- 404 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 08:57:06 ]
- >>398
アーキテクチャによっては無いんじゃなかったっけ? 移植性を落とさないのだろうか
- 405 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 13:02:17 ]
- >>396
コードの字面上の話だから、モジュールは関係無いよ。 コードを書いていて、一つのブロックの行数が多く、ネストも深くなってしまった時に、 処理を別の関数に外出ししようとすれば必ずコピペは発生する物だし、そういう時に インデントの修正は避けられない。 技術の良い面だけじゃなく、悪い面も認められないとね。
- 406 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 13:41:54 ]
- >396
try: except: else: finaly: で回避できるの? ネストしたブロックから抜けるときは依然としてインデントを合わせなきゃいけない気がするけど?
- 407 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 16:04:33 ]
- プログラミング言語の文法には認知科学的な視点も必要さ。
そういう意味ではHaskellとかPerlは基地外。
- 408 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 16:06:31 ]
- PerlはまだかしくもHaskellは問題ない
- 409 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 16:08:30 ]
- まあ何でGoogleがPythonマンセーなのか考えればいい
- 410 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 16:11:15 ]
- pythonはもうちょっとライブラリを整理して欲しい。
せめてリスト操作に副作用ありとなしの関数を両方用意して欲しいな。
- 411 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 16:17:14 ]
- 副作用あり:list.sort 副作用なし: sorted
副作用あり:list.reverse 副作用なし: reversed これでは駄目なのか?
- 412 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 16:17:44 ]
- >>409
全然マンセーじゃないみたいだが… groups.google.com/group/unladen-swallow/browse_thread/thread/4edbc406f544643e
- 413 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 16:26:38 ]
- simple common sense is going to limit Python's applicability
when operating at Google's scale
- 414 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 16:44:34 ]
- >>412
読んだけど、元々速度が要求される場面ではPythonは用いてないと思うし、そもそもそれは憶測の域を出ないよね。
- 415 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 16:51:12 ]
- つ コリンは中の人
- 416 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 16:54:05 ]
- その Google Groups も Python でなかったか?
- 417 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 22:20:22 ]
- >>398
>Cにキャリーをいれるのが最適のアセンブラに成ると思っている。 64bit版TL/1まだ〜?
- 418 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 00:29:23 ]
- > Cにキャリーをいれるのが最適のアセンブラに成る
Cには関数GOTOがないんでいまいち
- 419 名前:デフォルトの名無しさん [2010/02/28(日) 09:00:27 ]
- Multi-entry も無いな
- 420 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 09:05:50 ]
- >>418
関数GOTOってなんだ? setjump, longjump?
- 421 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 09:08:03 ]
- ああ、CALLとかBSRとかGOSUBのことか。いらんな。
- 422 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 09:18:13 ]
- 関数GOTOってtail callのこと言ってると違う?
BASICでいうと GOSUB GOSUB RETURN RETURN こういう入れ子になるのを GOSUB GOTO RETURN ← この RETURN でいっぺんに戻る みたいな
- 423 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 09:20:44 ]
- 関数と関数の間のgotoのことだろ。たぶん。
call a call b ret を call a jmp b ではなくて。これはコンパイラレベルで最適化してくれるよ。
- 424 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 10:02:37 ]
- > ではなくて。これはコンパイラレベルで最適化してくれるよ。
C言語の場合、普通、関数の入り口でフレームを伸ばすので、ごく特殊な場合しか 最適化できないのが普通かと。 関数をまたいだGOTOはGCCなら独自拡張のLabels as Valuesを使ってポインタに してやればできるね。できるってだけで何が起こるかはわからないけど。
- 425 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 10:12:14 ]
- >>424
末尾再帰だけやってくれれば十分。ま、それなら自分でgoto文入れればいいんだけど。
- 426 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 10:35:24 ]
- >>424
え、goto、gosubってbasicじゃなかったの?
- 427 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 11:11:30 ]
- なぁ、C言語の関数をgotoに変換できないかな
- 428 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 11:16:50 ]
- >>427
コンパイラはそうしてるだろ
- 429 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 11:18:55 ]
- え?コンパイラはcallに変換してるんじゃないの?
- 430 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 11:22:56 ]
- >>429
CALLは、PUSHとJUMPの短縮表現 8086に至っては、FAR CALLよりもPUSH JUMPの方が速かった
- 431 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 11:38:27 ]
- enter/leave涙目
- 432 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 11:39:57 ]
- CPS変換すれば全部単にGOTOでOK
- 433 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 14:18:22 ]
- ええっと。
いろんなスクリプト言語に変換できるという機能に特化した スクリプト言語を以前見かけたような気がするんだけど、失念してしまった。 誰か知らない?
- 434 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 14:24:12 ]
- インテルアーキテクチャで語られると悲しくなる
- 435 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 19:39:59 ]
- >>433
この前のエロゲの奴?
- 436 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 19:47:20 ]
- >>435
別人
- 437 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 21:21:13 ]
- >>433
haXe?
- 438 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 21:23:56 ]
- マルチプラットフォーム プログラミング言語 haXe
pc12.2ch.net/test/read.cgi/tech/1238847817/ すごいな、まだ落ちてないでやんの。
- 439 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 21:03:49 ]
- ブラウザが調子悪くて返事遅れた。スマン。
>>438 おー、これこれ! サンクス。 .NETにはまだ対応しないんかのう。 ゲームの演出スクリプトをコンバートして.NET FrameworkのDLLにコンパイルするシステムを作ったはいいが、 自動生成して巨大化したクラスの読み込みに秒単位で時間かかって意味ない罠。 まさかJITコンパイラがパフォーマンスの足をひっぱるとは思わんかった。 インタプリタ実装に逆コースだな……とほほ。
- 440 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 21:12:55 ]
- ブラウザの長子とかじゃなくて、2chが攻撃喰らってたせいだな。
- 441 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 22:05:32 ]
- >>439
つ ngen
- 442 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 04:26:47 ]
- >>439
その用途だと中間言語コンパイラが一番だと思うが。 前スレのエロゲプログラマみたいに一瞬でコンパイル出来るのならインタプリタでも良いが、 前方参照とか、テキストでやってるとホットスポットになるぞ。
- 443 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 20:43:52 ]
- >>439
LCG使えば速いよ 直接IL吐かなくてもDLRのExpression Tree使えば超簡単に使える
- 444 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 21:09:52 ]
- >>442
>>443 ううーん。C#+DLR単体で開発してるならともかく、IronPython込みで使ってるので IL吐かせたってほとんど意味が無いんだ。 どうせならPythonスクリプトを吐かせて直接実行させた方が早い、ということになる。 いずれにせよクラスの実体の読み込み時にJITコンパイルが実行されて、 しかもコード自体はガベージコレクションされないと来た。 大元のスクリプトから比べたら、JIT化されたコードって5〜6倍のサイズになってるんだぜ。
- 445 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 21:24:38 ]
- じゃあ普通に実行時に必要な分だけ直接スクリプトからコンパイルしたら?
IronPythonだったらプリコンパイルしたってどうせランタイム同梱しないと動かないでしょ それならコードはちゃんとGCされるし
- 446 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 22:06:30 ]
- >>445
それはインタプリタと一体どう違うのよ。
- 447 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 22:32:09 ]
- >>446
ILにコンパイルされたあとJITで実行されるから実行速度はDLLにプリコンパイルしておくのと変わらない 動的にコンパイルするなら一度に全部読みこむ必要はないからILへのコンパイルのコストも そんなに問題にはならないんじゃないかな
- 448 名前:444 mailto:sage [2010/03/03(水) 22:37:04 ]
- 議論どうもありがと。
今のところ、構造化したデータをシリアライズしてDBに入れておき、 読み込み時にデシリアイズしながら固定的なコードで動けるようにしようと思ってる。 元々自動生成してたコードは非常に定型的なものだったからね。
- 449 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 23:49:08 ]
- >ゲームの演出スクリプト
ずいぶん前にコンシューマ用で同じような事をした そのときはメモリのフットプリントを最小にするのが目的だったのでスクリプト->バイトコードコンパイラでバイトコードインタプリタを実装って方式だった バイトコードの環境をPC上でエミュっておくとスクリプターのコンソールでテストやデバッグができるので開発時間の短縮もできた 今時のマシンだったらその場でコンパイルしても良いのじゃないかとおもったりするんだけどどうなんだろう?
- 450 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:00:29 ]
- >>449
用途に応じてコンパイラを作り直せば、 1つのゲームスクリプトでマルチプラットフォームに対応できる。 今回はPC向けだからRDB化するけど、DS向けとかだったら バイトコードっぽくコンパクトなバイナリ構造にするのがいいと思う。 もちろんコンパイラもコンパイルされたスクリプトの実行環境も 全部自分で用意するんですがねorz
- 451 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:25:58 ]
- クラウドコンパイラがあれば
全て解決するらしいし 難しいことを考えるのはバカが 頭のいいところを見せようとしているだけだな
- 452 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 01:51:15 ]
- ブラウザの皮をかぶってシンクライアントの復活か。
- 453 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 02:13:34 ]
- ゲームなんぞ、適当なバイトコードインタプリタを作れば十分そうだが
- 454 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 02:24:32 ]
- そそ、if elseif else endを実装して、
表記式も簡略化して、r20>=10とかr5==r10だけにして、 式もLET、or、not、sub、add、sto、lodの命令にしちゃえば楽。 評価式と式は逆ポーランドで書けるようにしても、そんなに大変じゃない。
- 455 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 03:26:06 ]
- >>454
それじゃBASE-x86や。
- 456 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 05:25:11 ]
- うちのプロデューサーが簡単にコンパイラの拡張を要求してきたよ。
マクロを実装して欲しいとのことだが、MASM並の者を要求してきてる。 プログラマ上がりのプロデューサーだから仕方ないが、 MASM並のマクロがどれだけ大変か分かっていない。 文字セットの問題もあるし。ヘタに知識があると手に負えない。 しょうがないのでダメ元でこの前のエロゲプログッラマにプリプロセッサのソースを 売って貰えないか聞いてる最中。
- 457 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 06:41:25 ]
- macroもmasm以上の仕様で、こんなの作れるかって言ってやった。
コンパイルスピードは5万行を1秒だってさ。
- 458 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 19:29:52 ]
- ソースを貰えたのだけど、アセンブラ部分が多くて読めない。
マクロも先読みして展開を繰り返している。 凄く速い。50万行1秒くらいのコンパイルスピードだった。 とにかく凄い。このまま自社用に改造していただけるか交渉中。
- 459 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 19:37:00 ]
- YOUはどうして交渉中なのにそんなことをペラペラしゃべってるんですかと小一時間
- 460 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 21:29:06 ]
- あなたの会社は先方と守秘義務契約を結んでいないのですかと小一時間
- 461 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 21:33:55 ]
- エロゲ会社のPGにそんなモラル期待するなよ
- 462 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 22:31:37 ]
- 過剰な性能だ。
C#のように機械的に処理できる定型的な構文を用意して 分割コンパイルできるように考えるのが本道なんじゃないか。
- 463 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 22:35:36 ]
- 何で C Sharp?
- 464 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 22:39:54 ]
- >>462
> C#のように機械的に処理できる定型的な構文を用意して 意味分からん
- 465 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 22:53:31 ]
- 特にC#って相当複雑な部類じゃないか
- 466 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 22:58:51 ]
- んん、C#のコンパイルは相当高速だぞ。
アセンブラなんかでカリカリにチューンするのが大事なのではなく、 コンパイルしやすい構文を用意することが大事だ、ということ。
- 467 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 23:08:06 ]
- 類似のほかの言語に比べてC#がコンパイルしやすいってことはないでしょ
コンテキストキーワードだらけだし
- 468 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 23:28:53 ]
- パーサを書いたことのない人の発言。
- 469 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:12:08 ]
- ヒント:C#はTurboPascal出身
- 470 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:16:48 ]
- Mono のC#コンパイラのコードを見ればわかるが、レキサー、パーサーだけでも大そうなことになってる。
パースが簡単なのは、PASCALやBASIC、LISP。
- 471 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:28:39 ]
- varという名前の型が存在したらvarがキーワードじゃなくなったりするんでしょ
- 472 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 01:04:27 ]
- 演算子の優先順位を変えられるのって、haskellだっけ?
普通じゃないっぽいけど、実装は簡単なの?難しいの?
- 473 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 01:12:09 ]
- 優先順位毎に演算子のリストを持って、ソースコード中に演算子を見つけたら
その都度マッチングすれば良いだけじゃないの。
- 474 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 01:42:10 ]
- パーサーはともかく、レキサー(っていうの?)が複雑なのはいやだなぁ。
あー、あれか?途中でSQLやXMLなどが書けるからとか?
- 475 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 02:12:19 ]
- スマン、興奮しすぎて秘酒義務を守らなかった。
あと、俺はエロゲじゃない。 macroは#define程度にして自分で作ることにした。
- 476 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 02:14:31 ]
- 秘酒義務->守秘義務
ゴメン間違えた。
|

|