1 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 19:45:18 ] プログラミング言語処理系の開発に興味のある人達のスレッドです。 字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,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/ 関連リンクは多分 >>2-10 あたり
655 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 11:28:21 ] >>652 * compilation for distributed heterogeneous systems 異種分散システムのコンパイル (CPUやメモリの構成が一様でない分散システムを扱う技術ですな。 通信とか同期とかメモリ共有とか負荷分散とか、 あるいはそもそも各ノードの構成情報をどうやって管理伝達するかとか。) * effective implementation of advanced language features 言語の機能の効率的な実装 (例えば、大昔ならサブルーチン呼び出し、 最近ならオブジェクト指向とかアスペクト指向とか リフレクションとかを効率よく実行する方法について。 多分現在コンパイラ研究で実装面の主流。激しく応用寄り。 多分このスレの王道?) * techniques for embedded and of mobile code これは 「(他言語やデータへの)埋め込みコード &(アプレットやエージェントとかの)移動可能なコードの技術」 のことか 「組み込みシステム向けコード&移動体向けコードの技術」 のことか少々迷うな。どっちもあり得る。forとcodeに注目して英文解釈すると前者? * program representations プログラムの表現 (一瞬、インテンショナル・プログラミングみたいにテキスト表現を用いない 開発環境と一体化した言語(?)とか連想したけど多分違ってて、 数学的&理論的なプログラムのモデルのことだろうな。 だとすると業界で一番の理論寄り分野。)
656 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 11:29:28 ] >>652 * interactions between compilers and architectures コンパイラとアーキテクチャの相互作用 (キャッシュやパイプラインや特定の命令の有無などハードウェアの構成を知ったり、 もっと意欲的には再構成可能ハードウェアを構成したりとかも入るのかな?) * program analysis プログラム解析 (まぁ最適化や書き換えなどのためにプログラムの性質をいろいろ調べる技術ですな。 目指す処理に必要でかつ調べやすい性質のアイディアと そうやって提唱された性質をプログラムから取り出すアルゴリズムがセット。 最適化のためのループの分類やら、ある変数の定数性を調べたり、 ポインタがどのオブジェクトを指してるか調べたり。 あとは型検査なんかもこのジャンル。 末尾再帰かどうかを判定するなんてのは古典ですな。 最近では型と絡めて安全性とかも話題。多分現在コンパイラ研究で理論面の主流。) * software development tools ソフトウェア開発ツール (例えば開発環境とかデバッガとかリファクタリング・ツールとかテスト・ツールとか プロファイラとかソースコード管理とかドキュメントやUML図の作成ツールとか GUIウィザードの類とか。)
657 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 11:29:54 ] >>652 * program optimizations and transformations プログラムの最適化と変換 (プログラムを書き換える技術一般。 ジェネラティブ・プログラミングのように変換の枠組みを言語的に用意して プログラマに分野に特化した最適化などを書かせたり、 あるいはコンパイラの最適化のようにプログラム解析の結果を適用して (多くは)自動的にプログラムを書き換えたりする技術。 プログラム特化とか、部分評価とかアスペクト指向もこの文脈で語られること多し。 そもそもコンパイラ自身を変換(あるいは変換の集まり)としてモデル化して 考えることもあってその場合次項とも関連が深い。 個人的にもっと日本でも流行ってほしい分野。) * techniques for effective compiler construction 効率的なコンパイラ構築の技術 (effectiveがコンパイラにかかるのか構成に掛かるのか迷うところだけど 多分、コンパイラ開発自身の効率化のほうだと思う。 コンパイラの構成を工夫して新しい機能や最適化とかを あとから追加・変更したりできる技術とかコンパイラ・フレームワークとか。)
658 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 11:35:09 ] >>653 確かにハードウェアが進歩すると トレードオフが程よくバランスする点は変わるから 最適化などで個々の技術が顧みられなくなることもあるんだけども、 プログラムのほうもどんどん規模はでかく、処理は重くなる傾向はあるので 研究分野としてなくなることはなかったりする。 後は昔のハードでは速度や容量の点から 夢物語だった先進的過ぎるアイディアを 実際に試せるようになったりすることもある。
659 名前:デフォルトの名無しさん [2005/12/12(月) 11:40:42 ] このすれスサマジスage
660 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 11:50:45 ] 訳と解説乙。 次スレから、(個人的〜の部分を省いて)テンプレにするといいと思う。 以下ツッコミ。間違ってたらごめん。 >techniques for embedded and of mobile code 普通に組み込み機器向けって意味じゃない? データに埋め込む言語って意味だと、mobileと一緒にする理由がわからない。 >program representations program representationというと、Abstract Syntax TreeとかGraphとか、 パースしたプログラムの表現形式(なぜか大抵は中間形式)を言う事が多いと思う。
661 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 12:08:45 ] >>660 techniques for embedded and of mobile code に関しては正直どっちかわからんですよ。どっちの分野もあるし。 そのうえさらにややこしい事に移動体機器や組み込み機器向のコードとして (容量や更新の都合で。)移動可能なコードを使うことが最近ちょくちょくあるようだし。 あー、program representations に関しては>660の言うとおりかもなぁ。 その場合、インテンショナル・プログラミングの内部構造とか バイトコードとその仲間達とかも入るかもね。
662 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 13:22:53 ] >>660 にだけ突っ込むけど、他意はないから許して (>>654-657 を検証するような目で見るガッツがないもので…) "mobile code"は日本語で「可搬コード」とでもいうような、 プログラムが分散環境を移動するやつかもしれない。 それから、"program representations"は、プログラム意味論とかの 「プログラムをどのような *モデル* で表現するか」というテーマだと思う。
663 名前:654-657、661 mailto:sage [2005/12/12(月) 14:11:41 ] >>662 まぁ、mobile codeに関しては私もそっちが第一候補ではある。 でもembeddedと対になってたりするし、 曖昧な言葉ではあるので文脈がないとどっちにも取れる面はあるなと。 program representationsに関しても最初私もモデルかと思ったけど、 >>661 的なテーマも確かにあったりしてそっちな可能性も結構あるなと。 ぶっちゃけこれも文脈を聞かないとイマイチ特定しにくいかも。
664 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 14:18:55 ] ACMのDigital Libraryでみつけた論文では ・high level representations ・directly interpretable representations ・directly executable representations っていう分類してparse treeとか語ったりしてるのと、他にもwikipediaから en.wikipedia.org/wiki/Dynamic_recompilation の中でa portable program representation such as Java or CLR bytecodesって表現があるから660でいいと思う。 同じくACMのDigital Libraryから mobile code, that is, programs traveling on a heterogeneous network and automatically executing upon arrival at the destination という言い回しも見つけた。 たぶんモバイル機器向けってことだと思う。(よく知らないけど) embeddedは何とも言えないけど、組み込み系以外の意味でembeddedっていう単語が使われてるのはあまり見かけない希ガス。 他言語に埋め込むとかは普通inlineじゃないかな?(勘違いしてたらつっこみよろ)
665 名前:654 mailto:sage [2005/12/12(月) 14:25:24 ] embedded languageってのを DSLの文脈で見かけたことがあるような記憶はあるんだが いまいち定かでなかったりして決定打に欠ける。 その上そこで組み込み機器向けのDSLの話だったのか、 別の言語に埋め込む特定分野向の簡易言語の話だったのか思い出せないので こんな記憶があっても決定するだけの根拠なし。
666 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 14:43:52 ] >>654 > (たとえばGCとか、もっと進んでヒープを使わないプログラミングの可能性とか。 これすごいな。そんなの実現可能なの? ヒープ使わないとなるとデカイ静的メモリ領域用意して全部つっこむしか思いつかない俺に喝を入れてくれ。
667 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 14:46:25 ] >>664 mobile codeの部分だけ反応してみる。 異機種ネットワークを移動し、到達点で自動的に実行するプログラム ということだから、RPCっぽいことなのかなと思った。 > Programming languages for mobile code > Tommy Thorn > ACM Computing Surveys (CSUR) > Volume 29 , Issue 3 (September 1997) ただこの論文の冒頭で、「"mobile code"には文章によって様々な 意味を持つ」とか言ってる。 この論文では、「異機種ネットワークを移動し、保護ドメイン (企業ネットワークからPDAまで)を渡り、到着点で自動的に実行する ソフトウェア」と定義してる。 けっこう面白そうな論文ぽい。
668 名前:654 mailto:sage [2005/12/12(月) 14:51:51 ] 私もちゃんとは知らないウロ覚えの聞きかじりなんだが、 何年か前に日本ソフトウェア科学会のとある研究集会あたりで聞いたような気がする。 私の気が確かならば関数型プログラミング方面から来た話で、 プログラムを解析(エスケープ解析とかあたりかなぁ)して 関数呼び出しの階層の中の適切な階層に記憶管理コードを埋め込むような話が あったような気がする。 ただ3時から仕事上の講演会を聞きに行くので今は調べられない。 戻ってきた後でちょっとググって見る。
669 名前:654 mailto:sage [2005/12/12(月) 15:11:16 ] >>666 (>>668 続き) PPL2003の招待講演だったNe(希ガス) www.csg.is.titech.ac.jp/ppl2002/program.html "Functional Programming without Garbage Collection" Martin Hofmann (University of Muenchen) [PSファイル] www.csg.is.titech.ac.jp/ppl2002/proceedings/hofmann.ps
670 名前:654 mailto:sage [2005/12/12(月) 15:13:10 ] ちなみに内容はウロ覚えなんで論文読んで確認されたし。 (聞きに行く講演は15時半からだった。)
671 名前:666 mailto:sage [2005/12/12(月) 16:03:54 ] >>669 dクス! なるほどね。ヒープを使わずに再帰しながらスタックを使う(関数の引数に詰め込む)ってことっぽい。
672 名前:654 mailto:sage [2005/12/12(月) 18:37:12 ] >>671 ま、それを手でやったら単に面倒なだけなんだけど プログラムを解析して自動でそういうように書き換えるって話だったように覚えるんだけど どうだったかいね。 (最近PDFが多くて生PSのみってあんまりないから今使ってるマシンに PSプロセッサを入れてないのでURLの論文をまだ読んでない罠。 や、まぁ入れりゃいいだけなんではあるがマンドクセぇという。)
673 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 19:48:02 ] スレの質が急激に向上してまいりました
674 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 20:08:44 ] スレの質が急激に向上してきたようだね
675 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 20:27:22 ] スレの質が急激に向上しているようだな
676 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 20:41:15 ] 上がってきたと見るや躊躇いなく下げようとしているなw
677 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 20:42:54 ] >>676 このダッチワイフ野郎。(くうきよめ)
678 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 21:51:48 ] PLDIは組み込みシステム向けの言語設計・実装の話題も範囲内だよ。 (過去にEmbedded Systemsってセッションが開かれるくらい) design and processing of domain-specific languagesの一部っちゃそうなんだけど、 for embedded and of mobile codeは素直に解釈すればいいんじゃないかな。 ていうか、「(他言語やデータへの)埋め込みコード」って、PHPのような言語、 って意味でいいのかな。そんな話題はPLDIでは見た事ないような…(知る限りでは
679 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 22:40:59 ] そろそろPOPLの時期ですね。行く人はいますか?
680 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 23:48:13 ] >>678 PHPって埋め込みに入るのかな? あれってタグの外側を標準出力に流してるだけでしょ。 「埋め込める」ってのは見た目の上だけで、Zendのただの宣伝文句に過ぎないと思うんだが。 専門の人とかはどう分類するんだろ?
681 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 00:23:09 ] >>679 落ちたので行けません。鬱 >>680 PHPが間違いなら間違いでいいから、 正しくは何が「埋め込み」なのか教えてくれないか。できれば例で。
682 名前:680 mailto:sage [2005/12/13(火) 00:31:34 ] >>681 > 正しくは何が「埋め込み」なのか教えてくれないか。 俺もそれとほぼ同義のことを質問してるんだけど。 HTMLのscriptやstyleとかCのインラインアセンブラあたりは埋め込みじゃないかとは思うんだが、PHPはわからんと思っただけ。 ソースの見た目で定義するべきなのか機能で定義するべきなのか。 654の再登場を待つしかなさそうだなw
683 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 00:45:43 ] >>654 ではないが、「他言語やデータへの埋め込みコード」って言ってるぞ。 HTMLのscriptとかがいわゆる「他言語への埋め込みコード」で PHPがいわゆる「データへの埋め込みコード」というつもりだったんじゃないか。 (>>654 がそこまではっきり意識して話したのかはわからないけどな) どっちにしても、PLDIで見る話じゃないような……(俺も、知る限りでは)
684 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 00:52:08 ] >>683 正直、「データへの埋め込み」ってのがイマイチ意味がわかんないんだよなぁ。 できれば解説キボンヌ。 (あ、ちなみにPHPは<?php〜?>の外側も含めた全体がPHPのソースなので、そもそも埋め込みではない思う)
685 名前:デフォルトの名無しさん [2005/12/13(火) 01:14:20 ] >あ、ちなみにPHPは<?php〜?>の外側も含めた全体がPHPのソースなので、そもそも埋め込みではない思う そういう哲学をお持ちの方には、そうですか、としか言いようがございませんね。 あまり一般的な哲学ではないように存じますけれど。 以下、何事もなかったように議論が再開することを願います。
686 名前:681 mailto:sage [2005/12/13(火) 01:20:12 ] HTMLのscriptか。納得。 まあこんなことで議論してもしょうがないな。 しかも今見ると>>681 はなんだか喧嘩腰だな。 そんなつもりは全くなかったのだが、失礼した。 (煽りの部分は無視して)>>685 の言うとおり、 何事もなかったように再開してほしい。
687 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 01:41:20 ] LISPはなんなんですか
688 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 01:43:01 ] まあ俺はPHPを言語処理系っていう側面から見て埋め込みかどうかに疑問を思ったんだが、興味ない奴は読み飛ばしてくれい。 >>686 が良い切り返ししてくれたので先に進むけど、「データへの埋め込み言語」って何だろう? 一瞬スタックオーバーランみたいにマシンコード埋め込んで攻撃することだと思ったんだけど違うよね? あーマシン語は「言語」じゃないか・・・
689 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 01:46:03 ] どうか>>687 をスルーしてくれ
690 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 01:55:57 ] embedded ruby
691 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 03:42:12 ] たいていのプログラミング言語に対して正規表現が使えるけど、 あれは一種の埋め込み言語であると思う。
692 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 03:57:10 ] >>691 なるほど。確かに。 大抵は正規表現用に、言語自体の字句解析とかとは別口のモジュールで解析してるもんな。
693 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 04:06:40 ] たいていのプログラミング言語に対して整数が使えるけど、 あれは一種の埋め込み言語であると思う。 って言ってるのと変わらないぞ、それ。 ていうか、「埋め込み」の厳密な定義なんてないんじゃね? 「埋め込み」の厳密な意味を議論する意義はあるの? と思いつつも>>654 に集まる期待。
694 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 04:42:12 ] >>693 > ていうか、「埋め込み」の厳密な定義なんてないんじゃね? > 「埋め込み」の厳密な意味を議論する意義はあるの? むしろembedded=組み込み系って流れじゃなかったっけ? このスレなんかおかしな方向に行ってるな。
695 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 04:42:20 ] プログラム言語なんか研究してる人がいるんだね。 あんなのは有名なのも含めて全部趣味で俺言語作ってるのと 同じレベルだと思ってた。 まさか真面目に研究した成果が、あの行き当たりばったりの つぎはぎだらけの仕様とはねw
696 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 04:51:01 ] 正直、仕様がつぎはぎになるまで使われる言語なんて全体の 0.1% にも満たないと思うんだが。
697 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 04:52:38 ] D言語は最初からつぎはぎでしたが何か?
698 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 04:53:02 ] まあいいじゃん。楽しく俺言語つくろうぜ。
699 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 04:54:28 ] >>697 つぎはぎってそういう意味なのか?
700 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 04:55:57 ] おまいら、>>695 みたいな100%の釣りですらスルーできないのかよ… >>680 のような巧妙な釣り(後であからさまになったけど)ならともかく…
701 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 04:57:30 ] 釣って釣られて盛り上がるのが醍醐味ですが何か?
702 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 04:57:59 ] >>700 自分たちでも理解できるレベルになったのが、 嬉しくてしょうがないんだろう。ほっといてやれ……
703 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 05:03:01 ] それじゃそろそろprogram representationsとインテンショナル・プログラミングの話をしようか
704 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 07:29:09 ] >>696 C言語の事でつか?
705 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 10:24:35 ] >>694 embeddedのIT業界でのデフォはそれで正解 ただ、ここは言語すれなので
706 名前:654 mailto:sage [2005/12/13(火) 11:07:54 ] 期待されても大して何もでないぞ。 埋め込まれた言語っていってもHTMLファイル (データ記述のための言語で書かれたデータなんでデータでもあり言語でもあり) にスクリプトを〜くらいしか念頭にはなかったし。 (ちなみにJavaScriptあたりをイメージしてた。PHPはよーしらんです。) まぁ、ライブラリで提供される正規表現を言語内に埋め込まれた言語と見る というのもあるかなとは思う。 それに整数など数値演算が埋め込まれた言語というのは 理論上そういう観点もありえなくはないかなという気がする。 こういうのは視点の問題であって一つの存在が一通りにしか解釈できないと 決まったものでもないわけで。 大体今時の言語の文法定義自身が再帰的に部分文法を"埋め込んで"定義されてるわけで この観点から言えば埋め込まれてる言語とホスト(宿主)言語の区別ってのは 結構便宜的なモンでしかないんじゃないかと思う。 分けて考えるのが便利なときは分けて考えることもできるし、 全体で一個の文法と見るのが便利ならばそう見ても問題ない。 余談だけどそう思ってみると 数値演算につきものの演算子の結合や優先順位の規則の文法的表現ってのは 言語の文法定義の中でもそれ以外の部分とは若干異質な部分でもある。 言語定義をする人は皆、当たり前なんで慣れてしまっているけどね。
707 名前:654 mailto:sage [2005/12/13(火) 11:37:54 ] 例をあげて考えてみる。 まずはライブラリなどとして提供されるユーザ定義のデータ型が ベースとなる言語に埋め込まれてベースとなる言語を拡張している例。 データ型といっても整数演算くらいだと見慣れているだろうし、 あんまりピンとこないかもしれない。 けども複雑なテキストデータは実際にパースしないといけないわけだから 単に観念の問題ではなくて技術的にも結構言語チックではある。 既に出ている正規表現もそうだし、例えば昔、私が多項式型を作ったときには 多項式のインスタンスを文字列リテラルで初期化するようにしてみたことがあって このような場合だと単にユーザ定義のデータ型のリテラル (正確にはそのように見立てた文字列リテラル)の癖に その中に「変数」(数学的には不定元か)や「演算子」なんかがあって その"埋め込まれた"リテラルの扱いはミニ言語っぽくなる。 多項式はデータ・値として4則演算の対象であると同時に 実際に値を代入(数式処理的には「置換」)することで関数のように評価もできたりする。 逆に通常一個の言語として見ている言語の定義を 幾つかのミニ言語を埋め込んで組み立ててあるとみることも実際に可能。 例えばC++を 式言語を制御構造言語に埋め込んでそれを関数宣言言語に埋め込んで、 それらと単純型宣言言語を合わせてクラス宣言言語に埋め込んで、 さらにそれをtemplate宣言言語に埋め込んだものとして考えることもできる。 この時例えばtemplate宣言言語は関数型言語として見ることができて 実際にそのようにプログラミングすることもできるというのが テンプレート・メタプログラミングだったりする。
708 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 12:16:37 ] >>706-707 禿しく納得した。あんたにゃ脱帽。
709 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 13:23:05 ] >>654 って例の、外国人とRubyに悩まされてる人か? もしそうならかなり煮詰まってるな。
710 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 14:06:54 ] >>709 な、なぜそう思うのかな?
711 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 15:08:51 ] >>709 の元ネタがよくわからん罠
712 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 15:12:04 ] ttp://pc8.2ch.net/test/read.cgi/prog/1127261540/924 と思われ。
713 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 15:12:40 ] いずれにせよ、Rubyに好意を持っていない所から類推すると、 研究畑の人間だと思われる。
714 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 15:14:23 ] >654は別にRubyについては何も書いてないよな。
715 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 16:12:53 ] >>713 研究の人はルビー嫌いなの?
716 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 16:22:54 ] >>715 いんや、少なくとも>>712 のリンク先のそのまたリンク先のヨーロッパ人研究者には大好評のようだゾ。
717 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 16:32:43 ] 日本の研究の人は、自分よりも名前が売れていることでRubyを妬んでいるのです
718 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 16:44:49 ] 妬むかどうかはさておきRubyの人が(昔はリーマンしながら作ってたようだけども) いまやオレ言語で食えているのがウラマヤシクないと言えば嘘になろう。 プログラミング言語研究も成熟してきた昨今、 どうしても言語研究で食っていこうとすれば全く新しい俺言語の開発ではなく 言語の一部(例えば既存言語の拡張とか最適化とか)をテーマにすることに ならざるを得ないが、言語屋の多くは俺言語への夢ってモンをやっぱり持ってるからな。 まぁそういう研究屋業界の世知辛い世情はRubyの人も(出身は言語屋なわけだし) 分かってるからあくまで彼が自称するのは言語オタクであって 研究者とは名乗らないし、開発に徹して研究者的な活動には深入りしないのだろう。
719 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 16:47:28 ] >>710 >>714 の言う通りRubyについちゃ何も言ってないんだけど、 >>654 の最後の「風変わりな実装」と「Windowsに移植」ってとこでそう推測した。 あと>>707 であげられている例やら「埋め込まれた言語」に対する態度やらから そうなのかなあと。 過去ログを調べたら、例の人を2chで初めて見かけたのは2ヶ月以上前だ。 まあ>>654 とは別人だろうな。
720 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 16:50:22 ] >>712 の引用のしかたにワロタ マ板経由かよw
721 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 16:51:47 ] 別段Rubyに含むところはないが Unitテストもなしに6万行もあるバギーな拡張ライブラリはキライw 特にキャストやテンプレートを濫用して型がスパゲティ化しているプログラムはw
722 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 17:16:30 ] Rubyとかそういう問題じゃないな。 他の言語でもそれは嫌だぞ。
723 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 17:28:21 ] >>722 まぁ、そういうことですよw Rubyが使われてるプログラムの移植でヒドい目に合ってるからRubyの話題も出るけど それは多分に使い方の問題であってRubyの問題じゃない。 例えば、C++でそんなデカイもんを作るなら最初からC++で書いてRubyから呼び出すとか、 RubyでBisonやflexやXMLパーサ用のコードを生成するとかなんて構造・設計は 勘弁なってくらいでいずれも問題はRubyそのもの良し悪しや好き嫌いの話ではない。 以上誤解のないように。
724 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 17:30:15 ] 謹んで訂正>>723 誤> 例えば、C++でそんなデカイもんを作るなら最初からC++で書いてRubyから呼び出すとか、 正> 例えば、C++でそんなデカイもんを作るなら最初からC++で書いておいてくれればよいわけで、 Rubyから呼び出すとか、
725 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 17:43:02 ] やっぱRubyじゃ巨大プロジェクトの開発は無理か。 せいぜい数千行程度?
726 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 18:25:20 ] さぁ? 「やっぱ」とあるが>>723-724 はそういう問題ではないだろう。 まぁ、一応Script言語はそれ単体であまり大きな規模の開発を行うことは 想定してないとは思うので個人的にそういう目的に用いることをオススメはしないが、 どこにそのラインがあるかは自明でないのでキッパリ無理とも言い切れない。
727 名前:デフォルトの名無しさん [2005/12/13(火) 18:27:04 ] >>725 別にRubyで何万行書いてもいい。 むしろRubyだけで書く限りであればそれほど問題はないと思う。 Rubyがアホなとこは、そうやって書くと思いっ切り遅くなることがわかってるから、 現実は他の速い言語で拡張ライブラリ作ってツギハギしてくしかないってこと。 拡張ライブラリが順調に動いている内はいい。が、そこでバグが発生したりすると もうグダグダになる。拡張ライブラリが絡むと環境やモジュール連続性もなく まず原因の特定が困難で専用のデバグ環境もない。もはやまともなデバグなど 期待できない。だから拡張ライブラリを書いた場合は事前のテストが重要となる。 が、現実はこれをまともにやっている人間は少ないようだ。 ほんとは他の言語で書かす拡張ライブラリみたいなアホな非常口は言語の 作者の目の届かない所でもあるし、とっとと廃止した方がいいのだけど、 Rubyはそれをいつまでもやめないし、既にRubyの仕様上速くなる手段は 閉ざされており、もう誰もがアホだとわかっていてもその非常口に突っ込んで 自滅するしかない、という悪循環がどうみても出来上がっていました。 ありがとうございました。
728 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 18:30:33 ] 精子コピペすか?
729 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 18:34:25 ] わかってはいるが、わかるわけにはいかん! というやつだね。 墓穴は掘り終わりましたか?
730 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 18:41:06 ] >>727 遅くなるって言うけど 手軽さではなく早さが求められるようなプロジェクトで Script言語を選んじゃう見識は問われないの?
731 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 18:51:28 ] 言語というより、開発手法や設計のお話だな。
732 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 18:52:31 ] この件でRubyの拡張ライブラリがヤバイ事はよくわかった。
733 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 18:59:05 ] そういやRubyはVMにできないみたいな話が以前のスレにあった気がするけどあれってなぜ?
734 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 19:08:15 ] そろそろスレ違いに気づけ。 Rubyヤバイとかは専用スレがあるんだからそこで騒げ。
735 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 19:11:25 ] >>725 デカいプロジェクトだと開発以前に、運用で却下。 保守できる人間が少ないのは怖いし。 もっともここで話す問題ではないが。
736 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 19:29:06 ] そう思うなら余所逝けよ。
737 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 22:21:58 ] ちょっと勘違いしてるようだけど、数千行のRubyコードって 数十万行のLispコードに匹敵する処理内容が記述できるでしょ。 なので、スクリプト言語≒簡易処理というのは全くの思い違いだと思うよ。 速度が遅くなるのは同意だけど、
738 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 22:24:27 ] オ〜レ〜〜〜。オ〜レ〜〜〜。ジャカジャカジャン! ま・つ・け・ん・さあ〜んば〜〜〜
739 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 22:48:17 ] 数十万行のC言語のコード、というならともかく・・・
740 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 23:16:02 ] >>737 だいぶ勘違いしてるようだけど、RubyとLisp比較するなら 記述量的にはあんま変わらない気がするけどな。 速度気にするならまともなコンパイラ付いてるLispで書いた方が 良かったんじゃないの? Rubyと違って処理系も色々選択できるし、拡張ライブラリを 速度のために別言語で書く、みたいな馬鹿馬鹿しい問題もない。
741 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 23:27:55 ] Lispは、チェックを省いてプロトタイプを作ろうとすると、めちゃくちゃ少ないコード記述量に なるけど、パフォーマンスを考えてチューニングしようとしたり、エラーチェックを厳密に やろうとすると他の言語と同じぐらいになってしまう。
742 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 23:55:27 ] >>741 憶測だけで言ってない? つか、付けたしだけで速くなるなら別の言語で書き直すよりは そっちの方がいいよね。 下のサイト見ると行数もそれほど変わらないし チューニングコード入れなくても速いみたいだが。 元々速度では勝負にならん差があるけど。 Ruby shootout.alioth.debian.org/benchmark.php?test=all&lang=ruby&lang2=ruby Lisp shootout.alioth.debian.org/benchmark.php?test=all&lang=cmucl&lang2=cmucl shootout.alioth.debian.org/benchmark.php?test=all&lang=sbcl&lang2=sbcl
743 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:14:14 ] >>742 Rubyが速度で上回るのはstartupだけか。 ひでえなこりゃ。 Rubyってコンパイラ作れないの?
744 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:31:28 ] ハッキリ言ってしまえば、速度なぞ時間がすぐに解決するんだけどなw リアル社会を知らない音質Lisperはアクキンにしる!
745 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:33:18 ] >>743 コンパイラは作ってもあまり意味がないというか、 そもそも作る人がいないという話だった気がする。
746 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:33:43 ] >>743 作れるはずだし、 作ってる人も(複数人)いるっぽい。 実用になったという話は聞いてないけど。
747 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:41:45 ] >>744 Rubyはそう言われてきたJavaと事情がだいぶ違うし 言語仕様的に無理かも。 あと10年待とうね。
748 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:44:51 ] プロセッサがマルチコア方向にシフトしてきてるっぽいので、 ネイティブスレッドに対応しないと辛いかもね。
749 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:49:15 ] >>742 おいおい、そこのコードは速度を上げるために かなりチューニングしてるぞ。 少なくかけるところをあえて速度が上がるような 書き方してる。
750 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:49:52 ] だから、コード量は、本当はlispはめちゃくちゃ少ないよ。
751 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:50:18 ] PythonはPython自身で書かれたり他の言語やVMに変換して速くしたりできるっぽい そういう意味ではPythonの方は将来期待できるかも
752 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:53:09 ] これなんて象徴的だよな。 本当は5行で終わるところを12行かけて書いてる。 コメントにその5行のコードが書いてあるw shootout.alioth.debian.org/benchmark.php?test=ackermann&lang=cmucl&id=0
753 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 00:56:25 ] Pythonって構文をちょっと変えたLispそのものだからな
754 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 01:03:49 ] 出来るだけタイプ量少なくすることで競うならperlが最強。
755 名前:デフォルトの名無しさん mailto:sage [2005/12/14(水) 01:04:33 ] >>752 そのコメント部だけのコードでも動的言語の割には結構速度出るね。 やっぱこの差はネイティブコンパイルしてるからかね。