1 名前:デフォルトの名無しさん [2005/12/20(火) 21:43:02 ] プログラミング言語処理系の開発に興味のある人達のスレッドです。 字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,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/ 関連リンクは多分 >>2-10 あたり
722 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 22:39:38 ] A ← BC | DE を A is defined as BC or DE と読んじゃいけないのかよ。
723 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 22:42:22 ] >>722 いいよ別に。咎めはしないけど真似してくれる人は少なそうだね。
724 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 22:43:50 ] >>722 それを流行らせてくれ!!
725 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 22:50:30 ] っていうか矢印の向きなんてどーでもいいし。 矢印以外の記号だって使われるわけだし、勝手にしろとしかいいようがない。
726 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 23:04:18 ] そんなに揉めるくらいならこっちを指せばいい A m9(^Д^) BC | DE
727 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 23:11:11 ] >>726 ワロタw でも、確かに代入文とかも A=B+C は A->B+C とは書かんな どうみても A<-B+C だな。
728 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 23:12:03 ] A ブギャー BC or DE と読むのか。勢いがあって好いな。
729 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 00:23:11 ] A pgr BC or DE なんかよく分からんが格好良いぞ
730 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 12:21:57 ] yaccやbisonでは、演算子の順位を指定することができますが、これもLALR(1)で必要なのでしょうか。 コンパイラの本を読むと、LALR(1)の説明では生成規則しか使わず、演算子の順位を含めたaction表やgoto表の作り方は特に書いてないように思います。 もしかして、yaccやbisonではLALR(1)と演算子順位解析法との併用なのかなと思ったりするんですけど、どうなんでしょうか? なお、やりたいことは自前で簡単なパーサジェネレータを作ることです。LALR(1)のアルゴリズムを勉強しているんですが、演算子の順位がまるででてこないので、どうやるんだろうと疑問に思ってます。
731 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 12:30:17 ] >>730 コンフリクト時にシフト/還元のどれを選択するかでうまいことやっている。 ドラゴンブックに説明があったかもしれない。
732 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 20:02:39 ] >>730 > もしかして、yaccやbisonではLALR(1)と演算子順位解析法との併用なのかなと思ったりするんですけど、どうなんでしょうか? そうです。 expr → expr + expr | expr * expr っていう生成規則はLALR文法ではないけど使えた方が便利でしょ。
733 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 23:20:04 ] >>726
734 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 23:52:42 ] bisonってGLRにならなかったっけ?
735 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 09:18:24 ] bisonの入力になりえる文法はGLRだろうけど(自信なし)、あいまいさを解決するアルゴリズムが違うからパースした結果が変わっちゃうんじゃないの? GLRはshift/reduceコンフリクトでreduceを優先するから、あいまいなぶらさがりelseが遠い方のifにくっついちゃう。
736 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 10:42:50 ] >GLRはshift/reduceコンフリクトでreduceを優先 ちがうよー。 コンフリクトでshiftとreduceの両方追いかけるのがGLR。 >>734 GLRもできるけど>>732 をGLRで扱うと +の優先度が高い場合の構文木と*の優先度が高い場合の構文木の 両方を解析結果として得る話になるから、 演算子の順位指定の話とはからまないと思われ。
737 名前:730 mailto:sage [2006/03/11(土) 22:13:54 ] >>731 ,732 どうもありがとうございます。 けっこう複雑なことやってるんですね。 作るの自信なくなってきたな。。。
738 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 01:08:18 ] がんがってくれい なせばなるよ
739 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 23:28:26 ] 既に慣れてしまってる方ばかりだろうが、 還元ということばに違和感を感じる自分。 どうせなら、還元よりも換言だとおもう。
740 名前:デフォルトの名無しさん mailto:sage [2006/03/13(月) 02:55:26 ] それだと向きを含意しないから、reduceの語感が出ないなあ。
741 名前:デフォルトの名無しさん mailto:sage [2006/03/13(月) 03:37:22 ] これはなかなか面白い (厭味じゃなくて) >>739 は明治時代辺りに生れてればよかったのに
742 名前:デフォルトの名無しさん mailto:sage [2006/03/13(月) 03:58:25 ] コンサバって何?
743 名前:デフォルトの名無しさん mailto:sage [2006/03/13(月) 04:00:45 ] 松平健が歌ってるヤツだろ。
744 名前: mailto:sage [2006/03/13(月) 08:44:18 ] しってる言語はJavaなんでJavaのバイトコードに変換する本当に簡単なコンパイラ?つくりたいんですが、古い本でも大丈夫ですか? Programming for the Java(TM) Virtual Machineって本見つけたんですが1999年出版なんです。バーチャルマシンの仕様とかは変わってないのですか?
745 名前:デフォルトの名無しさん mailto:sage [2006/03/13(月) 09:32:08 ] 検索すれ。 The JavaTM Virtual Machine Specification, Second Edition java.sun.com/docs/books/vmspec/ 同 Maintenance Page java.sun.com/docs/books/vmspec/2nd-edition/jvms-maintenance.html
746 名前: mailto:sage [2006/03/13(月) 22:17:19 ] >>745 どうもありがとう。
747 名前:デフォルトの名無しさん [2006/03/17(金) 23:50:51 ] >>726 1から見てみたが、お前のレスが一番ワロタw
748 名前:730 mailto:sage [2006/03/18(土) 08:20:23 ] C言語とかで、'*' や '&' がポインタ演算だったり四則演算だったりビット演算だったりするけど、 このように1つの記号が複数の意味を持つ場合、字句解析で別のトークンを返さないといけないのでしょうか。 それとも構文解析時に判断できるものなのでしょうか。 例えば仮引数に *p とあれば、これはポインタを意味するための * であり、四則演算ではないとすぐにわかります。 しかし、*p1 * *p2 などとあった場合、ひとつの式の中でポインタを表す * と四則演算を表す * とが混じってるんですけど、こういったものはどうやって別物であると判断しているのか不思議です。
749 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 11:05:59 ] >>748 字句解析では区別せず、構文解析で判定する。 教科書で、-1 - -2 のような式を扱う例を探してみて。
750 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 13:14:58 ] 前置子やね
751 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 13:27:13 ] そういうやり方をするから、vector<vector<int>>がコンパイルできなかったりするw
752 名前:http://www.vector.co.jp/soft/win95/util/se072729.html [2006/03/18(土) 19:03:18 ] TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
753 名前:デフォルトの名無しさん [2006/03/18(土) 19:50:35 ] なぜ、関係演算子は結合を持たない例が多いんだろうか? 単純に 3<=x<99 とか書けてもいいとは思うんだが、
754 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 19:58:12 ] C がそうやってるから右に習えだと思う
755 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 20:00:44 ] 10 < x >= y < 20 <= z > 0 とかあったら何なんだか困るじゃん Lispだと (< 10 x 20) とか書けるけどね
756 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 20:02:06 ] 演算子で思い出したけど おれは perl の =~ を代入演算子だとばっかり思ってたから $a =~ s///; はいいけど $b =~ m//; の意味がわかんなくなって混乱してた…
757 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 21:14:54 ] >>754 とりあえず、C で 3<=x<99 はコンパイル通るぞ。
758 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 21:18:53 ] コンパイル通るから何?
759 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 23:30:10 ] >>752 いっぺん死ねって書いてもよまねぇだろうな(w
760 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 23:51:40 ] >>753 確かに Mathematicaは書ける、って言うか書けないと数学ソフトだし不便すぎる。
761 名前:デフォルトの名無しさん mailto:sage [2006/03/19(日) 02:21:26 ] スタックマシンでスタックが溢れそうな時、スタックを reallocするのと 別に領域を確保するのとではどっちが一般的ですか? 前者はスタックが一つの領域でないといけないのと reallocのコストが欠点で、 後者はフレームの削除などを絶対アドレスで指定しないといけないので 継続を作る時にちょっとめんどくさいのが欠点だと思います。
762 名前:デフォルトの名無しさん [2006/03/19(日) 20:27:31 ] >>760 へぇ、書ける言語あるんだね。しらなんだわ
763 名前:デフォルトの名無しさん [2006/03/19(日) 21:19:10 ] おそらく専用でない一般高級言語だと、Rubyあたりが実装しそうな木ガス
764 名前:デフォルトの名無しさん mailto:sage [2006/03/19(日) 21:19:29 ] Pythonがそうだった記憶がかすかに
765 名前:デフォルトの名無しさん mailto:sage [2006/03/19(日) 21:21:33 ] >>761 おれなんかは自家製超高速malocを作ってダブルリンクリストでスタック作ってます。 スタックに無茶な要求するにはこれが一番かなとか思ってたりします。 >>762 おれは、例外を作ってもこの表現ができるべきだと思うのですが、みんなどう思っているのだろうか? 絶対見通しいいとおもうんだけどな・・・
766 名前:デフォルトの名無しさん mailto:sage [2006/03/19(日) 21:27:41 ] ダブルリンクリストだと継続が困らないか? (スタックがツリーになるから) 継続使わないならシングルリンクリストでも良さそうだが。
767 名前:デフォルトの名無しさん mailto:sage [2006/03/19(日) 21:28:42 ] >>766 ダブルでないと削除がややっこしいです。
768 名前:デフォルトの名無しさん mailto:sage [2006/03/19(日) 22:30:25 ] 単なる好奇心だけど、途中のスタックフレームを削除したいってどういう場合ですか?
769 名前:761 mailto:sage [2006/03/19(日) 23:11:42 ] セグメント、オフセットを使えば相対アドレスでもスタックを分割できることに 気づきました。 >>765 セグメントテーブルをリストにするってことでしょうか? 最初からセグメントテーブルのサイズを決め打ちして配列にしても良い気がします。 リストだとアクセスにコストがかかりますし。 確かに途中を削除するっていうのならリストの方がいいですが、どういう状況なんでしょうか。
770 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 13:38:41 ] >>765 ヒープへの参照をスタックに積んでスタックそのものは小容量ですまそうって方向じゃないんだ?
771 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 19:01:49 ] 無知な俺が、話ぶった切って恐縮ですが リフレクションってどんな構造で作るの? javaぐらいみっちり仕込まないと不可能?
772 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 19:54:37 ] >>771 例だけど、 scheme(L)でscheme(L')インタプリタを書いて、L'からLを操作したり、L'自身の環境情報などを 取得できるように作る。このときL'からLをいじったことによってL'の動作に影響が及ぶことを causal connectionという。 言語、用途により様々だけど、メタレベルに何を求めるのかで、実装や仕様が変わると思う。
773 名前:デフォルトの名無しさん mailto:sage [2006/03/21(火) 20:59:46 ] >>771 どんな構造っつーか、単にオブジェクトやクラスに関する情報を、実行時に取り出せる(アクセスできる)仕組みを用意するだけ。 ただそれだけだから、あんまり構造がどうとか悩まなくていいよ。 リフレクションの仕組みや構造について考えるなら、まずは言語の仕組みについて知らないと。 それがわかれば、リフレクションの仕組みはおのずとわかる。
774 名前:デフォルトの名無しさん [2006/03/23(木) 14:28:00 ] dl2.n1e.jp/DATA/MOVIE/1140722907/1140722907.jpg
775 名前:デフォルトの名無しさん [2006/03/26(日) 10:03:01 ] 助けてください。 ↓こんな文章があって要はfortran90でない場合一番下のfcに何か入力しろという意味だと思うのですが、 なんと打ちこんだらよいのですか?fortran77なので打ち込まないといけないのはわかっているのですが、 全くこのあたりの知識がないのでわかりません。 -------------------------------------------------------------------- #if your machine's fortran compiler command is not "f90", need to set # # the following macro to adjust. # --------------------------------------------------------------------- FC=
776 名前:デフォルトの名無しさん mailto:sage [2006/03/26(日) 10:23:11 ] >>775 Format C:
777 名前:デフォルトの名無しさん mailto:sage [2006/03/26(日) 10:53:15 ] FORTRAN より C
778 名前:775 [2006/03/26(日) 13:29:06 ] ありがとうございます。 ですが入力してもだめでした。 そこで方向転換してfortran90のコンパイラをインストしたいのですが、 どこに転がっているのですか? windowsです。
779 名前:デフォルトの名無しさん mailto:sage [2006/03/26(日) 17:44:13 ] 書いてあるとおりのことすればいいじゃねぇかよ。 それともネタですか?>>775
780 名前:デフォルトの名無しさん [2006/03/26(日) 17:47:03 ] FC=f77 じゃあかんの?
781 名前:デフォルトの名無しさん mailto:sage [2006/03/27(月) 07:31:07 ] ポインタ操作のできるスクリプト言語作りたい そゆーの既にある?
782 名前:デフォルトの名無しさん mailto:sage [2006/03/27(月) 07:40:26 ] CINT?
783 名前:デフォルトの名無しさん mailto:sage [2006/03/27(月) 08:23:08 ] すごい久々にCINTスレのぞいてみたら、まだ落ちてなかったw C/C++インタプリタ CINT pc8.2ch.net/test/read.cgi/tech/1114397934/ CINTの需要自体はちと薄そうな印象。 もしもありとあらゆるCのライブラリが元のC言語の文法と比べて違和感なく全て呼び出せたらはやりそうなもんだけどな。
784 名前:デフォルトの名無しさん mailto:sage [2006/03/27(月) 12:53:33 ] >>775 訳してみた。 ------------------------------------- #手持ちのマシンにおいて、Fortranコンパイラのコマンドが "f90" でない場合は、 #次のマクロを設定する必要があります。 ------------------------------------- FC= つまりだな、Fortranコンパイラのコマンドが例えばf77とかだったら、 FC=f77 と設定すればよい。 これ以上はスレ違いだから質問はやめたほうがよい。
785 名前:デフォルトの名無しさん mailto:sage [2006/03/28(火) 03:57:44 ] とある対話型計算ソフトの入力行を横取りして先に字句構文解析したいんだけど perlだとParse::RecDescentがメジャーなの? 代入と()のネストくらいを1行ずつ処理できればいいので手で書いてもいいけど 昔yacc+bisonで遊んでたときみたいにまたBNF触りたくなった 割鶏焉用牛刀だが
786 名前:デフォルトの名無しさん mailto:sage [2006/03/28(火) 12:29:49 ] >>785 yacc+bisonの経験あるなら、kmyaccはどう? yaccの書き方そのままで、perlやjavaやjavascriptが使える。
787 名前:デフォルトの名無しさん mailto:sage [2006/03/28(火) 14:31:40 ] ひとつ聞きたいんだけど、 2型言語の任意の位置に [] の組を挿入できるようにした文法って1型言語? 例えば 1+2 を変化させた 1[+2] とか [1+]2 とかを許容する文法なんだけど……
788 名前:デフォルトの名無しさん mailto:sage [2006/03/29(水) 02:59:38 ] >>785 入力が小さい場合は Parse::RecDescent が手軽だね。外部ツールにくらべると 手軽さが違う。
789 名前:デフォルトの名無しさん mailto:sage [2006/03/29(水) 07:51:32 ] >>786 >>788 情報ありがと。しかし構文解析久しぶりで大分忘れてるわ。
790 名前:デフォルトの名無しさん [2006/03/31(金) 18:10:09 ] よく、他言語のライブラリとか呼べる言語があるけど、 あれって事前に呼ぶ関数名を全て列挙して組み込んでるのですか?
791 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 18:19:49 ] 普通マーシャリングしてるだけじゃないか
792 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 21:28:55 ] それは結局の所、「事前に呼ぶ関数名を全て列挙して組み込んでる」のでしょうか?
793 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 21:31:42 ] 事前にわかんない場合はどうしてるんだとか思わないのか
794 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 21:32:21 ] 違う
795 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 21:34:54 ] そういうのもあるし、そうじゃないのもある。
796 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 22:29:35 ] LALR(1)の文法をLL(k)に変えることって可能ですか?
797 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 22:51:20 ] >>793 事前にわからない場合でも呼べる方法ってありますか?
798 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 23:00:22 ] >>797 cvs.sourceforge.net/viewcvs.py/sbcl/sbcl/src/runtime/x86-assem.S?rev=1.32&view=auto call_into_c の部分とか。C なら引数とか戻りアドレスとか用意して call すれば良い。 あとは dlsym() とかを調べる。
799 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 23:42:34 ] むむ、アセンブラですか! orz
800 名前:デフォルトの名無しさん mailto:sage [2006/03/32(土) 00:22:44 ] いや、単なる例として出しただけだから...
801 名前:デフォルトの名無しさん mailto:sage [2006/03/32(土) 02:40:22 ] 引数の積み上げ方と呼出し後の処置さえ合ってればいんだから 簡単だろ
802 名前:デフォルトの名無しさん mailto:3/32 [2006/03/32(土) 06:02:31 ] >>796 規則を増やして左再帰を消去して左括り出しするとか地道な方法しかなさそう(自動化するツールもあるのかな?)。 それで衝突が起こるならその文法がそもそもLLじゃない可能性もあるので、文法自体を修正する。 ちなみにLL文法ってLALR文法のサブセットだっけ? LL(∞)⊂LR(1)は確かだったと思うけど、LR(0)は微妙だったような気が。 誰か教えて。
803 名前:デフォルトの名無しさん mailto:sage [2006/03/32(土) 14:03:32 ] >>790 ,799 その言語のソースを読んでみようとは思わないのかな。 xyzzyのdefine-dll-entryとかRubyのdlモジュールはC++/Cだった。
804 名前:デフォルトの名無しさん [2006/04/03(月) 21:46:49 ] コンパイラを書くのにオススメな言語を教えてください。 最近は、海外では関数型言語で書くのがはやっているみたいですが・・・ OCamlとか。 自分の一番慣れている言語!というのはなしの方向で。
805 名前:デフォルトの名無しさん mailto:sage [2006/04/03(月) 23:54:21 ] >>804 yaccがあるからC! とか、JavaCCがあるからJava! ってのもなしの方向で?
806 名前:デフォルトの名無しさん mailto:sage [2006/04/03(月) 23:57:15 ] ある程度以上メヂャーな言語なら、hogeCCの類いは存在するからねえ。
807 名前:デフォルトの名無しさん mailto:sage [2006/04/03(月) 23:58:13 ] >>804 自分で作った言語でコンパイラ書くのがおすすめ
808 名前:デフォルトの名無しさん mailto:sage [2006/04/04(火) 00:26:28 ] 誰も使わないけどな。
809 名前:デフォルトの名無しさん mailto:sage [2006/04/04(火) 00:46:06 ] elisp みたいな組み込み言語にすればオケ emacs 程の神アプリじゃなくても、ちょっと気の利いたツールの拡張言語にすれば それなりにユーザを獲得出来るんじゃない。
810 名前:デフォルトの名無しさん mailto:sage [2006/04/04(火) 00:59:31 ] そういえば、情報処理学会の会誌でコンパイラの連載始まるみたいね。 COINS使うらしい。
811 名前:デフォルトの名無しさん mailto:sage [2006/04/04(火) 01:17:00 ] >>809 設計思想による
812 名前:デフォルトの名無しさん [2006/04/04(火) 01:28:00 ] >>807 そこまでいければ苦労しないw と思ったけど、それもいいな。 GCCみたいに、最初はどこでもコンパイルできるミニマムなCでコンパイラを生成して、 そのコンパイラで自分自身をまたコンパイルして・・・と。 そういえば、マルチプラットフォームなコンパイラつくりたいと思ったら、 やっぱり、GCCのフロントエンド作るのが正解なんかね。 最初見たとき、中間言語がわけわかめだった。 他に方法ないすか?
813 名前:デフォルトの名無しさん mailto:sage [2006/04/04(火) 08:29:54 ] >>812 >他に方法ないすか? お前の知能じゃドレもムリ。 大人しくHSP使ってろ
814 名前:デフォルトの名無しさん mailto:sage [2006/04/04(火) 11:20:41 ] HSPならできるんですか?
815 名前:デフォルトの名無しさん mailto:sage [2006/04/04(火) 15:35:54 ] つまり、HSP最強
816 名前:デフォルトの名無しさん mailto:sage [2006/04/04(火) 17:24:17 ] はいはいわろすわろす
817 名前:デフォルトの名無しさん mailto:sage [2006/04/04(火) 18:56:18 ] >810 COINSはいつJavaに対応するのでしょうか? 図には書かれているのに…
818 名前:デフォルトの名無しさん mailto:sage [2006/04/05(水) 13:09:14 ] >>817 一応あるみたい。 www.coins-project.org/COINSdoc/frontend/index.html#i-5-1-3 これ以上まともにJavaに対応することには、 苦労に見合うだけの学術的な意味がないからなあ。
819 名前:デフォルトの名無しさん mailto:sage [2006/04/05(水) 18:50:53 ] >818 > Javaのフロントエンドは以下の方針で開発しているが、デバッグ中であるので、 > リリース版にはまだ入っていない。 だから公開はされてないんですね。いつからデバッグしてるのかちょっと不安…
820 名前:デフォルトの名無しさん [2006/04/11(火) 18:25:41 ] >>818 参考になります。 ただ、自分の目指しているのは型なし&プロトタイプ指向ですので、やっぱりちょっと ポイントが違うようですね。まあ、その違いを見るのも楽しいですが。
821 名前:デフォルトの名無しさん mailto:sage [2006/04/11(火) 18:54:36 ] なぜ>383
822 名前:デフォルトの名無しさん mailto:sage [2006/04/16(日) 21:51:35 ] どこかにJavaでかかれたCの処理系とかない? 自分で作ろうかと思ってるんだけど、結構大変そうだし。 自作するならSableCCあたりで作ろうと思ってる。 ASTを作るまでは楽だろうけど、その後が...。