1 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 00:59:13 ] プログラミング言語処理系の開発に興味のある人達のスレッドです。 字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,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/ 関連リンクは多分 >>2-10 あたり
729 名前:デフォルトの名無しさん mailto:sage [2006/09/07(木) 23:27:16 ] >>728 ボクシングとかほしくなったら困るんじゃなかろうか(関数呼び出しフレーム作る時ね)
730 名前:デフォルトの名無しさん mailto:sage [2006/09/07(木) 23:29:51 ] ボクシングしたものは全てオブジェクト扱いでイイような気がする。 箱に入れてさ。
731 名前:デフォルトの名無しさん mailto:sage [2006/09/08(金) 06:09:40 ] 素直にプリミティブにタグ付けした方が良い希ガス。
732 名前:デフォルトの名無しさん mailto:sage [2006/09/08(金) 07:46:50 ] オブジェクトのメンバの、ポインタと即値はどうやって区別してんだ?
733 名前:デフォルトの名無しさん mailto:sage [2006/09/08(金) 12:00:11 ] >>732 型のある言語ならコンパイル時にGC対象を列挙できるので問題はないでしょ?
734 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 02:18:41 ] >>720 がもどってこなくてショボーン(´・ω・`) どんな言語なのか聞きたかったのに
735 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 02:31:01 ] >>734 ねー
736 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 09:46:37 ] 質問のレベルから察するとだな
737 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 19:25:02 ] チン子もえもえどぴゅーってレベルだな
738 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 20:27:29 ] スタックに積む量次第だけど、スタックに積むときだけプリミティブにタグ付けるのが 実装的には一番楽な気がする。
739 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 20:34:15 ] で、もうちょい話が進むと、プリミティブは常にタグつきがいいという話になる ちなみに、L(ry も R(ry も、そうなってたような
740 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 20:47:24 ] もう手抜きして保守的GCにしちまおうぜ
741 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 21:20:50 ] 可算無限個のメモリを用意するのが最近のトレンド。
742 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 23:20:12 ] >>739 LispとRuby? Rubyのprimitiveは最下位ビットが1になっているので 保守的GCに引っかからない、というものだったと思う。 Lispの実装は山ほどあるんでわからん。
743 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 23:42:47 ] >>741 黙れニート
744 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 20:20:23 ] LISPは今風の書き方ができない。 やっぱa.b.c.d().e.f.gとかしたいわけよ。 LISPで同じことしようとするとオペレータ毎いちいち括弧でくくらないとな。 (dot(dot(dot(call(dot(dot a b)c)d)e)f)g) もうなんだかわからん。 おっと、マクロにすりゃいいとか言い出すなよ。 俺はLISPを長年研究してきたから嘘は通じんぞ。
745 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 20:39:58 ] CLOSみたいにaccessorで触る仕組みにすると (g (f (e (d (c (b a)))))) のような感じになるかな。
746 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 21:07:10 ] (chain (a obj) (b it) (c it) (d it) (e it arg1 arg2)) みたいに書けるようにするのはマクロでできるよ。 Rubyでselectやらmapやらを繋げて配列を引き回していたりなんかすると、 ブロック+ドットよりもこっちの方がむしろ見易い気がする。
747 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 21:14:01 ] >>744 そういう風に華麗にかけるのはいいんだけど、デバッグするときにめんどくさくなんね? gの呼び出しで値がおかしくなってるんだけどどこで値がおかしくなってるのかわかんないみたいな。
748 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 21:28:46 ] >>746 で、誰がそんなアホなマクロ使うの? プロジェクト全体でそのマクロ使うように、 ルール決めしたりできる?www
749 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 21:55:53 ] >>744 引数を沢山とれるようにして (dot (call (dot a 'b 'c 'd)) 'e 'f 'g) でいいじゃん。
750 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 22:01:13 ] だから、んな誰も使うはずのないゴミを書いてみても 自己満足以外の意味ないだろ
751 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 23:26:44 ] vimのマクロはなにに影響されてできたもんなの?
752 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 00:00:43 ] >>744 | LISPは今風の書き方ができない。 | やっぱa.b.c.d().e.f.gとかしたいわけよ。 いや。そんな書き方したいと思ったことは一度もないんだが。
753 名前:744 mailto:sage [2006/09/14(木) 00:03:24 ] ふむ、ふむ。 予想通りのレスだな。 おれは結局フロントエンドを書いた。 しかし、それはもはやLISPではなく、 >>750 の言う通りでもあった。 LISPはリスト処理が得意なはずなのに、 こういった階層表現のオペレートが苦手なのは意外だった。 素直にLISPとして表現するならば、 (defvar a '(b (c (d (e (f (g value))))))) というタグ付きリスト階層を作り、 (cdadadadadadadar a) => value という操作を行う事だろうか。
754 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 00:34:25 ] >>744-753 マクロにする必要すらないんじゃ? ドットで繋ぐんだから実装はハッシュか何かだよね? Schemeで申し訳ないが (define (pp obj r) (if (null? r) obj (pp (ref obj (car r)) (cdr r)))) (define (p obj . r) (pp obj r)) で (p a 'b 'c 'd) と書けるよ。 あとはgauche限定?になるけど (define-method object-apply ((b <hash-table>) . c) (pp b c)) で (a 'b 'c 'd) と書ける。
755 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 01:45:33 ] だから、ゴミの実装の詳細なんぞ、 興味ねえから、チラシの裏にでも書いてろ
756 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 01:57:39 ] 744=750=755 ?
757 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 02:06:28 ] Lisp に絡んでいた奴がまた粘着してるのかねぇ? ↓のようなマクロじゃ気にくわないわけ? 例1: #{ a.b.c.d().e.f.g } 例2: #[ a b c #[ d ] e f g ] どっちでも好きなほうを選べ.
758 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 02:47:35 ] >>755 ではないが、>>744 の質問はスレ違いじゃないのか? 特定の実装(Lisp)の問題なんだから、Lispスレでやればいいじゃんと思った。
759 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 02:54:08 ] Lisper に喧嘩売ってる俺ってスゲー、みたいな奴が出てくるのは Lisp の功罪だな。 こんな事が後何回繰り返されるのだろうか。
760 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 03:23:00 ] Lisp スレで相手にしてもらえなかったんじゃないの? だからって関係ないこっちに来られても困るわけではあるが。
761 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 06:04:36 ] >>759 相対性理論が長きにわたって物理系のトンデモさんを 無数に相手にしてきたのと、ちょっと似てるね。
762 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 06:30:52 ] だーから相手にすんなって…すぐにまた LISP 最強!! とか暴れはじめる気配がする
763 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 06:51:13 ] 相対性理論、やっぱ無敵ってこと?それともダサダサってこと? 文章からどっちの意味か見えなかった。
764 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 07:05:01 ] 相対性理論とLispはどっちが難しいんだ?
765 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 07:52:51 ] それ自体がどうのではなく、名の通り方の問題だろう。 「挑戦者」達は、まず何より名前に噛み付いてる。
766 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 22:03:26 ] Lispの話になっても、Lisperのオナニーが多少見えるぐらいで、話は何にも広がらんのな
767 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 22:09:54 ] Lispのマクロってどんな感じなんでせう? 文法を自分で定義してシンタックスシュガーを作れるってイメージ?
768 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 22:25:34 ] ググれタコ
769 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 22:28:54 ] レス数増えたと思ったらやっぱりこれか
770 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 01:12:03 ] >>767 構文抽象ってやつだね。でも粘着が暴れるから別のスレで聞いたほうがいいとおもう。
771 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 01:16:34 ] >>767 後はコンパイル時にデータを生成したりとか。
772 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 03:25:42 ] >>744 俺は、a.b.c.d().e.f.gって書けるような S式みたいというかM式の一種というかC言語風の データ形式を考えてるけど、なかなか、難しいです。 簡単なschemeへのトランスレータは書いてみたけど、 なんか納得がいってません。 こう、ごちゃごちゃと考えがスパゲッティになってて どう考えを積み上げていったらいいのかわからない段階です。 とりあえず、c言語のセミコロンやカンマがどうして必要なのか? とか考えてます。
773 名前:772 mailto:sage [2006/09/15(金) 03:49:02 ] なんか、話が長くなりそうだし、 スレ作ってしまいました。 pc8.2ch.net/test/read.cgi/tech/1158259643/
774 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 13:24:14 ] >>772 >とりあえず、c言語のセミコロンやカンマがどうして必要なのか? カンマがないと、 1, -1 が 1-1 になっちゃうでしょ。
775 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 16:15:57 ] スペースをデリミタにすればカンマは必要ないと思うけど?
776 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 17:25:25 ] スペースをデリミタにするなよ
777 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 21:57:36 ] 改行をデリミタにすればセミコロンは必要ないと思うけど?
778 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 23:19:37 ] >>777 EcmaScriptとかはその戦略を採用しているな。 おかげで構文解析が死ぬほどめんどい。
779 名前:772 mailto:sage [2006/09/16(土) 02:44:14 ] >>774 2項演算子あるいは後置演算子と前置演算子に使われる演算子があった場合に 何らかのデリミタ(セパレータ?)が必要である。 てことですかねぇ。 他に、 名前のない括弧が前のカッコに結合しないようにする。 f()(1+2)と f();(1+2)みたいなかんじで。 みやすくするためにも存在してますよね。
780 名前:デフォルトの名無しさん mailto:sage [2006/09/16(土) 03:40:14 ] java で実装されたスクリプトエンジンで、コルーチンの yield に相当する機能を実装したものはありますか? Jython がジェネレータの名称で実装していることは知っているのですが、他の実装も見てみたいのです。
781 名前:デフォルトの名無しさん mailto:sage [2006/09/16(土) 15:48:29 ] >>776 forth
782 名前:デフォルトの名無しさん mailto:sage [2006/09/16(土) 20:02:26 ] FORTHって絶対メジャーになれない言語の筆頭だよな。
783 名前:デフォルトの名無しさん mailto:sage [2006/09/16(土) 20:10:41 ] >>782 PostScriptはメジャーじゃない、とおっしゃる?
784 名前:デフォルトの名無しさん mailto:sage [2006/09/16(土) 20:21:13 ] >>782 となると、LISPもだな。
785 名前:デフォルトの名無しさん mailto:sage [2006/09/16(土) 22:58:15 ] java仮想マシンもたしかFORTHだよな?
786 名前:デフォルトの名無しさん mailto:sage [2006/09/16(土) 23:54:15 ] はい、違いますよ
787 名前:デフォルトの名無しさん mailto:sage [2006/09/16(土) 23:56:54 ] >>785 誰に聞いたのよw
788 名前:デフォルトの名無しさん mailto:sage [2006/09/17(日) 00:01:31 ] スタックマシンがすべてFORTHだというのであれば
789 名前:デフォルトの名無しさん mailto:sage [2006/09/17(日) 00:15:31 ] PDFを書く言語ってあったか? それ。
790 名前:デフォルトの名無しさん mailto:sage [2006/09/17(日) 03:22:01 ] FORTHをアーキテクチャとか言語分類とかのことだと思ってる奴がいるのか?
791 名前:デフォルトの名無しさん mailto:sage [2006/09/17(日) 03:49:48 ] OpenFirmware も Forth だよ。
792 名前:デフォルトの名無しさん mailto:sage [2006/09/18(月) 01:35:09 ] FORTHを信じても意味がなかった
793 名前:デフォルトの名無しさん mailto:sage [2006/09/18(月) 02:08:16 ] >>792 そりゃFORCEじゃないのか?ルーク
794 名前:デフォルトの名無しさん mailto:sage [2006/09/18(月) 02:09:45 ] Use the Force, 792. >>792 , trust me. Remember, the Force will be with you always.
795 名前:デフォルトの名無しさん mailto:sage [2006/09/18(月) 12:37:38 ] Lisp最強!!!!!!
796 名前:デフォルトの名無しさん mailto:sage [2006/09/18(月) 14:30:56 ] はいはい。 LISPは面白いもんを沢山残してったけど、 FORTHは言葉遊びが出てくる程度だったな。
797 名前:デフォルトの名無しさん mailto:sage [2006/09/18(月) 14:33:37 ] FORTHって、普通に使われてる言語やん。
798 名前:デフォルトの名無しさん mailto:sage [2006/09/18(月) 14:34:32 ] Lispは今では遊びと教育用の言語でしかなくて、実際に使われているのは知らない。
799 名前:デフォルトの名無しさん mailto:sage [2006/09/18(月) 14:53:41 ] スタックが複数本必要な言語はロクなのがないね。
800 名前:デフォルトの名無しさん mailto:sage [2006/09/18(月) 21:56:30 ] >>798 emacs 知らんの? 珍しいやっちゃな。
801 名前:デフォルトの名無しさん mailto:sage [2006/09/18(月) 22:05:13 ] emacsが実際に使われていないということなんだろうけどな
802 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 01:53:34 ] PCLの2章より: An even more impressive instance of remote debugging occurred on NASA's 1998 Deep Space 1 mission. A half year after the space craft launched, a bit of Lisp code was going to control the spacecraft for two days while conducting a sequence of experiments. Unfortunately, a subtle race condition in the code had escaped detection during ground testing and was already in space. When the bug manifested in the wild--100 million miles away from Earth--the team was able to diagnose and fix the running code, allowing the experiments to complete.14 One of the programmers described it as follows: Debugging a program running on a $100M piece of hardware that is 100 million miles away is an interesting experience. Having a read-eval-print loop running on the spacecraft proved invaluable in finding and fixing the problem. ドキドキもんだろうけど、楽しそうな体験ではある。
803 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 04:03:57 ] >>801 何が?
804 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 07:49:42 ] この程度の流れも読めない馬鹿は書き込まないで下さい :-P
805 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 10:01:17 ] >>802 さらに衝撃的な遠隔デバッグが行われたのは、NASAが98年に打ち上げた、ディープ・スペース1号機におけるミッションでのことだった。 ロケットの打ち上げから半年、Lispの短いコードにロケットの制御を2日間委ねることになった時、ある一連の実験が進行中だった。 不運にも、わずかな競合状態がコードの中に含まれていたためで、地上での検査時に見つからないまま、宇宙空間に放たれてしまっていたのだ。 バグ発見の過酷な状況は、地球から1億マイルも離れた場所であったが、担当チームは稼動中のプログラムにメスを入れ、問題の修復に成功したことで、今回の実験は完遂されることになった。 担当したプログラマの一人が、当時の様子を次のように語った。 「あの時デバッグしたプログラムは、1億ドルのハードウェア上で、1億マイルも離れた場所で稼動していたんだけど、おもしろい経験になったよ。 read-eval-printループがあれば、ロケットの中で問題が起きても、発見したり修復するのに、量り知れないほど役立つことが証明されたってわけさ。」
806 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 12:44:29 ] むしろLispなんかで制御したから地上での検査時に 見つからなかったという恥ずべき歴史だな。
807 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 12:47:00 ] 「みんながLispに近づいているんじゃない! みんながLispを不必要にしているんだ!!」
808 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 13:16:59 ] PHPでいいです
809 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 16:07:51 ] いくない
810 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 16:09:57 ] >>806 本当にそう思うなら、匿名掲示板以外でも声高に言ってみろよ。 誰も相手にしてくれないけどな。
811 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 16:11:36 ] JavaScriptでいいです><
812 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 16:15:37 ] >>810 確かに、Lispなんていう死んだ言語の話をする相手が見つかるのは 夢想に責任をまったく持たなくていい匿名掲示板くらいでしょうね。
813 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 16:22:13 ] >>810 静的型付けのないLispが今でも一番だと思っている奴がいたら それこそお笑いだ。 スクリプティング言語の主流はいわゆるP言語だし、大学での 教育に使われる言語もMLやHaskellなど静的型付け&型推論の ある言語に移っている。
814 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 17:19:40 ] >>813 SICPを教科書に使う学科は多いだろうし、今でもLispは教育用言語として使われることが多い。 ラムダ計算のお勉強でも型なし→型ありという風に遷移・比較して教えられる事もあるだろうし、 教育用という意味では今でもLispは利用価値がある。
815 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 17:55:27 ] >>814 それが最近はSICPの評価は昔ほど高くない。 SICPの内容を最初からMLなどで教えているところもある。 つまるところ静的型付けがない言語をわざわざ大学で教える 必要性が薄らいでいるのさ。 にも関わらず Lisp is nice, so we are nice. な方の多いこと。(Rubyスレで見たレスのもじりだが。)
816 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 18:14:29 ] いい加減スレ違いだと思うんだけどな。
817 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 18:19:12 ] >>815 Lispはともかく、 型なしラムダ計算については?
818 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 18:33:09 ] >>817 形無しラムダ計算を教えるためにはLispが必要と考える理由が むしろ知りたい。
819 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 20:39:42 ] 形無しラムダ計算の本質はLispでないと表せない
820 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 21:36:04 ] >>818 型なしの関数型言語の代表格だからだよ。
821 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 21:37:13 ] 別に言語は何だっていいけど、Lispは勉強するのに必要な資料が一番多いんじゃないかな。
822 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 21:38:40 ] 紙と鉛筆で十分だが
823 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 21:41:26 ] Lisperの一部は鼻持ちならない選民思想の持ち主だが、 そうでない者も多い。 「Lisp一番!!」なレスはスルーでヨロ。
824 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 22:04:01 ] カステラ一番、Lispは二番!!
825 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 22:26:08 ] >>819 んじゃあ、形無しラムダ計算は発明から何十年もの間、 その本質は表現されなかったんだw
826 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 22:51:12 ] 実際Lispがなかったら埋まったままだったろうなあ
827 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 00:51:30 ] >>825 ここプログラム技術板だから。 (と、この説明で恥ずかしくならないようなら問題外 :-) )
828 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 02:00:59 ] >>825 Lisp はクソだが見当違いの叩きを展開するアホはもっとクソだ。 ここは叩くスレじゃねーんだ。バカは↓でも抱いて海に消えろ。 文句は直接開発者にでもメールしてろ。 強い型付き LISP: ttp://www.lambdassociates.org/qiml.htm
829 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 06:28:07 ] 言語ネタは叩き厨がファビョって荒れるんで Code Generation でも語ろうぜ JIT なんだけど GNU Liblightning ってどうなん?使ってるプロジェクトって qu 以外にある?