- 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 あたり
- 822 名前:デフォルトの名無しさん mailto:sage [2006/04/16(日) 21:51:35 ]
- どこかにJavaでかかれたCの処理系とかない?
自分で作ろうかと思ってるんだけど、結構大変そうだし。 自作するならSableCCあたりで作ろうと思ってる。 ASTを作るまでは楽だろうけど、その後が...。
- 823 名前:デフォルトの名無しさん mailto:sage [2006/04/17(月) 01:13:49 ]
- www.coins-project.org/
- 824 名前:デフォルトの名無しさん mailto:sage [2006/04/17(月) 12:07:17 ]
- >>823
どうもありがとう。学習支援用にインタープリタでも作ろうかと思って。
- 825 名前:デフォルトの名無しさん mailto:sage [2006/04/17(月) 20:22:45 ]
- >>823
情報処理学会誌、今日家に届いたよ。
- 826 名前:デフォルトの名無しさん mailto:sage [2006/04/17(月) 21:48:30 ]
- >>825
家にも来た。 情処会員相手ということで 初心者本や教科書なら必要な噛み砕いた説明がないから 読むほうとしては面白いことだけさらっと読めていいね。 3月までの連載は www.ipsj.or.jp/07editj/promenade/index.html で見れるから、コンパイラの連載も誰でもダウンロードできるようになるかもね。
- 827 名前:デフォルトの名無しさん mailto:sage [2006/04/17(月) 22:43:38 ]
- 学会誌見るまでCOINSなんて知らなかった。
- 828 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 12:14:03 ]
- >>822
構文解析だけなら、JavaCCやANTLRなら有志によってCの文法定義ファイルが用意されている。 Cだけじゃなくて、JavaやXMLも用意されている。 JavaCCやANTLRのサイトをのぞいてみて。
- 829 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 12:26:48 ]
- どんなに遅くてもいいから、実装まで作った処理系のサンプルがほしい
- 830 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 14:23:00 ]
- >>828
感謝。実はSableCC用のgrammarを発見しました。 あとはASTを上からなめるようなものを書けばいいと思う。 あとプリプロセッサがないから手で書くか、IPAのを借りようかと思う。 >>829 完成したらソース公開するから期待しないで待ってて。 Javaで作るつもり。ライブラリはアドオン形式で。 C89も結構複雑だよねぇ。これがC99になったらと思うと・・・。
- 831 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 14:31:21 ]
- 今公式サイト見たけどCOINSって錚々たるメンバー参加してるんだね。
国内のコンパイラの書籍で見かける人ばっかり・・・。
- 832 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 15:45:54 ]
- >>830
それを言うならC++0xになったらと思うと…
- 833 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 16:07:22 ]
- >>832
仰る通り。言語が複雑化すると処理系作る人は大変だね。 LL(1)で解析できる言語(Pascalとか)は素晴らしいなあ。 もっともそのせいで":="あたりで賛否両論になるわけだが...。
- 834 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 16:08:48 ]
- > もっともそのせいで":="あたりで賛否両論になるわけだが...。
どういうことですか?kwsk 代入演算子が = で、比較演算子が ==なら済む話?
- 835 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 16:59:55 ]
- >>834
ごめんごめん、深い意味はないのよ。個人的な感想。 個人的には":="が"="で、"<>"が"!="で、"="が"=="だったら もっと好きになってたかもってことで。 #自分が最初に使った言語にもよるんだろうけど
- 836 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 18:09:40 ]
- >>835
それは、ホントに個人によるな。 俺の場合、= が代入なのはキモく感じる。 今は慣れたが、最初に言語を習うときに、既存の教育(数学)の常識と違うから。 代入は、:= とか <- とかの方がしっくりくる。
- 837 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 20:23:17 ]
- >>836
確かに。a = a + 1 なんて絶対成立しないもんね。 そういう意味では := や <- が支持されるのはわかるなぁ。 ただ、<> が等しくないというのはちょっと違和感? 後輩で「<>って大なりでも小なりでもないから等しいってことですか」って マジで言ってる奴がいた(w ...なるほど深読みするとそうとも取れるのかと思ったよ。
- 838 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 21:06:01 ]
- <>と!=は好みがでそう。
個人的には!=という記号の対称性のなさが少し嫌かも。 それだったらprologのように=\=の方が好きだ。
- 839 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 21:16:39 ]
- <and>か<or>か、確かにどっちにも取れるよなぁ。
- 840 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 21:26:26 ]
- 昔は"#"が不等号って時代もチョロットだけあったよね。
- 841 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 21:38:37 ]
- a := 3 は a: int = 3 の略だったりするのはちょっと萌え。
- 842 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 22:28:55 ]
- 俺の知人がアドレスバーにあった
://www.com/?1=1+2 なよーなURL見て、 このサイト足し算もできないとんでもねー馬鹿だなって言ってたの思い出した この業界はとりあえず普通じゃないよね
- 843 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 22:31:35 ]
- >>842
というかURLの意味がわからないんだけど。 俺のプログラマでない友人も、x=x/3というのを見て、x==0と思い込んでた
- 844 名前:デフォルトの名無しさん [2006/04/18(火) 23:17:02 ]
- 洩れは if .. elsif を見て英語音痴だとおもたよw
- 845 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 23:19:15 ]
- "=="を定義の意味にすべきだと思う。
- 846 名前:デフォルトの名無しさん mailto:sage [2006/04/19(水) 01:05:41 ]
- ウゼー、言語初心者が2,3人迷い込んでガタガタ騒いでやがる
- 847 名前:デフォルトの名無しさん mailto:sage [2006/04/19(水) 01:14:13 ]
- 自称熟練者さんは理論にもさぞお詳しいのでしょう。
- 848 名前:デフォルトの名無しさん mailto:sage [2006/04/19(水) 01:25:27 ]
- 演算子の記号の意味なんか言語の仕様書読めば済む話
スレ違い
- 849 名前:デフォルトの名無しさん mailto:sage [2006/04/19(水) 01:29:00 ]
- 自称熟練者さんは「演算子の記号の意味」が理論だと思っていらっしゃるようです。
- 850 名前:デフォルトの名無しさん mailto:sage [2006/04/19(水) 01:44:17 ]
- つーか何で = が代入なんだよ
- 851 名前:デフォルトの名無しさん mailto:sage [2006/04/19(水) 01:50:13 ]
- 代入要らない。
- 852 名前:デフォルトの名無しさん mailto:sage [2006/04/19(水) 02:31:05 ]
- >>851
関数型言語?
- 853 名前:デフォルトの名無しさん mailto:sage [2006/04/19(水) 02:38:57 ]
- 代入って古いんだよね ダサい きもい
- 854 名前:デフォルトの名無しさん mailto:sage [2006/04/19(水) 02:47:10 ]
- そっか。
- 855 名前:デフォルトの名無しさん mailto:sage [2006/04/19(水) 08:55:35 ]
- >>850
BASICの頃に作られた定石でつね
- 856 名前:デフォルトの名無しさん mailto:sage [2006/04/19(水) 09:04:53 ]
- 知り合いに「Pascalの代入演算子が:=なのは文法をLL(1)にするためだ」って
力説してるヤツがいたなぁ。 つーか、トークンの切り出しは字句解析の仕事で、 LL(1)は構文解析の話だと思うのだが。
- 857 名前:デフォルトの名無しさん mailto:sage [2006/04/19(水) 20:48:54 ]
- 本によるとLALR(1)文法は手書きには向かないって書いてあるんだけど
Rubyとかの言語がコンパイラコンパイラで作られてるのはその為?
- 858 名前:デフォルトの名無しさん mailto:sage [2006/04/19(水) 20:53:30 ]
- >>857
その本によるとなんで手書きに向いていないか書いてある?
- 859 名前:デフォルトの名無しさん mailto:sage [2006/04/20(木) 02:33:51 ]
- >>855
FORTRANの頃だろう。
- 860 名前:デフォルトの名無しさん mailto:sage [2006/04/20(木) 17:53:43 ]
- >>857
LALR(1)を手で書こうとすると地獄を見るよ。 再帰下降の文法がどれだけ簡単か感謝するようになる(w
- 861 名前:デフォルトの名無しさん mailto:sage [2006/04/20(木) 20:15:23 ]
- LL(1)は適用範囲が狭いけど書きやすい。
LALR(1)は適用範囲が広いけど書きにくい。 すげージレンマです!
- 862 名前:デフォルトの名無しさん [2006/04/20(木) 21:58:00 ]
- flex 使ってると、このようなメッセージが出るんだけど、
この関数を定義しないようにするにはどうすればいいでしょうか? lex.yy.c: warning: 'yy_flex_realloc' defined but not used
- 863 名前:デフォルトの名無しさん mailto:sage [2006/04/21(金) 00:40:11 ]
- #undef yy_flex_realloc
- 864 名前:デフォルトの名無しさん mailto:sage [2006/04/22(土) 10:06:33 ]
- 一般教養としての Garbage Collection
ttp://www.logos.t.u-tokyo.ac.jp/~endo/gc/gc.pdf
- 865 名前:デフォルトの名無しさん [2006/04/22(土) 10:56:10 ]
- >>863
違うだろ?
- 866 名前:デフォルトの名無しさん mailto:sage [2006/04/22(土) 22:41:57 ]
- hiraikenji@t.vodafone.ne.jp
- 867 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 21:58:09 ]
- HSPもyaccとか使ってんのかね?
- 868 名前:デフォルトの名無しさん mailto:sage [2006/04/27(木) 11:58:47 ]
- >>867
どうでしょう。HSPって文法は何?LALR(1)?
- 869 名前:デフォルトの名無しさん mailto:sage [2006/04/27(木) 23:41:05 ]
- HSPは字句解析とか構文解析みたいな、まともな理論使ってなさそうな雰囲気
例えるなら紙芝居エロゲのシナリオスクリプト
- 870 名前:デフォルトの名無しさん mailto:sage [2006/04/29(土) 18:18:30 ]
- エロゲスクリプタもbisonで書いてるの多いと思うが
- 871 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 13:00:49 ]
- コンパイラを書くのに最も適した言語って何ですかね?
- 872 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 13:08:48 ]
- 最初の立ち上げの言語のことか?
それともツール込みの事か? おいらは最後には自己記述するから自分自身とかって事になるもんだと思ってるんだけど。
- 873 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 14:31:34 ]
- コンパイラの仕事ってのは、大半がツリーからツリーへの変換だから、
ツリーを弄りやすく、静的な強い型検査をし、メモリ管理がらくちんな 言語が向く。ML系かHaskellでどうぞ。
- 874 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 15:34:17 ]
- コンパイラの仕事ってのは、大半がツリーからツリーへの変換だから、
ツリーを弄りやすく、強力なマクロを持ち、メモリ管理がらくちんな 言語が向く。LispかSchemeでどうぞ。
- 875 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 15:52:58 ]
- コンパイラの仕事ってのは、大半がツリーからツリーへの変換だから、
ツリーを弄りやすく、すべてがオブジェクトで、メモリ管理がらくちんな 言語が向く。Ruby でどうぞ。
- 876 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 16:01:31 ]
- コンパイラの仕事ってのは、大半がツリーからツリーへの変換だから、
ツリーを弄りにくく、貧弱なマクロを持ち、メモリ管理がたいへんな 言語は向かない。CかC++はやめとけ。
- 877 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 16:10:52 ]
- >>876
・・・orz
- 878 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 16:24:16 ]
- でも結局yaccとc使うんでしょ
- 879 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 16:25:33 ]
- yaccとCをつかうと何が有利なのでしょう?
- 880 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 16:28:07 ]
- なにも。
- 881 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 16:30:19 ]
- あれを使えばいい、とか、これを使えばいい、とか言ってるだけのやつはいなくなってもいいよ。
- 882 名前:デフォルトの名無しさん [2006/04/30(日) 16:31:29 ]
- そもそも、ここで具体的なことを質問に来るやつなんていないじゃない?
スレもここで終了してもいいんじゃないかな? というわけで ======= 終 了 =========
- 883 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 18:27:01 ]
- 久しぶりに終了厨を見たな
- 884 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 19:54:42 ]
- 時代的にはHaskellですかね?
でも習得が簡単なのはLisp? うーん迷う。
- 885 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 19:59:03 ]
- >>884
お前が言いたいのはLispじゃなくてSchemeだろ?
- 886 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 22:30:19 ]
- >>875
では、何故Rubyは、Rubyで書かれていないのですか?
- 887 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 23:22:40 ]
- コンパイラはブートストラップできるけど、スクリプタは出来ない希ガス
- 888 名前:名無しさん@Linuxザウルス mailto:sage [2006/05/01(月) 07:38:23 ]
- ほとんどの速いLISP/Schemeはそれ自身で書かれてるけど
コア部分はCだったりする。 移植考えた場合gccでミニ言語構築してからブートストラップかな。 開発者はELFとかPEまで面倒見たくないのが本音。
- 889 名前:デフォルトの名無しさん [2006/05/01(月) 08:26:55 ]
- >>886
こういう馬鹿がたまに湧いてでてくるようだが、 おっとそろそろ連休かぁw 言語にはそれぞれの目的があるのも分からんの? アセンブラからベン教しなおしたら?
- 890 名前:デフォルトの名無しさん mailto:sage [2006/05/01(月) 09:22:19 ]
- .o0(下らない煽りを入れるだけなら、書き込まなきゃ良いのに・・・)
- 891 名前:デフォルトの名無しさん mailto:sage [2006/05/01(月) 09:45:36 ]
- 886じゃないけど、ブートストラップする目的の一つには言語の記述力の高さを証明するって意味合いもあるんじゃまいか。
rubyのことはよく知らないけど、もしパフォーマンスに関して考慮しないとしたら、rubyは自己記述できるだけの記述力はあるの?
- 892 名前:デフォルトの名無しさん mailto:sage [2006/05/01(月) 10:53:53 ]
- ruby で ruby を記述することはできるっしょ。
- 893 名前:デフォルトの名無しさん [2006/05/01(月) 19:54:21 ]
- ruby を用いれば(理論上は)なんでも記述できる。
ただ、パフォーマンスが問題なだけ。
- 894 名前:デフォルトの名無しさん mailto:sage [2006/05/01(月) 19:58:44 ]
- >>893
>ruby を用いれば(理論上は)なんでも記述できる。 証明は?
- 895 名前:デフォルトの名無しさん mailto:sage [2006/05/01(月) 20:07:02 ]
- 遅いってのは、それだけで罪だと思う
- 896 名前:デフォルトの名無しさん [2006/05/01(月) 20:09:17 ]
- 早漏よりはましだと思うけどね
- 897 名前:デフォルトの名無しさん mailto:sage [2006/05/01(月) 22:55:01 ]
- >>893
あまり良い例じゃないかもしれないけど、GC は Ruby で書けないんじゃない?
- 898 名前:デフォルトの名無しさん mailto:sage [2006/05/01(月) 23:46:15 ]
- GCも書けないんじゃチューリング完全といえるのか?
- 899 名前:デフォルトの名無しさん mailto:sage [2006/05/01(月) 23:49:02 ]
- 書けるよ^^;
- 900 名前:897 mailto:sage [2006/05/02(火) 00:07:17 ]
- >>898
まぁ、そういう意味では書けそうかな。 仮想的なメモリの様な物を定義して、GC のアルゴリズムを実装したり、 malloc/free/etc. をラップしてゴリゴリ書いたりは出来るだろうね。
- 901 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 00:15:59 ]
- >>898
チューリング完全関係ない^^;
- 902 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 01:29:53 ]
- つーか実装可能かどうかよりも、実装しやすいかどうかが問題なんじゃないの?
- 903 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 01:38:25 ]
- コンパイラ作る側のことは問題じゃない^^;
- 904 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 01:44:50 ]
- ユーザーにコンパイラ作らせるって意味じゃなくて言語の記述力の話だったような気が
- 905 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 07:01:58 ]
- マジレスすると Ruby の記述力はほぼ最強クラス
Ruby と Haskell を学べば他のウンコ言語は不要
- 906 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 10:12:40 ]
- Rubyは型なしライトウェイト言語。Haskellは強い型あり言語。ぜんぜん用途も違うから住み分けが必要だね。
- 907 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 18:16:08 ]
- >>905
いやしかし、ごく普通のPCで 「720x480ピクセルのインターレースの画像データを デインターレース処理してね。当然60fpsでよろしく」 「ビットレート10MBpsのMPEGデータを・・・」 とか、そういうごく有りがちな応用とかでは C/C++ は捨てがたい。
- 908 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 22:20:30 ]
- この板もID制になればなぁ。
一日中一人で荒らしてるが丸分かりでおもしろいのになぁ
- 909 名前:デフォルトの名無しさん [2006/05/02(火) 22:57:40 ]
- >>907
そろそろrubyでも届く処理になっていると思われ。
- 910 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 23:04:47 ]
- >>909は世間知らず
- 911 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 23:05:59 ]
- Rubyの売りは手軽に書けるということでしょ?
C/C++はシビアな処理が必要なところとか、大規模開発向き。 言語は住み分けが大切なんだって言ってるでしょ。
- 912 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 23:09:57 ]
- Rubyはなんだかうんこくさいんです。
- 913 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 01:05:19 ]
- 清濁併せのむって事がわからない馬鹿は死ね
- 914 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 01:46:15 ]
- >>909
またまたご冗談を >>911 激しく同意
- 915 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 01:50:51 ]
- scheme みたいにミニマム指向で、型付きで、オブジェクト指向をサポートしていて、
repl があって、文法が奇麗な言語って無いですかねぇ。仕様がある程度かっちり していると嬉しいのですが。 JavaScript に型が付いた様なの、あるいは言語仕様がきちっと決まっている Pike みたいな感じのキボンヌ。
- 916 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 01:59:06 ]
- >>915
オブジェクト指向はラムダ式の包含的なアプローチなわけだが・・ とりあえずOCamlあたりのことを言っているのかな・・
- 917 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 02:27:23 ]
- ラムダでオブジェクトを作れると言う意味では、syntax sugar としての OO をサポートしている
-- object.method() の様な感じで記述出来る -- 言語が無いかなと思いまして。 OCaml はミニマム指向なのでしょうか? ML97 みたいな規格があると嬉しいです。
- 918 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 04:11:54 ]
- >>915
Ruby。動的型だけど。
- 919 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 06:38:26 ]
- もうRubyはいいってw
- 920 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 06:42:15 ]
- 動的型まで含めたらだめだろ
- 921 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 06:52:13 ]
- >>915
JavaScript 2.0では随所に型情報をつけられるよ。 つーか「型が付いた」ってどういう意味で言ってるの? 静的型付けってこと?
- 922 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 07:25:26 ]
- >>921
JavaScript 2.0 は以前ちょっとだけ見て忘れてました。 もう一度調べてみます。どうもありがとう。
|

|