「コンパイラ・スクリプトエンジン」相談室7
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/10/14(金) 19:56:30字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換,
CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン,
SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化,
JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。
意味論に関する話題も歓迎です。
前スレ
1 http://pc.2ch.net/tech/kako/981/981672957.html
2 http://pc2.2ch.net/test/read.cgi/tech/1021136715/
3 http://pc5.2ch.net/test/read.cgi/tech/1070089173/
4 http://pc5.2ch.net/test/read.cgi/tech/1100097050/
5 http://pc8.2ch.net/test/read.cgi/tech/1106129164/
6 http://pc8.2ch.net/test/read.cgi/tech/1115335709/ (前スレ)
関連リンクは多分 >>2-10 あたり
0153デフォルトの名無しさん
2005/10/27(木) 04:38:29省略といえば、こないだ初めてPerlを使ったんだが、こりゃ酷いな。
これほどクソな文法設計の言語は過去にも未来にもないんじゃないか?
いい特徴を持っているだけに残念でならない。
ということで Perlを反面教師にしてください。
0154デフォルトの名無しさん
2005/10/27(木) 04:41:02有利な言語として有名なんだよ。
極めると凄いらしい。
0155デフォルトの名無しさん
2005/10/27(木) 06:04:530156デフォルトの名無しさん
2005/10/27(木) 06:39:380157デフォルトの名無しさん
2005/10/27(木) 07:05:110158デフォルトの名無しさん
2005/10/27(木) 07:38:33Perlは初めて聞いた。入賞したことあったっけ。
0159デフォルトの名無しさん
2005/10/27(木) 07:50:52Dylanはちょっと違うんじゃないか。
Perlは確か2004のLightning Divisionで圧倒的だった。
0160デフォルトの名無しさん
2005/10/27(木) 08:40:25構文糖で低血糖
0161デフォルトの名無しさん
2005/10/27(木) 10:56:54FORTRANとかの行指向の言語をやった後だと文区切りが";"一つで済むのは天国。
空文が許されてればさらに極楽(Pascalは空文がなかったので編集が面倒だった)。
最近だとC/C++でプリプロセッサマクロを書いてるときやデバッグしてるときは
結構ストレス溜まる。
スクリプト言語は大々的に開発環境・ツール使って大規模なソフトウェアを正確に書くのが
本来の趣旨ではなく、取り敢えず動くものをお手軽に普通のテキスト・エディタでやっつける
ってのが正しい使い方なんだろうから、スクリプト言語の文法規則にその手の
ユーザ補完機能っぽい小技が組み込まれるのはあるいは妥当なのかもしれんなぁ。
(私の個人的な趣味には合わんけどw)
0162デフォルトの名無しさん
2005/10/27(木) 11:21:14perl みたいになんでも省略可能なスクリプト言語って作れないかな。
作った自分しか使えないくらいの。
スクリプトの利点
コードが短く書ける→よってバグも少ない→(゚Д゚)ウマー
haskellとかでも十分短く書ける気もするが。あれは省略しているわけではないか
0163デフォルトの名無しさん
2005/10/27(木) 11:53:07短く書ける物しか書けない→大規模なプログラムに用いると管理しきれなくなってハターン→(;´*`)マヅー
0164デフォルトの名無しさん
2005/10/27(木) 18:33:08その欠点をも克復したオブジェクト指向スクリプト言語があるんだけど、
あえて言語名はいわない。当スレでは禁句らしいからなw
0165デフォルトの名無しさん
2005/10/27(木) 18:39:400166デフォルトの名無しさん
2005/10/27(木) 18:59:50Rubyと拡張ライブラリを使って大規模なコンパイラを書かれてしまい
その移植で今酷い目に合っているのが俺だルシム
やっぱスクリプト言語はスクリプト言語。濫用はほどほどに…。
0167デフォルトの名無しさん
2005/10/27(木) 20:35:13移植って言うけど、ruby.exe が移植できればいいだけの話しでは?
0168デフォルトの名無しさん
2005/10/27(木) 20:41:06おまいを最近いろんなスレで見かける気がするのだが・・・?
0169デフォルトの名無しさん
2005/10/27(木) 21:01:53> コードが短く書ける→よってバグも少ない
その理屈はおかしいだろwwww
0170デフォルトの名無しさん
2005/10/27(木) 21:12:070171デフォルトの名無しさん
2005/10/27(木) 21:45:01まぁでかいコードよりは物理的に少なかろうて。
0172デフォルトの名無しさん
2005/10/27(木) 22:06:42バグは少なくならないんじゃないのか?
本質的に短くならないと。
0173デフォルトの名無しさん
2005/10/27(木) 22:12:220174デフォルトの名無しさん
2005/10/27(木) 22:13:500175デフォルトの名無しさん
2005/10/27(木) 22:14:26拡張ライブラリが曲者でね。
Rubyででかいコードを書くと実行速度の問題とか
ある処理に利用可能なライブラリやツールがないなどの理由で
だんだんと拡張ライブラリとして実現されるパートが増えていく。
最初はテキスト処理のスクリプトでチョチョイと終わるはずだったコードは3年の時を経て
Ruby本体に迫るサイズの巨大な拡張ライブラリを擁するコンパイラもどきにまで育ったというわけだ。
拡張ライブラリはC(実際のウチのケースではCから呼び出されるC++コードが大部分)で
書かれているがRubyのオブジェクトやルーチンを呼ぶのでそれ単独では実行できないから
デバッグはいつもRubyごとgdbに掛けるなどして行うことになる。そしてそれはたまらなくメドい作業。
特にC++のコードがそもそもバギーだったりパーサ・ジェネレータが関与したり
XMLパーサも関与したりConservativeGCも同居したり移植先がWindowsであったりする場合は。
>>168
気のせい。別人。無関係。ということにしておいてくださいおながいします。
決して煮詰まってるからあちこちのスレで憂さを晴らしているなどということはない筈です。
信じてください。
0176デフォルトの名無しさん
2005/10/27(木) 22:22:01そういうLispを使うべきところでRubyなんか使ったのが運の尽きだな。
0177デフォルトの名無しさん
2005/10/27(木) 22:25:50コテつけたまえよ
あぼーんしちゃるから
0178デフォルトの名無しさん
2005/10/27(木) 23:34:47コテ付け必要なのは、>>176 でしょw
>>175 なんか泥沼って感じですね。
ただ、他の言語では正直そこまで持たなかったのでは?
0179デフォルトの名無しさん
2005/10/27(木) 23:36:24単純にLispを使うべきところってのを知らないんじゃないの。
僕も仕事だから仕方なくC++でコンパイラ書くのに付き合ってるけどあまりに効率悪いんで
うんざりしてきた。スケジュールもカツカツだから絶対失敗すると確信してるけど放置してる。
0180デフォルトの名無しさん
2005/10/27(木) 23:50:03中途半端に持ってRubyで書かれたロジックとC/C++のロジックが分離しようもなく
絡み合ってしまう前に潔く書きなおされることになったほうが
幸せだった可能性が高くはあるまいか?
>>179
Lispもどうかなぁ。気が進まないなぁ。Lisp使うくらいならいまどきの言語である
MLとかHaskellとか使うかもなぁ。いずれにせよ読み書きできる人間が少ないけどな。
0181デフォルトの名無しさん
2005/10/28(金) 00:03:09Rubyなんて書き始めの頃から破綻するのなんて判ってた筈。
最初からLispで書いてれば良かったね。
0182デフォルトの名無しさん
2005/10/28(金) 01:10:31たとえば、たかがhello, world.のために #include <stdio.h>だのmainだの
書かなければならないCや、classだのpublic static void mainだの書かなければ
ならないJavaとかに比べ、1行で済むスクリプト言語は、そういう小さなプログラムでは
便利だってのは分かる。でかいプログラムだと結局関数やクラスは必要なんだけどな。
また、変数の宣言がいらないことで、書くのも手軽だし、読むときも、
ソースをぱっと見たときに本質的な部分だけが見えるので読みやすい、ってのも、
あまり同意はしないけど、言っていることは分かる。
だから、スクリプト言語が小さなプログラムには向いているってのは
わかるんだが。
しかし、セミコロンってのは... セミコロン、たかが1文字、たった1文字だぜ。
これが省略できようができまいが、タイプの手間はほとんどまったく変わらないし、
読むときに邪魔になるとも思えない。むしろセミコロンを強制する方が、
文法がシンプルになる分、処理系はもちろん人間にも優しいだろう。
関数呼び出しの括弧もしかり。
>>151が言うような落し穴を開けてまで、こんなわけのわからん文法を持ち込むことに、
いったいどんなメリットがあるのか、それがわからんのだよなあ。
0183デフォルトの名無しさん
2005/10/28(金) 01:18:260184デフォルトの名無しさん
2005/10/28(金) 01:25:02でも、速い実装無いみたいだね、Scheme……
0185デフォルトの名無しさん
2005/10/28(金) 01:26:01煮詰まったんならもういいじゃん。
終わったことをウダウダアチコチのスレに書き込むな。
>>182
括弧要らないのは楽だし。
つうか、別に付けてもいーんだから、付けたいならつければよいって話。
俺はあきらかに省略できるところは省略して楽してる。
0186デフォルトの名無しさん
2005/10/28(金) 01:28:53エラーメッセージで「;」が無いよとか言われると、
解ってんならつけて実行しろよって言いたくなるよね
0187デフォルトの名無しさん
2005/10/28(金) 01:29:32最近は「行き詰った」ときも「煮詰まった」って言うんだよ。
0188デフォルトの名無しさん
2005/10/28(金) 01:30:11PetiteじゃないChezって無茶苦茶速いって噂だけど。誰か真相知らない?
0189デフォルトの名無しさん
2005/10/28(金) 01:30:14151 のようなケースでカッコを省略して書いたりはしないよ。読みにくいし。
演算子メソッドを自然に書けるようにカッコが省略可能になっている。
a + 2 は正式に書くと a.+(2) なもんで。
最近は DSL の作成にこのルールが役に立っていると感じてる。
DSL の例は http://onestepback.org/articles/lingo/
0190終わりたいよ・・・
2005/10/28(金) 01:42:13終わってないんだよ。現在進行形でこの深夜にもぐつぐつぐつと…。
今夜もついさきほどすごいコードが書かれているのを
発見してしまってちーとばかり脱力してるところさ。
まぁ気に入らないなら頭がオカシイ電波野郎がいるとでも思ってスルーしてくれ。
あんまり簡単に個人特定されても困るので残念ながら固定は名乗れないが。
0191デフォルトの名無しさん
2005/10/28(金) 02:06:33そもそもPetiteChezの時点でインタプリタとは思えない速さだ。
0192デフォルトの名無しさん
2005/10/28(金) 03:03:51> まぁ気に入らないなら頭がオカシイ電波野郎がいるとでも思ってスルーしてくれ。
スルーしたいからコテかトリ付けろや、カス。
個人特定なんか簡単にできるかよ。
0193デフォルトの名無しさん
2005/10/28(金) 03:05:150194デフォルトの名無しさん
2005/10/28(金) 03:22:59自演乙
0195デフォルトの名無しさん
2005/10/28(金) 08:12:08文脈関係なくLisp, Lispと口走るキチガイや、
文脈関係なくRuby, Rubyと口走る馬鹿や、
文脈関係なくりんご、りんごと口走るキモデブに
コテなりなんなり付けて欲しいとこだけどな。
0196デフォルトの名無しさん
2005/10/28(金) 08:41:270197デフォルトの名無しさん
2005/10/28(金) 08:58:00低脳だけな
0198デフォルトの名無しさん
2005/10/28(金) 17:57:44「煮詰まってる(>>175)」を「煮詰まった(>>185)」と勝手に過去形にしたうえ
「もういいじゃん」と一方的な感情的評価でに突き放し、
「あちこちのスレに書き込むな」と命令形で
別にスレの話題からそれほど逸脱してるわけでもないのに
特定の話題や書き手を排除しようとする心の狭さは如何なものか?
その上アボンしたいからコテ名乗れと指示するに至っては
とんだジャイアニストと言わざるを得ない。
0199デフォルトの名無しさん
2005/10/28(金) 18:00:460200デフォルトの名無しさん
2005/10/28(金) 18:00:470201デフォルトの名無しさん
2005/10/28(金) 18:02:15一応流れとしては
スクリプト言語で大きなプログラムを書いてマズくなった事例なんじゃないの?
書き方は愚痴っぽかったけど。
0202デフォルトの名無しさん
2005/10/28(金) 18:06:410203デフォルトの名無しさん
2005/10/28(金) 18:39:31それはそうだけど、もし C とか lisp
なんかでかいていたら、とっくの昔に破綻してたんじゃない?
あまり、将来のこと考えずに拡張をくりかえしてたようだし
おっと、変な奴が出てると困るから一応行っとくけど、
Ruby は個人的にはそれほど好きではない。
ただ、凄いとはおもうけどね。
0204デフォルトの名無しさん
2005/10/28(金) 18:50:28>>180前半。
0205デフォルトの名無しさん
2005/10/28(金) 18:55:34あと、LR(1) だっけ?w
0206デフォルトの名無しさん
2005/10/28(金) 19:26:48大丈夫な言語なんてあるのか?
拡張云々は横に置いても、手続き型で静的型検査もないRubyは
大規模なコンパイラを書くのに向いてる言語ではないだろうな。
周りの人間が許すならML、だめならJavaが妥協点だろうか。
それでもだめなら泣きながらCかLisp。
おっと、変な奴が出てくると困るから一応言っとくけど、
Rubyは個人的には大好きだ。
0207デフォルトの名無しさん
2005/10/28(金) 19:29:33Cell processor向けcompilerはなかなかやりがいがありそうだね。
SPEはハードの制約がきついから、最適化の差がはっきりでそう。
0208デフォルトの名無しさん
2005/10/28(金) 19:50:07Lisp は、いくらなんでも選択にはならんだろw
おっと、変な奴が出てくると困るから一応言っとくけど、
Lispは学術的にはすばらしい言語だと思ってるよ。
0209デフォルトの名無しさん
2005/10/28(金) 19:52:19つ>>206-207
0210206
2005/10/28(金) 20:06:21うん、
おっと、変な奴が出てくると困るから一応言っとくけど、
Lispは学術的にすばらしい言語だと思ってるよ。
と言うのが面倒だったからお世辞で入れただけ。
それに周りの人間がMLを許さないならLispも許さないよ。S式信者除く。
おっと、変な奴が出てくると困るから一応言っとくけど、
S式は可読性にも記述性にもすぐれたすばらしいものだと思ってるよ。
# ちなみにRubyは本当に好きです
0211デフォルトの名無しさん
2005/10/28(金) 20:19:240212デフォルトの名無しさん
2005/10/28(金) 20:40:06変な奴
0213デフォルトの名無しさん
2005/10/28(金) 20:43:000214デフォルトの名無しさん
2005/10/28(金) 20:52:35ちっ、ばれたか
0215デフォルトの名無しさん
2005/10/28(金) 22:54:30Lisp Ruby りんご
> Cell processor向けcompilerはなかなかやりがいがありそうだね。
> SPEはハードの制約がきついから、最適化の差がはっきりでそう。
というか、基本設計の差が大きくでるように思える。
なんせ、あのアーキテクチャですからね。
0216デフォルトの名無しさん
2005/10/28(金) 23:46:41美人言語処理担当っているのかなぁ。
はぁはぁ
0217デフォルトの名無しさん
2005/10/28(金) 23:55:28cellの大変なところは
1. local memoryのconsistencyの自前管理
2. branchのhint命令の挿入
3. evenとoddを考慮したscheduling
4. instructionのstarvation回避
5. 間接参照の処理
6. SIMD化
あたりか。ちょっとコンパイラ側の負担が大きすぎな気もする。
0218デフォルトの名無しさん
2005/10/29(土) 00:15:42もう書かなくていいよ。
0219デフォルトの名無しさん
2005/10/29(土) 16:12:19ちゃんとフィルタ用のキーワードいれてるんだから文句いうな
0220デフォルトの名無しさん
2005/10/29(土) 21:34:52果して実用的なんだろうかと、ふと思ってしまう。
0221デフォルトの名無しさん
2005/10/29(土) 22:11:50Windowsで使えるフリーで高速でバイナリコンパイルでき日本語も使えGUIも使える
処理系がないという意味だとか、安価な土方を大量動員できるとかいう意味では
違うとは思うけど。
普通にプログラムを書くだけだったら例えばCやPascalなんかよりずっと楽だよ。
0222デフォルトの名無しさん
2005/10/29(土) 22:25:11ちょっとしたデータ処理を書くにはLispの方が楽だけども、
もうちょっと広義にあらゆるプログラムに対応できるという意味では
CやPascalの方が圧倒的に実用的だが。
0223デフォルトの名無しさん
2005/10/29(土) 22:30:49実用的でないということにはならないと思うけど。
PerlでもRubyでもPythonでもJavaでもいいけど、「〜ができない→その言語は
実用的じゃないね」とはならないでしょ?
0224デフォルトの名無しさん
2005/10/29(土) 23:20:31万能な言語があると思ってるのなら、夢見すぎだ。
0225220
2005/10/29(土) 23:31:01慣れもあるのでしょうが、自分だったら全くコード書く気が起きない。
(書けないんじゃないよ。)
あと、世の中の出回ってるソフトでLispでかかれたコードに出会ったことがない。
(Lispの機能を示すために書かれているコードを除いて。)
こんな意味です。
0226デフォルトの名無しさん
2005/10/29(土) 23:32:250227デフォルトの名無しさん
2005/10/29(土) 23:33:100228デフォルトの名無しさん
2005/10/30(日) 00:00:32>あと、世の中の出回ってるソフトでLispでかかれたコードに出会ったことがない。
GNU Emacsかなあ。
しかし、Emacsのカスタマイズ言語がe-lispじゃなかったら、
もっと多くの人がいろんな機能を作ってたんじゃ、と思わなくもない。
つか、俺もちっこいのはいくつか書いたけど、挫折した…
0229デフォルトの名無しさん
2005/10/30(日) 00:28:380230デフォルトの名無しさん
2005/10/30(日) 00:29:23Emacsが未だに生き残っていることを考えると、
その中での選択としては大正解だったと思われる。
いい加減時代に合わなくなってきてるのには同意。
0231デフォルトの名無しさん
2005/10/30(日) 00:35:460232デフォルトの名無しさん
2005/10/30(日) 00:41:060233デフォルトの名無しさん
2005/10/30(日) 00:44:28一応C言語はあったけど・・・
Cはろくな選択肢じゃないの?
それどころかむしろ、228も含めた多くの人は、C(に似たような言語)こそが一番
良かったと思ってるんじゃないのか?
0234デフォルトの名無しさん
2005/10/30(日) 00:46:270235デフォルトの名無しさん
2005/10/30(日) 00:48:550236デフォルトの名無しさん
2005/10/30(日) 00:49:26・計算機資源を食う
・書き手の能力を問う
の二点が大きかったから。前者は今じゃ全然問題にならなくなったから、
後者をクリアしてる若い連中が「これいいじゃん」と騒ぎ始めた。
漏れみたいな、後者をクリアできないロートル&無能には手続き型言語で十分さ。
0237デフォルトの名無しさん
2005/10/30(日) 03:03:43パンピーにも理解できるところへおりてきたのでかなりギャップは小さくなった
んじゃないかな。
今だと後者のふるいの役割はHaskell辺りだろうか。
0238デフォルトの名無しさん
2005/10/30(日) 03:47:11Gosling emacs の Mocklisp は C like な構文だったんじゃなかったっけ。
まあ結局生き残ってはいないわけだが。
0239デフォルトの名無しさん
2005/10/30(日) 04:54:44FORTRANみたいに特定分野で亡霊化してそう。
0240デフォルトの名無しさん
2005/10/30(日) 06:46:300241デフォルトの名無しさん
2005/10/30(日) 07:23:25よくわからんが、それはlispって名前がついてるのに
lispじゃなくてCなのか?
ただ、構文だけの話ではないの?
0242デフォルトの名無しさん
2005/10/30(日) 08:04:43RMS Lecture at KTH http://gnu.mirrormonster.com/philosophy/stallman-kth.ja.html
>いつかは MOCKLISP を本物の LISP に置き換えようと
ここの説明ではC LIKEかどうかはわからんな。
ともかくLISPフロントエンドみたいな言語の話ではないのね。
0243デフォルトの名無しさん
2005/10/30(日) 09:32:120244デフォルトの名無しさん
2005/10/30(日) 10:03:27今の技術の推移速度じゃ、それは無理だろ。
IT業界のハードの発展速度は確かに凄まじいものがあるとはいえ、
ソフトウェア業界の技術の発展速度は、藻前の想像以上に遅い。
0245デフォルトの名無しさん
2005/10/30(日) 10:14:59Lispに嫉妬する俺言語オーナーのスレはここですか?
ちなみに普段言語は何をお使いですか?w
0246 ̄ ̄\| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
2005/10/30(日) 10:17:53/::::::::::::::::::::::::::\
/::::::::::::::::::::::::::::::::::::::\
|:::::::::::::::::|_|_|_|_|
|;;;;;;;;;;ノ \,, ,,/ ヽ
|::( 6 ー─◎─◎ )
|ノ (∵∴ ( o o)∴)
/| < ∵ 3 ∵>
::::::\ ヽ ノ\
:::::::::::::\_____ノ:::::::::::\
0247デフォルトの名無しさん
2005/10/30(日) 10:53:53事実を言っただけなのに何を怒っているの?
なにか気に障ること言った?
あっ!もしかしてキティちゃん?
0248デフォルトの名無しさん
2005/10/30(日) 11:16:08苫米地英人博士が、CommonLisp大好きらしいのだが、
漏れは、CommonLispの分厚い仕様書見て引いた。
なんだ、Schemeの方がシンプルでわかりやすいじゃん、と。
当時はR4RSと首っ引きで格闘して、研究してたなぁ。
産総研の某氏は、無節操に言語仕様を拡張できるScheme
を、最悪ですね、と評していたが、当の某氏は大学院時代、
Scheme使いだったはず。
EmacsLisp使いで業界で有名なK林氏は、大学院の同期
なんだが、元気にしてるんだろか。
0249デフォルトの名無しさん
2005/10/30(日) 11:18:17話はそれからだ。
0250デフォルトの名無しさん
2005/10/30(日) 11:46:04言語以前に Lisp は S 式をつかうところからしてユーザビリティが低いもん。
今時コンパイラやスクリプトを書くならオブジェクト指向 == Ruby が最高
0252デフォルトの名無しさん
2005/10/30(日) 11:59:59それをスルーしてるあたり、同一人物かなw
■ このスレッドは過去ログ倉庫に格納されています