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 あたり
124 名前:デフォルトの名無しさん mailto:sage [2006/01/03(火) 23:28:49 ] つまり、ツンデレ?
125 名前:デフォルトの名無しさん mailto:sage [2006/01/03(火) 23:43:19 ] そもそもC言語が自分がUNIX作るために作った俺言語だから。
126 名前:デフォルトの名無しさん mailto:sage [2006/01/03(火) 23:45:05 ] >>124 なにそれ? >>125 正当化に必死ワロw
127 名前:デフォルトの名無しさん mailto:sage [2006/01/03(火) 23:51:48 ] >>126 表面上は嫌っている(ツンツン)が、 内面では認めている(デレデレ)って意味
128 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 00:21:52 ] Ruby最高! 実行速度の遅さと、色々と無駄の多くて破綻している文法以外……
129 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 00:33:21 ] ruby の文法って日本語的な思考方向(熟語が最後に来る)になってるような 気がしている
130 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 00:39:14 ] >>123 まあねえ。 このスレにいるような連中(のうち何割か)は、俺言語の5つや6つとっくに作ってて (あるいは作りかけていて)、みーんなディスクの肥やしにしてるんだと思う。 言語処理系作るのなんて別に難しくないんだけど、ちゃんと完成させて、 かつちゃんと普及させる人は珍しい。その点じゃまつもとさんはすごいんだと思う。
131 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 00:39:41 ] obj.m1.m2.m3.m4 を objをm1してm2してm3してm4する。 と書けるようになればいいのかも。
132 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 00:58:01 ] ruby のイメージってそんな感じなんですけど
133 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 01:05:40 ] >130 まだまだ諦めとらんよ。 (SchemeとIOを合わせたようなのを作成中)
134 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 01:10:11 ] SchemeやLispを使うとプロトタイプ作成は早いですよ 最近実感した
135 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 01:13:51 ] >>133 くだらねぇなあ。 そういう既存のものを中途半端に組み合わせたのって 数あるつまらん言語のうちの1つになるだけだろ。
136 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 01:21:07 ] 有名どころが作ったとかではないなら、少なくとも何らかの他と 違う特徴がないとほんとに俺用で終わってしまうな。 Rubyだってフリーで国産とか、イテレータとか、一応特徴あったしな。 LispやSmalltalkやPrologやPerlなどは言うまでもないし。
137 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 01:24:14 ] Rubyが出てきた頃は、最初からオブジェクト指向を元に設計されてる スクリプト言語が無かった。 今では珍しくもないと思われるかもしれないが。
138 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 02:21:53 ] Lisp系言語を作っても、ほぼLisp系言語愛好者(超少数派)しか注目しない しかも、Lisp系言語愛好者は多少浮気をしたところで、 必ず最後はメジャー(少数派の中でだが)なCLかSchemeに戻る したがって、どうあがいてもユーザーはほとんど出来ないだろうね
139 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 02:24:17 ] え?Lispなんて超がつくほどメジャーな部類では?
140 名前:デフォルトの名無しさん [2006/01/04(水) 02:30:58 ] メジャーな言語一覧。 www.answers.com/topic/list-of-programming-languages ここに載ってないのがマイナーの条件。
141 名前:デフォルトの名無しさん [2006/01/04(水) 02:42:32 ] >>140 Hspとなでしこは世界ではダメだったか・・・ 世界的にはRubyのほうが知名度高いんだな。
142 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 03:15:58 ] やっぱりLispですね 議論はここに戻る 遠回りするアホは嘲笑の対象だね
143 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 03:24:58 ] お願いだから、あんまり Lisp を釣りネタに使わないでくれ。
144 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 04:27:34 ] >>139 Lispがマイナー言語だとは書いてないだろ Lisp愛好者が超少数派と書いたんだ Lisp愛好者が多数派だと、本気で思ってるなら 死んだほうが良くねえか? 少なくとも、ボケ老人レベルの判断力としか思えんわ
145 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 05:31:54 ] 全体の割合で見たら超少数派かもしれんが、 A言語愛好家、B言語愛好家、C言語愛好家、 〜言語愛好家って、たくさん見てけば超人数 多い部類だと思うが。
146 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 05:40:35 ] "Cが好き" の検索結果 約 440 件 "Lispが好き" の検索結果 約 316 件 "Javaが好き" の検索結果 約 259 件 "Rubyが好き" の検索結果 約 186 件 "C++が好き" の検索結果 約 175 件 "Perlが好き" の検索結果 約 134 件 "Pascalが好き" の検索結果 約 57 件 "Basicが好き" の検索結果 約 25 件
147 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 05:49:19 ] Lisp愛好者って最近になってちょっと増えたんじゃないか? 高学歴の若者にファンが多い気がする。
148 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 05:55:12 ] >>146 "Cが好き"は別回答含んでねぇか?
149 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:02:24 ] ウェブ全体から検索で "I love Ruby" の検索結果 約 21,500 件 "I love Java" の検索結果 約 17,200 件 "I love C" の検索結果 約 13,800 件 "I love Perl" の検索結果 約 9,980 件 "I love C++" の検索結果 約 1,610 件 "I love Basic" の検索結果 約 1,290 件 "I love Lisp" の検索結果 約 310 件 いろんな意味で m9(^Д^)プギャー!!
150 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:09:34 ] vのあとのlは比較的発音しにくいからな。 likeにしてみると多少マシなんじゃないかな? やってないけど
151 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:13:08 ] "Lisp hacker" の検索結果 約 17,200 件中 "Java hacker" の検索結果 約 14,800 件中 "C++ hacker" の検索結果 約 1,540 件中 "Ruby hacker" の検索結果 約 969 件中
152 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:17:53 ] >>150 "I like Ruby" の検索結果 約 15,700 件 "I like Perl" の検索結果 約 14,600 件 "I like Java" の検索結果 約 14,000 件 "I like C" の検索結果 約 11,000 件 "I like Basic" の検索結果 約 1,600 件 "I like Lisp" の検索結果 約 653 件 "I like C++" の検索結果 約 508 件 なるほど、確かに多少マシだw おまけ。 "Pythonが好き" の検索結果 約 91 件 "I love Python" の検索結果 約 12,100 件 "I like Python" の検索結果 約 24,300 件 "Python hacker" の検索結果 約 808 件
153 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:21:59 ] >>152 しかし、C++より多いのか。 いずれにせよ、それら超メジャー言語と張り合う程度に 愛好家はいるんだから、超少数派というのは当ては まらないのではないか?
154 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:23:58 ] Lisp Hackerが多いってのがLispを象徴してるな。 Lisperっていうメジャーな代替表現があるのにこれはすごい。
155 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:30:48 ] おまいらプラス思考だな。 まあ、Ruby 厨の俺から見ても Lisp が超少数派なわきゃないと思うけどね。 >>153 C++ は確かに超メジャー言語だが、 "I love C++" "I like C++" って発言するほど C++ 自体が好きな奴って あんまりいないんじゃないかという先入観がある。 >>154 Lisp Hacker ≒ Paul Graham
156 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:31:23 ] とりあえず、PythonとRubyは人名と宝石が引っかかってるぞ。
157 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:36:19 ] >>156 今じゃ誰もこんなこと言わないとわかっているが敢えて言わせて貰おう。 ネタにマジレスカコワルイ
158 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 08:00:51 ] まあ何だ。こと布教にかけては、本職の宣教師が最強だったってことじゃねえ?
159 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 08:28:35 ] 話題がRubyに向かいやすいのは、Rubyの人気が出たことに対する 言語設計者の嫉妬にみえなくもない
160 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 08:44:56 ] このスレではRubyのソース読んだ人の割合が他の言語より多いってのも多少関係するかと。 ソースコード完全解説が出版されるはオンラインで公開されるは、挙句Matz氏もソース嫁と言わんばかりの勢いだからな。
161 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 09:27:27 ] 308 "I hate Ruby" 743 "I hate Perl" 15500 "I hate Java" 726 "I hate C" 988 "I hate Basic" 257 "I hate Lisp" 1320 "I hate C++" Javaダントツ人気で砂
162 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 09:32:26 ] 何が嫌いということもないけれど わざわざ触りたいという気には不思議とならない
163 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 10:00:09 ] Python Python! www.boingboing.net/2006/01/02/twoheaded_snake_for_.html
164 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 10:04:42 ] ていうか、JavaとかBasicとかも違うのひっかかってるから。
165 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 10:24:01 ] まあ検索なんかに頼らなくても、 愛好家の数で言ったら、大体 C++、Java、Perl、Pythonなど>Ruby、Delphi、VBなど>Lisp、Basic、Pascalなど >Cobol、PL/I、Fortran、Prologなど>>>>>>>>>マイナー言語の数々 って感じになるのは、これらを知ってる奴なら納得するだろ?
166 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 10:49:03 ] 年も改まったのに頭の中は進歩しない奴ばっかりだな。 処理系の実装に関係ない話はどっかよそでやってくれ。
167 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 11:00:34 ] 処理系と関係ないようでいて間接的に関係あります。 処理系を作っても、特徴がなければただの俺言語になる。 特徴があってもLispのように超少数派になる。 いや、Lispは超少数派ではない。←いまここ
168 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 11:04:45 ] 特徴の有無が問題なのかよ レベル低いなあ
169 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 11:06:55 ] 特徴の有無は問題だろ レベル低いなあ ↑これと同じくらいお前の論理は無意味
170 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 11:46:48 ] なんか、このスレすごいレベル低い・・・もうお気に入りから消そうかな・・・ 皆さん、どう思います?
171 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 11:48:34 ] >>165 愛好家ってカテゴリだったらC++の位置はそこじゃねぇだろ、実用性じゃダントツだってのは認めるけどさ。 チームに一人デコ助がいるだけで地獄を「簡単」にみられる言語の筆頭だぜ。
172 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 11:50:58 ] もうスレ違い議論はやめてくれr いつから言語比較スレになったんだ?
173 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 11:54:05 ] 言語比較ほどの価値もないな。 個人個人が好き勝手に好きな言語を推しているに過ぎない。 検索結果がどうのこうのしょうもない外人が書いたようなリストを持ち出そうが、そんなもんが言語研究と何の関係があるんだよ。 お前らもうちょっと理性的に考えたらどうなんだ?
174 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:07:59 ] 自分の好きな言語を押し付けたいだけの厨にそんな事言っても無視するだけだろうな
175 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:09:19 ] >>167 第二段が間違ってるぞ 「特徴があってもLisp系ではLisperしか食いつかないうえ、 Lisperは試食しただけで、またCL Schemeに戻る」だ
176 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:20:32 ] 特徴を「他の言語との比較」に頼ってるあたりが 井の中の蛙臭さの原因なんじゃなかろうか
177 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:27:35 ] まあLispとIoを組み合わせるなんて、いかにも中途半端なオタクが 考えそうなありふれたアイディア。 目だった特徴にはならん。
178 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:28:37 ] >>176 原因はむしろ比較の基準が使用者の人口なことじゃね?
179 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:31:14 ] IoってSmalltalkみたいなもんだろ? CLOSじゃいかんのか?
180 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:34:10 ] Smalltalkはフォロワーを生み出してるところが偉大だな。 LispもSchemeやJavaScript、果てはRubyやPythonに至るまで フォロワーを生み出したことに凄さがある。
181 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:42:45 ] そうニダ Lisp起源ニダ Ioも実はLispが起源ニダ
182 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:50:07 ] >>181 そもそもSmalltalkがLisp起源・・・
183 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:51:57 ] やっぱりLispですね 議論はここに戻る 遠回りするアホは嘲笑の対象だね
184 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 13:13:39 ] >>180 そうだな。何だかんだ言われても、HSPにもフォロワーはいるからな
185 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 13:23:41 ] フォロワーで言ったらCも相当なものだな
186 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 15:14:22 ] HSPにフォロワーはいるのかもしれないが、有名なフォロワーはいないな。
187 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 15:26:07 ] フォロワーってフォローする人の事じゃないの??
188 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 15:44:26 ] そうだな。「信者」の類義語とかかな。
189 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 16:26:19 ] 小室です 今年は、環境ごとにミニ言語をさくっとでっち上げるのが 来ます
190 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 17:38:44 ] 人じゃなくても概念や物でも擬人化して考えれば可じゃないか?
191 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 17:41:28 ] >141 Hspとなでしこって何?って素で思ったよ。漏れはorz 結構はびこってやがったのねん
192 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 17:46:36 ] >>180 の言う「〜のフォロワー」は「〜に大きく影響されて生み出された言語」 という意味だろ。
193 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 18:12:27 ] ワカメちゃん・・・ 僕らはもっと、早く、 出会うべき、ダッタ、のかも、 ウゥン・・・マスオ兄さん シレナヒ・・・ ダッテ・・・もっと早かったらァ・・・ 私ィ、赤チャンだyo^ イイの・・・ イイの・・・ イイ!!
194 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 18:33:22 ] 今日 Essentials of Programming Language を読了した すごくいい本だった 中身は scheme で ML 作る本だった 多相型、型推論、CPS変換まで丁寧すぎるぐらいだった Friedman 本にハズレないっすわ
195 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 19:04:33 ] >>194 > 今日 Essentials of Programming Language を読了した > すごくいい本だった > 中身は scheme で ML 作る本だった > 多相型、型推論、CPS変換まで丁寧すぎるぐらいだった > Friedman 本にハズレないっすわ 大学院のとき、輪講でその本やったんだけど、俺、当時CPSで 脱落しました。orz 今でも、継続を使ったコルーチンなど、どうしてこうなるのか理解 できません。 今は、SICPからやりなおしています。EOPLには、機会を見て再挑戦 したいと思います。
196 名前:デフォルトの名無しさん [2006/01/04(水) 19:38:32 ] やっぱりLispなんですね。 時が流れても、原点はLispであることを認識することができました。
197 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:03:15 ] Lispは機械語で作られてます。 時代が流れても、原点は機械語です。
198 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:16:08 ] こんな感じでスレ立てようか? --- 言語処理系開発議論スレ --- コンパイラ・スクリプトエンジン相談室があまりにアホばっかなんで立てました。 このスレの話題は処理系の実装に関する議論に限定します。 言語の善し悪しなどは遠慮ください。 つまり、実装の議論に直接関わらない限り言語のデザインに関する議論、 もちろんどの言語が優れているだの使われる言語がえらいだの特徴がどうだの 成功失敗だのユーザがどうだのどの言語が起源だのなどなどの議論は禁止。 処理系をどの言語で実装するのがいいだのも禁止。 過疎上等、高S/N比優先でいきましょう。 くだらなくてもにぎわってる方がいいという方にはもっとよいスレがあります↓ 関連スレ: 「コンパイラ・スクリプトエンジン相談室」という名の言語比較厨隔離スレ pc8.2ch.net/test/read.cgi/tech/1135082582/l50
199 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:18:33 ] 機械語は二進数の数字で出来ています。 時代が流れても、原点は二進数の数字です。
200 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:21:25 ] Lispにしろ機械語にしろ、コンピュータで実現可能なアルゴリズムはチューリングマシンで実現可能なことと同値です。 時代が流れても、原点はチューリングマシンです。
201 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:27:47 ] チューリングマシンで実現可能なことは、λ計算で全て書けます。 時代が流れても、原点はλ計算です。
202 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:39:45 ] お久しぶりです、実装について質問させてくださいまし クロージャの実装についてですが例えば、以下のソース (let ((a 0)) (define hoge (lambda (x) (+ a x)))) を eval する際に、クロージャ hoge をどのようにクラス化 するかについてですが、 トップ環境フレームを top 、矢印は親を指すとして上の例だと top <- frame1(aを束縛している) のようにフレームが伸びていて、クロージャオブジェクトは frame1へのポインタをメンバに持つように作成したとします で、このクロージャへの呼び出しをするとき、例えば (hoge 10)としたとき top <- frame2(10を束縛) のように別フレームが伸びるじゃないですか。 このとき、(hoge 10)を評価するときに必要な環境として2つの連結リスト top <- frame1 top <- frame2 が二つ必要になる?という見解はあってますか?評価手順としては x の検索を frame1 に対してかける(見つかる) a の検索を frame1 に対してかける(見つからない) a の検索を frame2(クロージャクラスのメンバ変数) に対してかける(見つかる) を順次探しにいく、という風にするという考え方?で良いのでしょうか なんか上手く日本語化できなかったorzけど 壮大な勘違いをしている可能性もありそうなのでアドバイス求む
203 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:40:52 ] アホとは、Lispをあえて避ける行為のことでしょうか。
204 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:52:31 ] >>198 実装に関する質問だったらレベル低くてもOK? 当方このスレにかなり助けられているので相談できなくなるのは寂しい
205 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:59:23 ] >>198 は他人がレベルを高くしてくれるのを待ってるだけの他力本願野郎。 誰も同意しないので、気にするでない。
206 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 21:04:09 ] >>202 んー、素直にやるなら、hogeの中の評価時には top <- frame1 <- frame2 ってならない? 内側から探してけば自然にレキシカルスコープに なると思うけど。
207 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 21:14:05 ] 俺言語作ってる様な奴は大抵秘匿主義だからな。 俺もそう。 こんなスレのレベルが高くなるわけないだろ。
208 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 21:36:59 ] >>207 俺なんかこのスレの誰も及ばないくらいレベル高いことを秘匿してるけどな。
209 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:25:42 ] >>202 (let ((a 0)) (define hoge (lambda (x) (+ a x)))) (hoge 10) だと、3行目ではシンボルhogeに値が束縛されてないと思うぞ。 (define hoge #f) (let ((a 0)) ; frame1 (set! hoge (lambda (x) (+ a x)))) ; frame2 (hoge 10) たぶん↑のようにしたいんだと思うけど、 この場合だと、letを評価した時点でframe1が作られ、top <- frame1 になり、 lambdaで作られた手続きは top <- frame1 の frame1 部分を参照する。 で、(hoge 10)が評価されたときに frame2 が作られて top <- frame1 <- frame2 になる。 あとはaを検索するときは上から順に。という感じかな。 top <- frame2 のようなリスト(か何か)も必要になるけど、 これは継続絡みの話だと思う。
210 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:26:23 ] このスレ役に立つレスは>>1-6 まで あとは屑
211 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:26:28 ] >>181 >Lisp起源ニダ >Ioも実はLispが起源ニダ Ioじゃないけどそれに近い主張と、 shiro.dreamhost.com/scheme/trans/icad-j.html それに対する反論。 shiro.dreamhost.com/scheme/trans/IsPythonLisp-j.html 反論側のほうが説得力あるような。 >LispのS式表記は、声高に、はっきりと、過去半世紀の間拒否されてきた。 まったくだ。 Lisp信者の改宗の話。 www.gembook.jp/tsum/page.pys?wiki=How+I+lost+my+faith
212 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:29:14 ] 俺には反論側のほうが全く説得力ないように見えるけどな。
213 名前:デフォルトの名無しさん [2006/01/04(水) 23:33:08 ] >>211 最後の記事を実際に見てみると、Lisp信者が改宗した話というよりは、 Lisp信者がLispを絶賛してる話にしか見えないぞ。
214 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:39:29 ] スレ違いも甚だしい これだからLisp厨は・・・
215 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:40:21 ] 211はどう見てもアンチLispだがな。 Lisp厨=アンチLispだったら同意。
216 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:40:36 ] > 他人がレベルを高くしてくれるのを待ってるだけの他力本願野郎 待つのを諦めたからの提案だと思うけど。
217 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:41:10 ] >LispのS式表記は、声高に、はっきりと、過去半世紀の間拒否されてきた。 これってどういう意味で言ってるのか知らないけど、括弧がネストしすぎると 見難いとかめんどくさいとかなら、Lisp信者でもそう思ってると思うぞ。
218 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:46:40 ] >>216 待ってないで自分で書き込めばいいのにね。
219 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 00:04:53 ] >>206 ,209 THX!! なんとなくわかってきたような。 hoge に束縛された closureオブジェクトは メンバに top->frame1 のフレームリストをメンバに持っている、と。 で、(hoge 10) という関数呼び出しを評価するとき hoge はクロージャなので、hoge.env( top->frame1 ) に対して、frame2(10を束縛)を リストに連結して評価する( top->frame1->frame2 )、と。 もし hoge がプリミティブなら掴んだ環境を持っていないので、 素直に10を束縛したフレーム(frame'とする)を top に連結して( top->frame' )評価する、ということでしょうかね? >>209 >あとはaを検索するときは上から順に。 上からというのは最下層からということですか。 top からではないですよね? ありがとうございました。
220 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 00:13:24 ] S 式を叩けば良いみたいな風潮は何とかならんかね。頭悪過ぎなんだが。
221 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 00:36:57 ] つか、S式のメリットって、マクロ以外にあるの? そのマクロにしてからが、 www.rubyist.net/~matz/20030910.html >マクロは生産性の向上には有効、わかりやすさにはかなり不利 って言われてたりするわけだが。
222 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 00:56:31 ] 知らない/調べない/でも批判する...
223 名前:209 mailto:sage [2006/01/05(木) 00:58:00 ] >>219 > 上からというのは frame2側からね。 > もし hoge がプリミティブなら掴んだ環境を持っていないので… プリミティブって、トップレベルで定義された手続きの事かな? 1. topを普通のフレームと同じように扱って、 NULL <- top <- frame1 <- frame2 .... トップベルで定義された手続きはtop環境を参照。 2. topを特別なフレームと考えて NULL <- frame1 <- frame2 ... (検索して見つからなかったらtopから検索) トップレベルで定義された手続きはNULLを参照。 の、どっちかかな。 >>221 個人的には、リストがやたらと扱いやすいことを挙げたい。 >マクロは生産性の向上には有効、わかりやすさにはかなり不利 「構文を言語のユーザが拡張する」という考えに慣れていないだけだと思う。 matz氏自身、Rubyの構文の拡張を何度も行っているが、 Rubyを拡張したことでRubyがわかりづらくなったと本人は言ってないよね?
224 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 01:25:28 ] >>223 >個人的には、リストがやたらと扱いやすいことを挙げたい。 それは、リスト部分だけ、たいがいのスクリプト言語にある配列のリテラル みたいに表記できるだけでは不足なの? あとは簡潔に記述できるクロージャがあれば、(処理を変数などに代入することも できるんだから)プログラムコードまでS式である必要は薄いんじゃ、って 疑問なんだけど。 >「構文を言語のユーザが拡張する」という考えに慣れていないだけだと思う。 ていうかその考え自体に批判的なんじゃないかなあ。 C++のオペレータオーバロードが、同じ文脈でよく批判されるよね? Rubyの場合、Matz氏は言語設計者なんだから、拡張しても問題なし、 でもユーザがやるのは許さん、と。
225 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 01:43:42 ] そんなに知りたかったら自分で触ってみろよ。
226 名前:223 mailto:sage [2006/01/05(木) 02:52:56 ] >>224 > リスト 「後ろ半分だけ実体が共通なリスト」とか、 「変数aの参照しているリストの3番目以降のリストを変数bに参照させたい」とか。 全体から見ると、リストというよりはグラフになるのか。 このスレに沿った話題だと、 構文木をいじったり、クロージャのリストを実装したりが簡単。 > プログラムコードまでS式である必要は薄いんじゃ マクロを一切使わないなら必要ないんじゃない? 自分の作りたいプログラムを書くのに十分な構文をサポートしている言語が 常にあるなら、と読み替えてもいいけど。 > C++のオペレータオーバロードが、同じ文脈で その辺の話なら同意。 利点欠点は大体同じだよね。 マクロの利点欠点ははオペレータオーバロードよりもずっと大きいけど。
227 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 07:25:37 ] >マクロは生産性の向上には有効、わかりやすさにはかなり不利 いいんじゃない?生産性が上がればいいんだし。
228 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 12:01:40 ] >>211 御大ですら自分の好きな言語が一番素敵厨かYo!と思いマスタ(w
229 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 12:18:15 ] 他人を改宗させようとは思わないけれど。 頭の中でコードを考えてる時はグラフなわけ。 S式だとそれをそのままシンプルに書き下せる感じがする。 そして、Emacsの式単位 (文字単位や行単位でなく) の編集は 頭の中のグラフを直接いじっている感覚がある。 他の構文は、読むときも書くときもいちいち頭の中の 構造と字面とを翻訳してやらないとならないんでかえって面倒。
230 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 13:25:03 ] a した結果を b して、その結果を c して、その結果を d する というのを、頭の中では、 (d (c (b (a ... )))) と考えるんだ、凄い頭だね
231 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 13:41:18 ] >>230 >a した結果を b して、その結果を c して、その結果を d する この時点で違ってんじゃないの、Lisp 脳と C 脳では。
232 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 13:50:39 ] 要は人によるってことでおさまりそうな議論だな
233 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 13:52:08 ] S 式に特定した話というではないが、read/write invariance なのが良いとは聞くね。 計算途中のデータを引っ張りだして、ちょっと修正してまた計算みたいなのを何も考えずに出来る。
234 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 14:58:34 ] >>230 そっちの方向にネストが深くなるときってのは、だいたい 逆に考えてる。欲しいものが先にあって、最後にdを呼べば それが得られる、dがその結果を出すためにはcが返す値 が必要で… とトップダウンで。 逆にボトムアップで考えるときはletが深くなる。構造が 見えて来たらどんどん整理するけど。
235 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 15:18:04 ] >>231 Cでも d(c(b(a(..)))) なんだけど・・・ C++なら、hoge.a().b().c().d() とも出来る(どっちも出来る)が
236 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 15:37:37 ] >>235 文法の話じゃなくて、「〜して、次に〜する」という手続き的な考え方をしていないんじゃないかって事。
237 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 18:14:22 ] >>235 あ、それ初めて知った
238 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 18:25:13 ] 逆にボトムアップで考えるときは・・・、とか書いてんじゃんw let云々はCで言えば a_result = a(...); b_result = b(a_result); c_result = c(b_result); d(c_result); といったやり方だし これを、S式で書くとグダグダになるが
239 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:04:44 ] だからツリーをいじってるって言ってるだろ。 (let ((ra (a x))) (let ((rb (b ra))) (let ((rc (c rb))) (d rc)))) でカーソルが一番最初にある時に、rcを束縛する let式に行くのは C-M-d C-M-f C-M-f C-M-d C-M-f C-M-f そのlet式全体をリファクタリングするために外に出したければ C-M-Space C-M-w でカット。 (a x), (b ra), (c rb) の部分がどんなに複雑になっても この操作は変わらない。木構造が変わらないからね。 a_result = a(...); b_result = b(a_result); c_result = c(b_result); d(c_result); でa(), b(), c() の部分が何行にもわたる式になった時に 同じことができるのかい。
240 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:08:17 ] スレ違い乙
241 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:12:42 ] emacs講座ですか
242 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:16:25 ] >>238 let*ってそのためにあると思ってたんだけど…。 (let* ((a-result (a ...)) (b-result (b a-result)) (c-result (c b-result))) (d c-result)) 使った事ないけどさ。
243 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:26:42 ] どっちにしても、ぐだぐだやん。
244 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 20:06:48 ] 何がぐだぐだなのかわからん。
245 名前:デフォルトの名無しさん [2006/01/05(木) 21:30:18 ] Lisp脳と聞いて、Ruby脳が飛んで着ました。
246 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 21:42:14 ] Flexのライセンスについて質問なのですが、いまいち不明なところがあります。 Flexをつかって生成されたものに関してなのですが、 Note that the "flex.skl" scanner skeleton carries no copyright notice. You are free to do whatever you please with scanners generated using flex; for them, you are not even bound by the above copyright. とあるので、生成されたものに関しては著作権表示すらなしに組み込むことが可能であってますでしょうか? それとも、 This product includes software developed by the University of California, Berkeley and its contributors この一文はやはりいれておかなければならないのでしょうか? 識者の方々よろしければご教授いただけたらとおもいます。
247 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 23:24:12 ] 普通に読めば著作権表示入れる必要はないと思うけど…。
248 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 23:42:56 ] ここは Copyright and/or Copyleft については素人集団だからな。 一応、著作権スレにでもあたってみたら?
249 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 23:49:49 ] そういうツールで生成したやつは、たいてい著作権的には ツールの方の著作権は関係ないって感じになる。 ライブラリリンクとかで、生成した成果物が、他人の著作物を含むと ややこしくなるがこの場合そうじゃないしな。
250 名前:デフォルトの名無しさん [2006/01/06(金) 00:14:17 ] >>249 その程度なら誰でも想像できるんだけどな 中途半端なカキコ見は混乱のもと
251 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 00:29:25 ] ていうか、246はどう見ても著作権表示入れる必要はないと はっきり書いてあるようにしか見えんが。
252 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 00:56:01 ] >>251 俺にもそう読める。246よ著作権表示は一切不要と心得よ
253 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 01:23:45 ] 246です。 みなさま質問に対してのご返答ありがとうございました。 ライセンスは色々とありまして、その中でも、特にツールで生成されたものに対しては扱いが分かりづらいものが ありまして質問させて頂くに至りました。 コンパイラ・スクリプトエンジンに関連あるFlexについての質問でしたが、微妙にスレ違いだったかもしれません。 そのために気を害してしまった方がおられましたら、お詫び致します。
254 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 01:25:31 ] もともとスレ違いの連続みたいなスレだから
255 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 03:20:02 ] 俺言語を作ってる人達の雑談スレッドだろ
256 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 05:58:15 ] >>255 俺言語は非難しないが、俺様言語な香具師が来ると痛すぎ
257 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 08:06:18 ] 俺言語と俺様言語の違いとは?
258 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 23:18:40 ] Lisp と Ruby の違いと解く。 さて、その心は?
259 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 23:55:00 ] >>257 俺言語は局所的用途の為に作られたもの 俺様言語は自己満足のたまもの。
260 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 23:58:22 ] WinAPIの質問ですいませんけど、 WindowsでJIT作ろうとしたら void *mem = VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_READWRITE) memの先にコード書き込む VirtualProtect(mem, size, PAGE_EXECUTE, &old) ジャンプする で良いんでしょうか?
261 名前:デフォルトの名無しさん mailto:sage [2006/01/07(土) 00:46:43 ] WRITEをはずしておくと意図しないアレをアレできるからアレかも
262 名前:デフォルトの名無しさん [2006/01/07(土) 19:10:16 ] >>259 うまい! あんた、扇子あるよ。
263 名前:デフォルトの名無しさん mailto:sage [2006/01/07(土) 20:11:22 ] ま、何を作ろうともLispに還元されるわけだけどね。
264 名前:デフォルトの名無しさん mailto:sage [2006/01/07(土) 21:27:15 ] >>261 PAGE_EXECUTE コミット済みページ領域に対する実行アクセス権を有効にします。 このコミット済み領域の読み取りまたは書き込みを行おうとすると、 アクセス違反が発生します。
265 名前:デフォルトの名無しさん mailto:sage [2006/01/08(日) 05:32:27 ] >>264 そうだったんか・・・ PAGE_EXECUTE_READ とは別か・・・
266 名前:デフォルトの名無しさん [2006/01/08(日) 23:06:40 ] りんご
267 名前:デフォルトの名無しさん mailto:sage [2006/01/08(日) 23:30:44 ] ===== FORTRAN 77 =====
268 名前:デフォルトの名無しさん mailto:sage [2006/01/09(月) 01:38:26 ] DEFINT A-Z
269 名前:デフォルトの名無しさん [2006/01/10(火) 23:40:58 ] なんで、最適化用語って変なのばかりなんだろう? もうちょっと、かっこいい名前つけられんのかねぇ?
270 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 23:51:15 ] コンパイラの用語って変なのばっかり。 還元(reduce)って言葉見つけたとき、酸化還元の還元かとおもったよ。
271 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 23:56:40 ] 合ってるよ。reduce には酸化還元の還元という意味もある。
272 名前:デフォルトの名無しさん [2006/01/11(水) 00:05:43 ] コンパイラ用語に使うときは意訳でよいから別の言葉を使って欲しかった。
273 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 00:42:29 ] もとに戻すんだから意味的にも還元で問題なかろう。 日本語力の乏しさを棚に上げて何言ってんだ。
274 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 01:05:57 ] >>269 例えば? >>272 じゃ、「リデュース」で。
275 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 01:22:05 ] 上方遷移…余計わからんな
276 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 03:36:45 ] >>270 コンピュータ用語自体変なの多いから気にスンナ
277 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 05:21:22 ] 自己満足のために、lispのdefmacroのc言語風なものを実装してます。 for(i=0,i<10,i++,printf("%d\n",i)); といったかんじのことは出来るようになったのですが、 for(i=0;i<10;i++){printf("%d\n",i);}と言った外側にブロックを 持ったマクロは、どうやって実現したらいいか悩んでます。 何かいい参考資料ないでしょうか???
278 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 06:05:07 ] >>277 ttp://mike-austin.com/blog/2005/10/dylan-macro-system-is-badass.html
279 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 08:25:43 ] >>278 ありがとうございます。 Dylanですか。初めて聞きました。 結構古い言語なんですね。仕様読んでみます。 使ってみたい気がするのですが、windowsバイナリとか落ちてないのかなぁ。
280 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 08:36:56 ] >>279 商用の Dylan 処理系がオープンソースになったものがあるよ。 www.gwydiondylan.org/downloads/opendylan/
281 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 12:53:41 ] >>280 ほんとだ。ちょっと探せば見つかるじゃん。orz ありがとうござます。 Hygieneって書いてあるので、基本的に名前の衝突が回避されていて、 BNFを書くような感じでパターン照合を行うものがDylanのマクロと考えてよいのでしょうか? パターン照合はやったことがないのですが、 構文解析器の自動生成ができる技術力ないと作れないような気がするのですが。。。
282 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 13:27:11 ] >>281 Schemeのsyntax-rulesの美しさに萌えろ。S式最強。
283 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 14:11:20 ] >>282 Schemeのsyntax-rulesが作れれば、そりゃ、もー、うれしいんですけど。 S式だとS式でない場合に比べて、実装が簡単になるのでしょうか? それだと、うれしいんだけどなぁ。
284 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 15:55:15 ] >>283 どんな文法を使おうと、結局はツリーにしてマッチや変換をかけるでしょ。 S式の場合は最初からツリーになってるから前半の(どっちかっつうとtrivialな) ステージが省ける、ってだけじゃないかと。 言語デザイナの立場だと文法も重要なんだろうけど。
285 名前:269 mailto:sage [2006/01/11(水) 20:30:31 ] >>274 例えば、皮剥き
286 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 20:53:09 ] パターンマッチマクロってどんな syntax の言語でも実装可能なの?
287 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 00:51:45 ] 自分の欲しいsyntaxのマクロを人に書かせたいと見たw
288 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 06:39:51 ] >>286 可能か不可能かなら可能でしょう。 使いやすいとかわかりやすいものになるかどうかは別。
289 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 08:35:55 ] >>288 どうもありがとう。 >>287 Ruby や ECMAScript, Python は acceptable lisp と言われているけど、 マクロを追加すればもっと Lisp の強力さに近付くかなと。
290 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 11:28:30 ] >>287 自分は、schemeのsyntax-rulesを実装したいのだけど、 わからないので、簡単なソース付きで解説してほしいです。 自分のほしい言語をすべて書いてもらえたら幸せです。 schemeのスレとかで聞いたほうがいいのかなぁ? >>287 >>288 >>289 PythonはDylanに似たマクロが入るとかいう噂がある(あった?)ようです。 どんな言語でも適用できそうなので、(よくわかってないのですが) Dylanのマクロのアイディアはとにかく凄いような気がします。 C用のDylan風マクロとか、Java用のDylan風マクロとかあったら そりゃもう、うれしいんじゃないかなぁと思います。
291 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 11:40:09 ] schemeのスレで質問してみました。
292 名前:トラックバック ★ mailto:sage [2006/01/12(木) 21:15:09 ] 【トラックバック来たよ】 (ver. 0.11) [タイトル] 萌え言語を作ろう! [発ブログ] プログラム技術@2ch掲示板 pc8.2ch.net/test/read.cgi/tech/1131442510/l50 [=要約=] 日本語で書ける言語では「ひまわり」なんてのがありますが いまいち使いづらいというか、萌えないw ということで、萌え萌えな言語を作ってみようと言う企画です。
293 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 22:06:16 ] 萌言語案 ハァハァ{ … } の機能 while(1){ ... }
294 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 23:04:56 ] 萌えとハァハァは別だよ派 萌えもハァハァも一緒だよ派
295 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 00:30:47 ] #define _ 1 とかやると、 for (;_;) 仕事; となるわなw 萌えないが、実感はむしろこっちのほうが(泣)
296 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 00:42:10 ] #define T_T 1 while (T_T) 仕事;
297 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 18:49:31 ] #define ハァハァ 999 while(ハァハァ) 言語スレ
298 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 23:33:15 ] 変な用語の例(その2) ・せわしない。。。 ・なまけた。。。
299 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 00:03:57 ] bool A = ture; bool T_T = true; for(;A;) wile(T_T) int y=-(T_T);
300 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 10:39:00 ] assert マクロって must って名前にしたほうがよくない? assert ( a == b ) → must( a == b )
301 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 11:31:50 ] assert that a equals b (thatは略可) はそのまま読めるけど、mustはどう読んだらいいんだ?
302 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 13:16:28 ] a == b で「なければならない」 should ( a == b ) とか must( a == b )
303 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 15:18:27 ] must(a == b) を a == b でなければならないと読むのは 英語的におかしくないか。 ! 演算子みたいに must が演算子だとして a must== b ならわかるが。
304 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 15:25:59 ] must be (a is equal to b) なんじゃないの。
305 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 15:42:50 ] だから、それが英語的におかしいといっている。
306 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 15:50:52 ] じゃ、 must be a condition of (a == b) は?
307 名前:300 mailto:sage [2006/01/14(土) 16:14:15 ] いや、まあそんなに深い意味で発言したわけじゃないけど 英語的にどうこうというか、 自分的にはこっちのほうが直感的かなと思っただけ 初心者に assert を教えたらピンとこなさそうな顔してたもんだから
308 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 16:24:42 ] 個人的には ensure が良いと思う。ちょっと意味合いが変わって来ちゃうけど。
309 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 18:15:19 ] >>307 assertって単語になじみが無いだけだ、辞書引かせてからassertを使った例文を毎日一個5営業日続ければ覚える。
310 名前:デフォルトの名無しさん [2006/01/14(土) 18:37:19 ] 俺なら、 must.be.A.eq.B が一番すんなりと入るかな?
311 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 19:04:13 ] 俺なら、 zettai(a == b) が一番すんなりと入るわ。
312 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 19:05:53 ] (a == b)じゃなきゃいやん
313 名前:300 mailto:sage [2006/01/14(土) 19:41:09 ] assert だけだと、どっちの場合に警告するのかよくわかんなくない? a == b 「だったら」警告するのか a == b 「でなければ」警告するのか。 must とか(あるいは311,312 でもいいけど)だと、 明らかに後者が連想されるんじゃないかなと思った
314 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 19:57:21 ] 「ここでは(a == b)になると断言する」と日本語で言っても?
315 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 20:01:06 ] assert に 『警告する』 って意味は無いんだよなぁ……。
316 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 20:01:45 ] assert false の場合はどーやって解釈すりゃいい?
317 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 20:03:01 ] 『常に偽であると表明する』 prolog の fail みたいな。
318 名前:300 mailto:sage [2006/01/14(土) 20:37:49 ] >>315 あ、ホントだ、やべえ!長いこと勘違いしとった!! 「断言する」で問題ないじゃん! てことは、assert でも問題ナスorz
319 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 20:43:02 ] ドンマイ
320 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 20:43:14 ] >>316 正確には「もしここに来たら(a == b)がtrueであると断言する」と思えばいい。 assert falseは「もしここに来たらfalseがtrueであると断言する」、 つまり「ここには来ることはありえないと断言する」。
321 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 20:59:13 ] #define assert 断言する 断言する(a == b)
322 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 21:02:32 ] スキャナとパーザって、マルチバイト文字を通せるのですか?
323 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 21:12:13 ] 通すように作れば通る。
324 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 21:56:47 ] シングルバイト文字の8バイトの連続だよ? たまたま 0x80 より大きいだけ
325 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 22:15:08 ] >>324 アフォ来た〜〜〜!!
326 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 01:00:21 ] >>324 8バイトって何だ8バイトって。 実際には322の言うように、通るように作れば通るし、今時flexもbisonも 8bitは通す。マルチバイト文字というと、SJISだと0x5c問題が出てくる 可能性は歩けど、それはlexerのつくりの問題だよな。
327 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 23:35:26 ] 変な用語その3 マトン
328 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 23:41:00 ] 羊肉?
329 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 23:41:51 ] 自動羊肉
330 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 23:57:17 ] オートマタ。
331 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 00:59:16 ] オート マトン というよりは オー トマトン 何だが。
332 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 04:17:47 ] Oh! Tomato! n?
333 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 05:17:47 ] コンピュータ関係の変な用語ってのはKILLとかZOMBIEとかENTITYとかじゃねぇのか?
334 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 07:13:02 ] デムパな単語が、そんなに嫌か?
335 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 22:02:30 ] >>327 automate(自動)+ton(〜風)、「自動っぽいもの」くらいの意味。
336 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 23:15:29 ] >>335 こらこら。だますんじゃない。
337 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 23:29:55 ] 自動人形
338 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 01:33:13 ] ギリシャ語のautomatos(自立して動くもの)が語源だっけか。 別にどうでもいいけど。
339 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 23:22:03 ] >>329 昔食肉工場の機械が、簡易プログラムのような物で動いていて たまたま羊毛の盛んな時期と重なった
340 名前:デフォルトの名無しさん mailto:sage [2006/01/18(水) 00:58:17 ] >>339 ツマンネ しかしあれだな、Lisp叩きやRuby叩きの話が出て来ると、すぐ「実装の話をしろよ!」という 主張が出て来るが、実装の話が好きな人達は、スレが閑散としてても実装の話はしないんだよな。
341 名前:デフォルトの名無しさん mailto:sage [2006/01/18(水) 01:14:52 ] assertやらオートマータやらの話をしている輩が何を偉そうに
342 名前:デフォルトの名無しさん mailto:sage [2006/01/18(水) 01:26:06 ] >>341 何一つ自分からネタ振れない輩が何を偉そうに。 つか、俺はassertやオートマータの話なんかしてないし。 だいたい、ここじゃちょくちょく構文解析+αのレベルで「間違い」が書き込まれる ことがあるんだが、自称凄い人達はその訂正もしてくれないのな。
343 名前:デフォルトの名無しさん mailto:sage [2006/01/18(水) 08:54:41 ] まず、自称このスレの間違いをわかってる君が、具体的に間違いを指摘してみては?
344 名前:260 mailto:sage [2006/01/18(水) 23:33:35 ] >>342 詳しい人らしいんで返答を乞うてみます。
345 名前:デフォルトの名無しさん mailto:sage [2006/01/19(木) 06:52:05 ] 342が「自分に何がわかっているのかを書かなくていい理由」を考えつくまで もう少しお待ち下さい。
346 名前:342ではないけれど mailto:sage [2006/01/19(木) 21:35:50 ] なぜこんな流れに。。。 俺はレベルの低い実装の質問を書き込んでいたものですが 342の人は多分質問に答えてくれた人なんじゃないかという 気がしています。 逆に意地悪な感じで初心者を馬鹿にしている人達は 初心者の質問が書かれるたびに 「このスレ〜以外は意味ない」とかそんなんばかりでしょう。 そういうのはレベルが低くはないんですか?
347 名前:デフォルトの名無しさん mailto:sage [2006/01/19(木) 22:39:30 ] エスパー光臨
348 名前:デフォルトの名無しさん [2006/01/19(木) 22:59:51 ] マシンのネイティブコードを吐き出すための情報(命令セットってやつ?)はどこから入手したらいいのですか? VMや構文木直辿りのインタプリタしかやったことないのでそろそろコンパイラにチャレンジです。
349 名前:デフォルトの名無しさん mailto:sage [2006/01/19(木) 23:16:32 ] >>348 えーと、ギャグで言ってるんだよね?
350 名前:デフォルトの名無しさん mailto:sage [2006/01/19(木) 23:23:56 ] 前からテンプラにその情報源がないのは、 ひどく片手落ちな気がしてたよ
351 名前:デフォルトの名無しさん mailto:sage [2006/01/19(木) 23:35:30 ] >>350 どのマシンがターゲットなんだかワカランのじゃ話にもならないし、少しだけ乗せるとアンチとか出てきて喧嘩になるし ろくな事ないからじゃないの?
352 名前:デフォルトの名無しさん mailto:sage [2006/01/19(木) 23:42:03 ] IA32だけならば、誰も文句いわねえと思うが・・・ マカーでさえもう文句いわねえ とおもったが、このスレの二大言語(笑)の信者は 蚊帳の外に置かれてしまうかw
353 名前:デフォルトの名無しさん mailto:sage [2006/01/19(木) 23:47:30 ] >>352 でIA32の場合インテルに資料請求するか秋葉あたりでデータシート買うって言う選択肢な訳だけど。
354 名前:デフォルトの名無しさん mailto:sage [2006/01/19(木) 23:51:23 ] >>352 の意味が分からん。
355 名前:デフォルトの名無しさん mailto:sage [2006/01/19(木) 23:52:08 ] lisp原理主義者はcarをeaxに、cdrをedxに。 >>353 例のpdfじゃ不足?
356 名前:デフォルトの名無しさん mailto:sage [2006/01/20(金) 02:46:07 ] ttp://wiki.osdev.info/index.php?Pentium でどうでしょう
357 名前:デフォルトの名無しさん mailto:sage [2006/01/20(金) 02:53:46 ] PowerPC opensolaris.org/os/community/power_pc/powerpc_doc_library/
358 名前:デフォルトの名無しさん mailto:sage [2006/01/20(金) 05:00:59 ] > でIA32の場合インテルに資料請求するか秋葉あたりでデータシート買うって言う選 > 択肢な訳だけど。 それ、いつの時代の話? ほとんどのCPUの命令セットはWebから落せる。 しかも IA32 の場合、日本語に訳されてる。 www.intel.com/jp/developer/download/ にある IA-32 インテル アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル からどうぞ。
359 名前:デフォルトの名無しさん mailto:sage [2006/01/20(金) 05:29:13 ] >>358 紙のマニュアルの方が扱いが楽だからなぁ。 プリントすると紙質の関係でつらいからね。
360 名前:デフォルトの名無しさん mailto:sage [2006/01/20(金) 07:49:40 ] そんなの選択肢からはずす理由にはならんだろ。 知らなかっただけなのに、言い訳苦しすぎですよ先輩。
361 名前:デフォルトの名無しさん [2006/01/22(日) 12:39:02 ] 新しい言語本がでてるな。 リンゴに続けるか?
362 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 13:30:05 ] >>361 どれ?
363 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 14:24:41 ] >>361 KWSK
364 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 14:25:30 ] っていうかリンゴってどれだw スモールコンパイラの制作で学ぶプログラムのしくみ?
365 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 19:48:58 ] >>364 リンゴ本はその通り。 別名綾タソ本
366 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 23:16:51 ] 手続き呼び出し/呼び出されの制御はどうするのが一番簡単だと思います? 一時変数・局所データとか考えると色々と面倒…… 一時変数については呼び出し側にスタック作っといて、呼び出され側が 勝手に取り出すようにするのが簡単かな?スタックマシンにすると構文木 を解釈するのが面倒臭そうだし……
367 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 00:04:05 ] >>366 作ろうとしているのが機械語吐くコンパイラなのか、バイトコード吐くのか、 Rubyみたいに解析木を実行するタイプなのかもわからんでは何も言えんわな。 >一時変数については呼び出し側にスタック作っといて、呼び出され側が >勝手に取り出すようにするのが簡単かな? 呼び出し側と呼び出され側でスタックが違うの? >スタックマシンにすると構文木を解釈するのが面倒臭そうだし…… 意味わかんねえっす。どっちみち構文木は解釈しなきゃいけないのでは。
368 名前:366 mailto:sage [2006/01/24(火) 00:46:10 ] >367 おお、すみませぬ。インタープリタ作ろうとしています。 まずの目標はRubyみたいな解析木を実行するタイプですね。 >呼び出し側と呼び出され側でスタックが違うの? 一時変数の管理責任と、手続呼び出しの動作主体をどのように割り振ろうかな…… と思いまして。前述の例だと 一時変数の管理責任:呼出側 -> スタック作って管理 動作主体:呼び出され側 -> 駆動はこちら とかを考えています。 >意味わかんねえっす。どっちみち構文木は解釈しなきゃいけないのでは。 確かにそうですな……知恵が回らなかった…… 結局、 今日一日考えた結果、スタックマシンの連鎖みたいなのを作ってみることにしました。
369 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 01:29:56 ] >>368 実行環境フレームとか言う奴の事さしてんの?>>スタックマシンの連鎖
370 名前:366 mailto:sage [2006/01/24(火) 02:47:12 ] どっちかっていうと、駆動レコード+スタックマシンといった感じですかね。 (実装の手を抜くために)駆動ごとにスタックマシンを付けた感じ。
371 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 20:35:38 ] お手本がRubyだと、この擦れ的には受けが悪いかもw おれは第三世
372 名前:デフォルトの名無しさん [2006/01/25(水) 01:20:34 ] LISP最高!
373 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 01:42:38 ] >>372 なんでそこでLupinと言ってぼけないだよ
374 名前:366 mailto:sage [2006/01/25(水) 22:18:52 ] そういや、単純なスタックマシンだと(いくつ実引数を渡すかは関数側で決まるから) オーバーロードでひどい目に会いそうですな…… 取りあえずはスタックのリストを作って回避しようかと考えていますが、他にどんな アイディアがあります?
375 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 22:24:52 ] オーバーロードを何時解決するかによる。コンパイル時に全部解決するなら問題あるまい。
376 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 23:18:18 ] >>375 メソッド名とシグニチャが結びついてれば実行時解釈でも問題ないしね。
377 名前:366 mailto:sage [2006/01/25(水) 23:20:36 ] そういやそうですな。 でも、折角だから多値戻しを実装してみたい気もするんですよね…… Rubyみたいに配列を戻す手もありますが。
378 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 23:37:20 ] あまり欲張らない方がいいよ。複雑にしすぎると作ってて嫌になる。
379 名前:366 mailto:sage [2006/01/26(木) 00:06:21 ] ははは、ご心配なく。かれこれ1年以上弄んでいますので、嫌んなるのは慣れっこです。 仕事だったら素直にC++使いますし。 まあ、未だに駆動が回んなくて鬱ですが…… “1+1”ができるのはいつになることやら……
380 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 18:25:17 ] ルビーに学べ
381 名前:(ぱ) mailto:sage [2006/01/26(木) 21:14:22 ] どうもです。上のほうで出ていた「ライターのM」です(たぶん)。 Rubyのような解析木実行タイプの言語を作ろうとしていて、かつ、独自スタックも 使うつもりなら、うちのcrowbarなんかは参考になりませんか? kmaebashi.com/programmer/devlang/ >>368 >一時変数の管理責任:呼出側 -> スタック作って管理 >動作主体:呼び出され側 -> 駆動はこちら ここで言っている「一時変数」がローカル変数のことであれば、管理責任は 呼び出され側にあるのでは。呼び出し側は呼び出され側のローカル変数を 知らないからです。 引数についてであれば、呼び出し側で領域を確保するにしても、別段それを スタックに積む必要はないように思います。 crowbarの場合、駆動レコードごとに、変数名と値の対応表を持っています (ver.0.3以降は、クロージャの実現のためにスコープチェーンを持っているので ちょっとややこしいですが)。関数呼び出しでは、呼び出し時に、呼び出され側の 駆動レコード(CRB_LocalEnvironment)を作成し、その中に、ローカル変数として、 実引数の値を突っ込んでいるだけです。 引数やローカル変数の領域をスタックに確保するという実装ももちろん考えられますが (crowbarでは代入により実行時にローカル変数が作られるのでそれはできなかった)、 その場合、引数は呼び出し側で積むことになるのでは。 いずれにしても、関数呼出しごとにスタックを持つ必要なないと思うのですが、 どうでしょうか。crowbarは演算用の独自スタックを持っていますが、スタックは1本です。 まあ、crowbarのスタックは足りなくなるとrealloc()するので、そのへんの効率低下を 嫌って関数呼び出しごとに持つ、というのならわかりますけど。
382 名前:(ぱ) mailto:sage [2006/01/26(木) 21:22:58 ] ついでに上の方の質問に。 >>91 >ライターのM氏のページで、Cでの実装だと型そのものはUNIONにまとめてる感じでした。 >やっぱり処理系が扱う変数型をまとめてUNIONにしてしまってフラグ変数で型を見分けて扱うというのが一般的なんでしょうか? 一般的かどうかは知りませんが、crowbarでは値を保持するために2箇所で共用体を使っています。 変数の値を直接保持するCRB_Valueと、変数から指された先のヒープ中にある、 CRB_Objectです。 >そのときに、たとえばWinapiに対する拡張とか、製作時点で未知のオブジェクトに対応する場合はどういう方向になるんでしょうか? Winapiに対する拡張とかを狙って、ネイティブポインタ型というのを導入しています。 luaのユーザデータ型も同じようなもののように見えます。 >>96 >C言語的構造体指向OO風味だと、メモリの配置さえあってれば問題なく下位の構造体にアクセスできるから、 >なんとか構造体EXとかは可能だと思う。関数ポインタつければ仮想関数もどきとかもできますぜ。 これは、crowbarで言うところのCRB_Objectについては可能でも、CRB_Valueについては 不可能ですよね。
383 名前:366 mailto:sage [2006/01/27(金) 00:10:43 ] >381 情報サンクスです。考え方のところとか色々と参考になります。 ただ、自分の目指しているのは型なし&プロトタイプ指向ですので、やっぱりちょっと ポイントが違うようですね。まあ、その違いを見るのも楽しいですが。 >ここで言っている「一時変数」がローカル変数のことであれば、 いえ、関数の戻り値ですね。最初は関数の戻り値を次の継続に直接渡そうかと 考えていたのですが、そうすると今の自分のアイディアだと(継続のずっと先にある) ブロックのローカル変数から実引数を取ってくるのが面倒にだったので、少し悩んでました。 スコープチェーン作って管理するのもいいのですが、もっと簡単な方法が無いかな……と いうことで、取りあえずはスタックマシンを利用する方法でトライすることにします。 >いずれにしても、関数呼出しごとにスタックを持つ必要なないと思うのですが、 call/ccを実装したいと思っているのですが、その都度スタックを保存するのも面倒だし いっそのこと全部の継続にスタック持たせちまえ、という乱暴なアイディアから来ています。 ……まだ実装できていないので、本当にうまくいくのか不明ですが……
384 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 00:27:50 ] アイデアだけではなぁ、 なぜ既にあるものを使わん? アフォ?
385 名前:366 mailto:sage [2006/01/27(金) 00:37:09 ] >384 既にある言語では無いから作っているんだけど……Schemeは近いものを感じるけどね。 あと、勉強という意味では車輪の再発明も重要だよ。
386 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 02:00:33 ] 一年以上やって1+1も出来ないんだろ? 勉強になってるか疑問だな。 >ただ、自分の目指しているのは型なし&プロトタイプ指向ですので、やっぱりちょっと >ポイントが違うようですね。まあ、その違いを見るのも楽しいですが。 形無し&プロトタイプ指向だからポイント違う? 何言ってんだお前。
387 名前:366 mailto:sage [2006/01/27(金) 02:45:51 ] > 一年以上やって1+1も出来ないんだろ? > 勉強になってるか疑問だな。 あら、そう? 1+1てけっこう大変だよ? まあ、継続とか移譲とかグラフとかオートマトンとか、回り道が多いちゃ多いがね。 それもまた勉強。 >形無し&プロトタイプ指向だからポイント違う? >何言ってんだお前。 どういう意味?
388 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 09:10:54 ] もういいから来るな。 一年以上で未だ1+1もできないほど頭悪いんだろ? これから先何年もアホ質問書き込まれるかと思ったらゾッとする。
389 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 12:24:31 ] 継続でスタック保存するのが面倒ってんなら、駆動レコードを全部 ヒープに置くって手もあるが。それだとcall/ccは駆動レコード チェインの頭の掴んでおくだけだよ。 性能を気にしてるわけでもなさそうだし、駆動レコードごとに スタックなんて面倒なことをなぜするのかよくわからない。
390 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 13:54:36 ] Lisp使いはリストを見ると車とかCD-Rとかを使い出す
391 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 13:58:48 ] >>390 どうして車とCDRに発想が結びつくの?
392 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 14:28:07 ] なにこの変なマジレス
393 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 14:39:34 ] Lisp使いはCD-Rのことを「クダー」と読むんだな
394 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 17:54:48 ] 久多良木信者はLisp使いか否か?
395 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 18:21:20 ] >>391 しらないけどcarとcdrだからじゃない?
396 名前:(ぱ) mailto:sage [2006/01/27(金) 20:21:31 ] >>383 >ただ、自分の目指しているのは型なし&プロトタイプ指向ですので、やっぱりちょっと >ポイントが違うようですね。まあ、その違いを見るのも楽しいですが。 crowbarは思いっきり型なし&プロトタイプベースのつもりですが。 >いえ、関数の戻り値ですね。最初は関数の戻り値を次の継続に直接渡そうかと >考えていたのですが、そうすると今の自分のアイディアだと(継続のずっと先にある) >ブロックのローカル変数から実引数を取ってくるのが面倒にだったので、少し悩んでました。 継続をやりたいということ自体初耳なわけですが。 継続は詳しくないので以下見当外れならすみませんですが、 「Rubyみたいな解析木を実行するタイプ」で、解析木を再帰で辿っているとすれば、 「Cのスタックどうするの?」という疑問が出てきます。 「関数の戻り値を次の継続に直接渡そう」ということだから、CPS変換を前提にしている? だとすればそれはもう「Rubyみたいな解析木を実行するタイプ」とは言えないのでは。 >>389 関数内での、計算途中の値を積んでおくスタックのことなんじゃないでしょうか。
397 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 22:07:07 ] 1+1ねぇ、マジレスするけど、 yacc触りはじめてその日でできたよw
398 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 22:27:40 ] コンパイラ構成法の一番最初の項目が電卓だからな。
399 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 22:43:00 ] 1+1が一年以上できないとか言ってるなら、いったんScheme作ればいいのに。 コアな部分に限れば仮想マシンとコンパイラそれぞれ一日で書けるよ。 そしたら作りたい俺様言語で何をどうするかも少しは見えてくるんじゃね?
400 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 22:45:01 ] >>398 うちの大学は字句解析だったよ…。
401 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 23:53:04 ] >>398 漏れが最初にやったのは逆ポーランド式の理解だった・・・懐かしいな
402 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 00:42:37 ] きっかけを大別すると、 ・yacc/lexまたはbison/flexで独学 ・大学や専学でコンパイラ/インタプリタの講義 って感じなのかな?
403 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 00:43:46 ] 授業でちょっとやったけど、あまりに講義資料・内容がヘボかったから独学に切り替えたなぁ。
404 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 00:58:28 ] 情報処理の講師の説明よりも、数学の講師の説明の方が、実は分かりやすかったりするんだよな。w
405 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 01:02:41 ] アルゴリズムの大半は、数学の勉強だからな
406 名前:366 mailto:sage [2006/01/28(土) 04:22:49 ] しまった……中途半端な情報で混乱させていますね。すみません >389 今作っている実装だと、駆動レコードチェイン+駆動レコード内のスタックといった 感じにしています。>396の指摘通りですね……と言っても詳しく説明していないから わかんないよね。ごめん >396 >crowbarは思いっきり型なし&プロトタイプベースのつもりですが。 失礼しました。まだ読み込んでいないので…… >「Rubyみたいな解析木を実行するタイプ」で、解析木を再帰で辿っているとすれば、 >「Cのスタックどうするの?」という疑問が出てきます。 今のところ、Cの関数処理プロセスに頼らない(再帰を使わない)で、 ・解析木から継続の連鎖を作る ・継続を駆動する という駆動を外部からループで回そうとしています。 >399 そうなんだけど、作りたいのはSchemeじゃないし、Schemeからちょっと離れているし。 ……とはいっても、練習に作ってみるのもいい勉強かな…… >388 はあ。
407 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 04:27:43 ] 1年で1+1が作れない、最低限の理解力すら無い人間が406を書いたと思うと その恐ろしい知ったかぶりに愕然とする
408 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 04:45:28 ] しばらく放っとけないのか?
409 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 06:12:16 ] 俺は407の方の噛みつき具合いの方が愕然とする。
410 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 08:15:29 ] >>409 そう? このスレの伝統だと思ってた。
411 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 10:56:44 ] 1+1 って、意外と難しいよ。特に数値オブジェクトを + メソッドで加算する場合……とか。 経験ない人が独学でやるには、1年はちょっとキツ過ぎじゃないか? とか擁護してみる。
412 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 11:08:31 ] まあそういうのは人による部分が大きいよ。 CSのバックグラウンドあってOOにドップリつかった人がやり始めれば理解するのに1日かからないだろうし、逆にこれからプログラミングを始めますって人には1年じゃ無理だろうし。 極端に言えばね。 一口に何日で理解したとか何年かかっても理解できないとかから能力を量ってしまうのはナンセンスだとは思う。
413 名前:デフォルトの名無しさん [2006/01/28(土) 11:18:12 ] 10秒デデキマツタ! if(strcmp(str,"1+1")) printf("2\n");
414 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 11:38:52 ] >>413 情報サンクスです。考え方のところとか色々と参考になります。 ただ、自分の目指しているのは型なし&プロトタイプ指向ですので、やっぱりちょっと ポイントが違うようですね。まあ、その違いを見るのも楽しいですが。
415 名前:デフォルトの名無しさん mailto:389 [2006/01/28(土) 12:32:42 ] >>406 > 今のところ、Cの関数処理プロセスに頼らない(再帰を使わない)で、 > ・解析木から継続の連鎖を作る それをCPS変換というんじゃ… でも素直にCPS変換したらスタックなんて出てこないと思うんだけど (「計算途中の値」も全て継続への引数になる)。 それとも複数の引数を渡す際に、既に計算した引数の値を一時保存 しておくエリアってことかな。それを「スタック」と呼ぶのはどうかと 思うが (FILOである必要がないから)。 スタックは、普通の関数呼び出し→リターンに特化した一種の最適化 なんだよ。>>406 が何か特別な最適化のアイディアを試したいなら 別だが、原理を理解するために書いているなら、まず基本的な CPS変換→実行系を動かしてみることをお薦めする。判断に迷うところは とりあえず簡単に実装できるほうで書いてみる。書いてみないとわからない ことってたくさんあるからね。とにかく動かしてから、別のアイディアを 試してみればいい。
416 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 12:58:32 ] >411 そうだよね……自分の場合は駆動に引っ掛かっています。オブジェクトとメソッドを 等価に扱おうとして、『どうやって駆動すりゃいいの?』というところで散々悩んでいます。 あとは名前解決とか変数呼び出しとか…… >412 OOにはけっこうドップリ漬かっているんですけどね。 ここまで彷っているのは『当たり前と思っていた駆動とか関数呼び出しが、いざ やってみると全然当たり前じゃなかった』というのが大きいですかね。 >407, 413, 414 へえ?
417 名前:デフォルトの名無しさん mailto:sage 366 [2006/01/28(土) 13:16:19 ] >415 >それをCPS変換というんじゃ… ……そうだった。 > でも素直にCPS変換したらスタックなんて出てこないと思うんだけど 最初は素直にCPS変換していたんですけど、レキシカルスコープやろうとしたときに (オレ言語のアイディアが邪魔して)うまくアクセスリンクが処理できなかったので、 スタック……というか単なるリストも併用する形を検討しています。 > まず基本的なCPS変換→実行系を動かしてみることをお薦めする やっぱりそっちの方が近道かな……もうちょっと悩んでみます。
418 名前:366 mailto:sage [2006/01/28(土) 13:38:37 ] >>415 情報サンクスです。CPS変換のところとか色々と参考になります。 ただ、自分の目指しているのはCの関数処理プロセスに頼らない(再帰を使わない)ですので、やっぱりちょっと ポイントが違うようですね。まあ、その違いを見るのも楽しいですが。
419 名前:デフォルトの名無しさん mailto:sage 366 [2006/01/28(土) 13:41:57 ] ありゃ、騙りも出て来たか……これだからIDの無い板は駄目だよな。 そろそろ名無しに戻るか。 >418 ふうん?
420 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 13:42:19 ] >>419 ふうん?
421 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 13:48:08 ] 彼は型無し&プロトタイプ指向の言語に対して >ただ、自分の目指しているのは型なし&プロトタイプ指向ですので、やっぱりちょっと >ポイントが違うようですね。まあ、その違いを見るのも楽しいですが。 とか言ったのが一番面白かった。最高にバカ丸出しで。 何か言われたら、はあ?とかへえ?とかふうん?とか、 何か言い返さないと気がすまないってのもポイント高し。
422 名前:デフォルトの名無しさん mailto:sage 366 [2006/01/28(土) 13:50:38 ] >>421 で?
423 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 13:58:54 ] >>422 10ポイントアップ
424 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 17:51:31 ] プライドだけ高そうだね。技術は(ry
425 名前:デフォルトの名無しさん [2006/01/28(土) 17:55:29 ] ここの住人はプライド高いからナァ ただし、技術は(ry
426 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 18:08:16 ] お前の事か?
427 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 18:52:11 ] プライドが高くなるのは仕方が無いのでは? PGの四大欲求の一つである、言語の作成をやってるわけだし OSと言語とファイルシステムとAIで良かったんだっけ?
428 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 19:03:38 ] OS と言語と AI は分かるけど、ファイルシステムってのは何で? 4 番目に来るのは、Emacs とか Smalltalk みたいな「環境」じゃないかな。
429 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 23:43:42 ] OSと言語は分かるけど、AIってのは何で? アフォ?
430 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 23:48:46 ] ちょwww「四大欲求」てwww
431 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 23:58:48 ] ファイルシステムってOSの一部じゃないの?
432 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 00:06:41 ] DOS
433 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 00:50:20 ] どっちかってーと、OS・言語・マイクロコード(CPUの)・BIOS(とかEFI) とかの方が
434 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 01:50:22 ] それはただLow Levelな方をかき集めただけじゃん
435 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 01:55:09 ] OS、言語、データーベース、ゲームじゃね?w
436 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 01:58:33 ] AIは、作れなさそうだから実際に作ろうとまでは思わないが、 願望を持つ奴は多いと思う。 ゲーム、言語、OS、AIだろう。
437 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 06:09:51 ] この人、数学者としてはいまいちなのかもしれないけど、 計算機科学の実情についてはよく分かってるね。 www.ritsumei.ac.jp/se/~takayama/MathEssays/essays.html >>428 どうでもいい話だけど、現代においてはOSこそ「環境」ではないのかな。
438 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 06:23:47 ] >>437 この人は自分が高いレベルにいすぎて、考え方の基準が高すぎるね。 確かに数学者を目指すレベルからすれば、計算機科学はおちこぼれが 流れる分野なのかもしれないが、一般の高校生から見れば やっぱり、数学が必要な学科だよ。 単位とるにも数学的なものの考え方が必要な科目ばかりだしね。 一般の高校生の99%は大学でどちらかと言えば数学嫌い になるだろうし。 一般の高校生のレベルと数学者のレベルを混同してるように見える。
439 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 06:30:44 ] そりゃ、京都大学理学部出身から、立命館大学情報工学科みりゃ レベル低くも見えるだろ。 それでもそこにいる学生は相対的に数学が得意で好きだった学生 なんだということが理解できないんだろうな。
440 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 09:23:25 ] 理学と工学は似て非なるものだしな。
441 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 15:33:57 ] 工学で一度数学の必要性を身に沁みるとまじめに勉強する気にもなるもんだが。 一度数学の講義を受けないとそもそも数学の必要性に気付けない罠。
442 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 15:41:09 ] >>436 ああなるほど、ようやく分かった 人工無能の事ではなく、ホントの人格の事だったのか 人間の場合は四つの判断力を持ってるからな。 直感と理性の再現だけならどうにかなるかもしれないが、 感情と欲求の再現となると、なかなか難しいだろな
443 名前:デフォルトの名無しさん [2006/01/29(日) 16:30:38 ] PGの3第欲求 (1)OS (2)言語 (3)ハーレム この辺りが本当の所だろう。
444 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 16:34:41 ] で、エロゲで代用するわけか
445 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 19:55:35 ] プログラマをPGと略す奴にろくな奴がいない
446 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 20:06:05 ] >>443 OSも言語も興味ないやつはいくらでもいそうだけどな。
447 名前:デフォルトの名無しさん [2006/01/29(日) 20:15:58 ] (1)金 (2)酒 (3)ハーレム
448 名前:初心者 [2006/01/29(日) 21:13:56 ] 質問です。 Yaccとかで論理式の短絡評価を行う常套手段はどのようなものでしょうか? 例えば、if(a==b||c==d) でa==bが確定するとc==dの評価はスキップ可能ですが、 Yaccとかだと、先にa==bとc==dが認識されてしまうと思うのです。
449 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 21:53:31 ] >>448 yaccが生成するのは構文解析器。 意味解析は通常は構文解析で構文木を作った後のステップであって、yaccはやってくれません。 [文字列]→字句解析→[トークン列]→構文解析→[構文木]→意味解析→[一時コード]→最適化→[ましなコード]→コード生成→[出力コード] というように道のりは長い。 yaccがやってくれるのは構文解析だけ(でも構文解析は最適化の次に面倒くさい部分なので大助かり)。
450 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 23:39:37 ] >>447 それだ
451 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 00:42:32 ] まあ、たいていの入門書ではyaccの最初のサンプルは電卓で、 そのプログラムではアクションの中で計算もやっちゃってることが多いから >>448 のように思ってしまうのも無理はないのかも。 制御構造を持つちゃんとしたプログラミング言語を作ろうと思ったら、 yaccのアクションでは解析木を作るだけにしておいて、評価は後で行います。
452 名前:448(初心者) [2006/01/31(火) 02:22:55 ] >>449 ,451 そうでしたか。奥が深いですね。 一瞬、言語の仕組みが分かったような錯覚をしましたが、 本格的なものと電卓的なものとでは、ずいぶんとギャップがあるということが わかりました。 ありがとうございました。
453 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 02:33:12 ] C# コード出力するコンパイラコンパイラって、もしかして未だ無い?
454 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 02:36:00 ] >>452 その錯覚はあながち間違いじゃないよ。 449で道のりは長いとか書いちゃったけど、実際には構文木まで作れれば終わったようなもんだし。 あとはその周辺の理論的な考察とか最適化の手法は好きなように学んだらいいだけ。
455 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 07:15:12 ] >>453 多分ある。というかC#でコンパイラ作るみたいな本がなかったっけか。
456 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 12:20:28 ] >>453 たしかANTLRが対応してたような気が
457 名前:448(初心者) [2006/01/31(火) 23:15:15 ] >>454 どうもです。すこしづつ勉強して行きたいと思います。 (老後の趣味です。ハハハ) ところで、Yaccってコンパイラコンパイラ等と呼ばれたりもしますが、 結構誇張された言い方とも受け取ったのですが、言語専門家の方は どのように感じますか? (技術的な話でなくてすいません。)
458 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 23:30:38 ] そんなことを聞いてどうする
459 名前:デフォルトの名無しさん mailto:sage [2006/02/01(水) 01:12:13 ] コンパイラコンパイラは言い過ぎ パーサジェネレータの方がしっくり来る
460 名前:デフォルトの名無しさん mailto:sage [2006/02/01(水) 02:09:03 ] なんで2chの回答者って偉そうなのばっかりなんですか?
461 名前:デフォルトの名無しさん mailto:sage [2006/02/01(水) 02:16:09 ] Copying でも Generational でも、オブジェクトを移動させる GC で、 移動不可なデータ(ロックとか)ってどう扱ってるのでしょうか。 何かおいしい資料(論文とか)ありましたら教えて下さい。
462 名前:デフォルトの名無しさん mailto:sage [2006/02/01(水) 06:49:40 ] 移動不可なデータのみを別に扱っておけば良いのでは? 例えば、移動不可データ専用の予備領域を取っておくとか
463 名前:デフォルトの名無しさん mailto:sage [2006/02/01(水) 10:08:04 ] >>460 質問者にとっては初めての質問でも、答える方は3度目、4度目というのが当たり前。 日常では温厚な人間でも切れ気味になる。顔が見えりゃいいんだけどね。 おれは一度目にした質問にはレスしないことにしている。
464 名前:デフォルトの名無しさん mailto:sage [2006/02/01(水) 11:48:51 ] members.at.infoseek.co.jp/zzyyb/gc/incremental-collector.html のインクリメンタルガベコレの説明ですが、 GCが処理しているカレントオブジェクトをプログラムが変更しちゃう場合が 言及されていないのですがまさにその場合が問題である気がします。 カレントオブジェクトが保持する別オブジェクトへの参照のうち、既に処理 した参照が書き換えられるとおかしくなると思うんですが。
465 名前:デフォルトの名無しさん mailto:sage [2006/02/01(水) 20:10:10 ] >>462 どうもありがとう。後で思いついたんですが、世代別なら一番古い世代に置くというのも手ですね。
466 名前:デフォルトの名無しさん mailto:sage [2006/02/01(水) 21:42:14 ] >>460 ヒント:ルサンチマン
467 名前:デフォルトの名無しさん [2006/02/01(水) 22:19:13 ] >>463 ハツモノでもあんたのレスはいらんよw
468 名前:デフォルトの名無しさん mailto:sage [2006/02/01(水) 23:38:35 ] >>461 俺もちゃんと読んでないけどひとまず貼っとく。 www.nminoru.jp/~nminoru/java/cms/concurrent_mark_sweep.html#45
469 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 00:59:19 ] つ www.shos.info/develop/oo/dscsnptn.html#chapter4 >464 GCが処理しているカレントオブジェクト 灰色 カレントオブジェクトが保持する別オブジェクトへの参照のうち、既に処理した参照 灰色 -> 黒 または 灰色 -> 灰色 灰色 -> 灰色については言及されていないけど、どちらの種類のリンクともうまく処理されます。
470 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 01:46:04 ] 灰色→白は? カレントオブジェクトに参照A,B,Cがあってこの順で処理するとして、 Aをキューに追加して灰色にした後、Bを処理しようとしているときに 別プログラムがAを白への参照に書き換えてしまったら?
471 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 23:59:03 ] >470 ごめん、ちょっと勘違いしていたみたい。 ・カレントオブジェクトの処理(参照先の灰色化 & 参照元の黒化)はアトミックに処理する ・カレントオブジェクトが参照された場合、処理を中断してキューの最後に持ってくる ・カレントオブジェクトは黒と同様に処理する あたりはどう?
472 名前:デフォルトの名無しさん mailto:sage [2006/02/03(金) 00:49:26 ] >>471 最後でしょうか。つまりこの条件においては黒→白取り付けと同様に考える (のでその後に書いてある各手法のようなバリアを張る)と。 前二者はオーバーヘッドが重すぎますよね。 このページ、過渡状態を無視せずにもうちょっと厳密に書いてくれていれば よかったんですけどねえ。
473 名前:デフォルトの名無しさん mailto:sage [2006/02/04(土) 01:50:29 ] まずカレントオブジェクトを黒にしてから参照先を灰色にすれば、カレントオブジェクトを 特別扱いしなくて済むかな?
474 名前:デフォルトの名無しさん mailto:sage [2006/02/04(土) 02:13:51 ] ちょっと考えたら分かることだろ。
475 名前:デフォルトの名無しさん mailto:sage [2006/02/04(土) 02:48:08 ] >>473 処理中のカレントオブジェクトが 「それが参照している先は必ず灰色か黒」という黒の定義に反することになるのが 気持ち悪い。
476 名前:デフォルトの名無しさん mailto:sage [2006/02/04(土) 10:51:06 ] >>472 そのページはマルチスレッドは考えてないでしょ。 シングルスレッドなら普通 >>471 の 1 にするかと。
477 名前:デフォルトの名無しさん mailto:sage [2006/02/04(土) 13:02:40 ] >>475 アホかお前
478 名前:デフォルトの名無しさん mailto:sage 情報の無い発言には付き合いません [2006/02/04(土) 17:24:37 ] >475 黒の定義を変えるヨロシ 「GCから『それが参照している先は灰色か黒しか存在しない』と認識されるオブジェクト」 かな?
479 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 00:59:07 ] スタックアロケーションには定数時間が必要なのに対し、 生きているオブジェクトの数だけに比例する時間がかかるGCは メモリを大きく取ることでいくらでも1セルあたりのGCコストを減らせますよね。 だからGCはスタックアロケーションよりも速いっていうのは間違ってますか?
480 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 01:39:53 ] 全体的にどういう計算、それ?
481 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 10:54:53 ] >>480 例えばコピーGCでメモリのサイズをM、GCで生き残ったオブジェクトのサイズをA とすると、GCにかかる時間は定数Cを使ってCAになります。 回収されたオブジェクトのサイズはM-Aなので、これで割るとCA/M-Aになります。 スタックのポップだと一般にサイズ当たりにかかる時間は定数です。 コピーGCではMを大きくすることで、いくらでもコストが減るので "Garbage Collection Can Be Faster Than Stack Allocation" Andrew W. Appel ということらしいです。
482 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 12:22:38 ] よくわかんないけど その理論だとスタックの最大サイズM(仮想メモリ使えば∞と思ってよい) に対して同じ式が出てくるんじゃないか? スタックのポップのコストがサイズ当たりってことは、 ポップのコストはサイズに比例って意味だよね?
483 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 12:44:12 ] >>482 スタックのポップは引き算すればいいだけなので、ほんとは比例しないんですが 使い終わる度にポップするのでサイズに比例するってことです。 スタックのポップのコストにスタックの最大サイズは関係ありません。
484 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 13:01:35 ] >479 それって、前提条件が 1スタック=1オブジェクト になっていない? ただ単に「GCによるオーバーヘッド > まとめてメモリ回収する時間節約」つうてる だけのような気がする
485 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 13:28:06 ] >>484 すいませんがよく意味が分からないです... VMのスタックをポップせずに一杯になったときにGCを起動した方が 性能がいいんじゃないかって話です。 環境をヒープにコピーしたり末尾再帰を最適化したりしなくてすみます。 ただコンパクションしないと断片化するのでGCは結構重そうです。 >>482 のようにメモリが無限にあるのなら GC自体必要ないのでコストは0です。 で、現実問題としてどんなもんなのかなあと。Chickenで実装されているらしいのですが...
486 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 13:35:44 ] 元論文をつまみ読みして想像するに ・Mはメモリのサイズというよりは、今までアロケートしたセルのサイズ ・「スタックアロケーション」といっているのはヒープに確保したセルを明示的に開放する話。スタックは関係ない。 ・「スタック〜」では開放するセルの個数に比例したコストがかかるが、 コピーGCでは生き残ったセルの個数に比例したコストがかかる。 ・コピーGCでは開放するセルあたりのコストはCA/M-A なので、 開放するセルあたり1インストラクションより小さくなることすらある。
487 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 13:57:28 ] >>486 > ・Mはメモリのサイズというよりは、今までアロケートしたセルのサイズ MはコピーGCで使われるメモリ領域です。つまり 2Mのメモリが必要です。 > ・「スタックアロケーション」といっているのはヒープに確保したセルを明示的に開放する話。スタックは関係ない。 どちらにしても explicit freeingはセルの個数(開放する回数)に比例したコストがかかります。 この論文でも特にヒープかスタックか特定していないような気がします 5章でもスタックとヒープを比較しているので、どちらかといえばスタックかなあと 間違ってたらすいません。 >・「スタック〜」では開放するセルの個数に比例したコストがかかるが、 > コピーGCでは生き残ったセルの個数に比例したコストがかかる。 >・コピーGCでは開放するセルあたりのコストはCA/M-A なので、 > 開放するセルあたり1インストラクションより小さくなることすらある。 その通りです。 他の論文にも StackGCの性能がよいと書いてあったのですが Chicken くらいしか実装例を知らないのでどうなのかと思ったんです。 飯喰ってきます。
488 名前:484 mailto:sage [2006/02/07(火) 14:49:37 ] ごめん。 意図しているのは >486 の通りね。 GCによるオーバーヘッド => GCでの生き残ったセルの個数に比例したコスト まとめてメモリ回収する時間節約 => スタックでの開放するセルあたりのコスト - GCでの生き残ったセルの個数に比例したコスト といった感じかな?
489 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 14:42:58 ] >>481 >これで割るとCA/M-Aになります。 うんうん。なるほど・・・ ところで、その割った「値」っていうのは、 一体何を意味している数なのかな?
490 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 17:20:13 ] >>489 そのまんま「回収したサイズ当たりの計算量」です。 一般的なコピーイングでは 2Mのメモリが必要ですが、explicit freeing と効率が同じになるサイズNを超す生存オブジェクトを許さないのならば M + Nで済みます。 (コピーGCでは生存オブジェクトのサイズに比例したコストがかかるので、 Nを超えると explicit freeingの方が効率的になるということです。) 生存オブジェクトのサイズがNを超えたらスタックオーバーフローにします。 で、この論文の例の場合 M = 7Nなので 8Nのメモリが必要となります。 これは コンスセル一つ 3ワードという前提の上での計算です。 VMスタックにこの GCを使った場合、環境フレームの大きさは固定では ありませんがほとんどの場合 3ワードよりも大きいので、M/Nはもっと大きいです。 という訳で生存オブジェクトに対して十分大きなメモリが確保されないと GCの優位性は保たれないので、現実問題としてどうなのかと思ったのです。 20年前の論文なのでもっと流行っててもよさそうなものですし (停止時間が長いという欠点はありますが)。
491 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 19:20:52 ] コピーGCでは1回のGCのコストがヒープ領域の大きさに依存しないので、 ヒープ領域が大きいほどGC回数が減ってGCのオーバヘッドが小さくなる ということ自体は別に直感に反してないし、流行る流行らないの話ではない と思うな。他の要因がなければヒープ領域は大きいに越したことはないに 決まってるし。
492 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 19:34:11 ] >>490 >現実問題としてどうなのか が知りたいなら、>>479 の時点でそう書け。 学生がゼミの宿題で悩んでるのかと思って 時間割いちまったじゃねぇか。
493 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 20:30:01 ] 知ってる人には当たり前の内容で 知らない人には何を言ってるかわからない説明力。
494 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 20:42:14 ] >>491 その通りなんですが、スタックをヒープとみなしてポップせずにGCで回収してしまおう って話なんです。何度も書きますが。 VMのスタックをGCで回収させる処理系って何があるでしょうか。 >>492 ごめんなさい。2chにこんな優しい人がいるなんて。
495 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 21:00:24 ] さあどんどん後出し設定が出てきますよ。
496 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 22:22:51 ] >>485 >VMのスタックをポップせずに一杯になったときにGCを起動 >>494 >スタックをヒープとみなしてポップせずにGCで回収 それって普通はスタック上で確保するフレームを ヒープ上に確保するのと一緒だから パフォーマンスが悪くなることはあっても良くなる事はないんじゃない?
497 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 06:21:45 ] >>496 494はたぶんHenry BakerのCheney on the M.T.A.みたいな話を してるんだと想像するが。この話のキモは、多くのオブジェクトは 短命で、GCが走る頃にはごみになってるからヒープにさえ移らな いってこと。スタックを世代別GCの第0世代とみなしてると考えても良い。 で、Chickenがそれを実装してるわけだが。Scheme処理系としての 性能はそこそこ良いらしいが、処理系の性能はGC以外の部分にも 依存するからねえ。Cheney on the MTA自体がどのくらいの性能かを 測るには、GC部分だけを取り替えて比べるしかないんじゃない。
498 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 07:35:56 ] >>497 言語の構造にも依存するんだよね、ヒープ上につくるオブジェクトの種類。 もし比較するならそのあたりの事も考慮しないといけないし、その場合の 試験プログラムの内容も影響受けるだろうし面倒臭そうだね。
499 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 11:11:46 ] そだね。特に第一級の継続が無い言語ではアクティベーションフレームの エクステントは関数を抜けるまでに決まってるから、popしてしまう方が 良さそうだ。継続がある場合はどうせ捕捉時にスタックを何とかしなくちゃ ならないからCheney on the MTAと相性が良さそうなんだが。
500 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 11:22:34 ] >>499 環境に関してはどうですか? 一般的にはクロージャが生成されたときにスタックからヒープにコピーすると 思うんですが、それが必要なくなりますよね。 どちみちGCのときにはコピーするので微妙ですが。
501 名前:デフォルトの名無しさん [2006/02/12(日) 14:59:24 ] yaccを使ってるんですが、トークンの数字を文字列に変換することはできますか? NUMBER => "NUMBER", STRING=>"STRING", '+' => "+" みたいなかんじです。
502 名前:デフォルトの名無しさん [2006/02/12(日) 23:09:56 ] アフォ?
503 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 13:11:20 ] >>501 yaccはそんなことするためのものではないので、ご自分でどうぞ。
504 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 20:24:30 ] >>501 yaccの仕事じゃない。 もしどうしても今組んでいるコードがそれを要求するのであればlex側で処理しておくべし(トークンの持ち方で2つの意味づけしとけ)
505 名前:デフォルトの名無しさん [2006/02/14(火) 23:32:01 ] >>501 kmyaccならできる。起動時に-tオプションをつけてみて。
506 名前:デフォルトの名無しさん [2006/02/16(木) 20:56:42 ] kimyacc ? キムチ!
507 名前:デフォルトの名無しさん mailto:sage [2006/02/17(金) 00:34:11 ] >>506 うまい!!!!!!!!1
508 名前:デフォルトの名無しさん mailto:sage [2006/02/17(金) 00:39:37 ] sage
509 名前:デフォルトの名無しさん mailto:sage [2006/02/17(金) 01:10:02 ] >>506 ワロwwwwwwwwwwwwwwwwwww
510 名前:デフォルトの名無しさん mailto:sage [2006/02/18(土) 04:59:51 ] そういや、少し前にGUI型言語の話が出ていたけれども、 それってオーサリングツールとどう違うの?
511 名前:デフォルトの名無しさん mailto:sage [2006/02/18(土) 08:53:21 ] スクリプトや言語の支援ツールとしてのモデリングツールなら、 たま〜に見る。 で思った事なんだが、言語の一部としてモデリングツールがあり、 モデリングツールの細かい調整用にスクリプトを用いたツールを 作ろうと思ってるのだが、このツールは何と呼べば良い?
512 名前:デフォルトの名無しさん mailto:sage [2006/02/18(土) 08:56:15 ] >>511 コンパイラでは?
513 名前:デフォルトの名無しさん mailto:sage [2006/02/18(土) 09:06:47 ] >>510 オーサリングツール自体が、広義ではコンパイラだと考えられる。
514 名前:デフォルトの名無しさん mailto:sage [2006/02/18(土) 09:28:22 ] >>512 どちらかといえばスクリプトエンジンの方かと
515 名前:デフォルトの名無しさん mailto:sage [2006/02/18(土) 09:38:07 ] 「細かい調整」の内容による?
516 名前:デフォルトの名無しさん mailto:sage [2006/02/18(土) 11:08:33 ] 大昔のPlusの時代のMacにブロックダイアグラムをGUI上で用いて機能設計 (というよりモジュールプログラムって感じ)して、バイナリを出すシステム があったけど、そういう奴のこと?>>510 それともIBMのVisualAgeシリーズみたいな奴かな?
517 名前:デフォルトの名無しさん mailto:sage [2006/02/18(土) 11:33:02 ] >>516 前スレの最後の方で出てたネタなんだが・・・見れないな。 CAD/CAMとか、UMLとか、電子回路みたいな奴の事。 DVDの編集ツールとか、アニメーション製作ツールといったオーサリングツールと、どうも似てるなと。
518 名前:デフォルトの名無しさん mailto:sage [2006/02/18(土) 11:34:53 ] 前々スレだったかもしれんし、はっきりとは覚えて無いが。
519 名前:デフォルトの名無しさん mailto:sage [2006/02/18(土) 11:59:53 ] 『コンパイラ入門 C#で学ぶ理論と実践』 って、本はどうなのでしょう? 初心者向け?
520 名前:デフォルトの名無しさん mailto:sage [2006/02/19(日) 02:11:30 ] >519 だれか答えてやれよ。
521 名前:デフォルトの名無しさん mailto:sage [2006/02/19(日) 03:03:09 ] amazonの書評にも誰も書いてねーよーな 1000部も出てないだろう本の内容なんか知るかボケ。 自分で買うなり立ち読みするなりして調べろバーカ。
522 名前:デフォルトの名無しさん mailto:sage [2006/02/19(日) 05:37:26 ] 無理してレスつけなくてもいいんだよ
523 名前:デフォルトの名無しさん mailto:sage [2006/02/19(日) 07:32:33 ] omaemona
524 名前:デフォルトの名無しさん mailto:sage [2006/02/19(日) 12:09:03 ] 521は無理矢理感ありまくりだけど 522はそうでもない
525 名前:デフォルトの名無しさん mailto:sage [2006/02/19(日) 14:22:05 ] と、522が寂しそうにつぶやいた。
526 名前:デフォルトの名無しさん [2006/02/19(日) 20:07:33 ] やっぱりこのスレLispやRubyがネタに絡まないと寂れる一方ですね。 Lisp最高!!! と言ってみるtest
527 名前:デフォルトの名無しさん mailto:sage [2006/02/19(日) 20:15:00 ] ↓Lispnおなにが良いか答えなさい
528 名前:デフォルトの名無しさん [2006/02/19(日) 20:42:23 ] ば〜かw Rubyがいいに決まってるだろ? 新しい時代には新しい言語が必要だ Lisp?はぁ〜? コボルジジイと一緒にオナ●ーでもしてる!
529 名前:デフォルトの名無しさん [2006/02/19(日) 20:46:14 ] はぁあ……Lisp……カッコいいのぉ…… S式……すごい興奮します…… あふっ、いぐのぉおおおっ、インデントすごいぃいいい! いくっ、いきます、いっちゃう!いぐぅぅぅぅぅぅぅぅぅぅぅぅぅぅぅぅぅ!!!
530 名前:デフォルトの名無しさん mailto:sage [2006/02/19(日) 21:07:07 ] よし、いいだろう!
531 名前:デフォルトの名無しさん mailto:sage [2006/02/19(日) 21:12:10 ] 燃料投下の自作自演イラネ
532 名前:デフォルトの名無しさん [2006/02/20(月) 00:27:06 ] 最強はJRubyだろ Javaの機能も使える超絶的多機能Ruby
533 名前:デフォルトの名無しさん mailto:sage [2006/02/20(月) 00:29:24 ] AspJ
534 名前:デフォルトの名無しさん [2006/02/20(月) 00:56:14 ] lispy
535 名前:デフォルトの名無しさん mailto:sage [2006/02/20(月) 03:19:33 ] ようやく俺Lispにクロージャが加わった記念にカキコ
536 名前:デフォルトの名無しさん [2006/02/21(火) 20:42:51 ] Lispって存在意義あるの? ゴボルと一緒で保守用?
537 名前:デフォルトの名無しさん mailto:sage [2006/02/21(火) 21:02:06 ] そろそろ釣り餌の変え時では? 信者の多そうなHaskellとかSmalltalkがお勧め
538 名前:デフォルトの名無しさん mailto:sage [2006/02/21(火) 21:23:40 ] 信者率は高いだろうが、絶対数がな
539 名前:デフォルトの名無しさん [2006/02/21(火) 23:40:07 ] 釣り餌じゃなく本当に lisp の存在意義が疑問なんだが (除く、研究用)
540 名前:デフォルトの名無しさん mailto:sage [2006/02/21(火) 23:46:27 ] >>539 自分で答え言ってるじゃ
541 名前:デフォルトの名無しさん mailto:sage [2006/02/21(火) 23:47:50 ] 疑問に思う >>529 に尋ねる。 なぜ「研究用」が除かれるんだ?
542 名前:デフォルトの名無しさん mailto:sage [2006/02/21(火) 23:50:05 ] 手軽に自分用のスクリプトを組み込むという用途としては 最適であるのは間違いないと思うがな。
543 名前:デフォルトの名無しさん mailto:sage [2006/02/22(水) 00:37:49 ] >>539 には Python の存在意義を問うてみたいな。
544 名前:デフォルトの名無しさん mailto:sage [2006/02/22(水) 00:46:40 ] Java用のスクリプト言語にHaskellが加わったらしいね Javaのスクリプトコレクションがどんどん増えていって楽しい
545 名前:539 [2006/02/22(水) 21:51:56 ] 釣り餌じゃなく本当に python の存在意義が疑問なんだが (除く、実用)
546 名前:デフォルトの名無しさん mailto:sage [2006/02/22(水) 21:53:16 ] > Lispの存在意義 新しい言語を手軽に実装できる、に尽きるような。 (で、この言葉がまた誤解されると。)
547 名前:デフォルトの名無しさん mailto:sage [2006/02/23(木) 00:44:35 ] 釣り餌じゃなく本当に ruby の存在意義が疑問なんだが (除く、他の言語を見下して優越感に浸る)
548 名前:デフォルトの名無しさん mailto:sage [2006/02/23(木) 00:49:39 ] Pythonは教育用言語がはじまりだよ だれが書いても同じようなソースになるのは意図したこと 汚くないソースを書く癖を付けさせるためにインデントを強制している
549 名前:デフォルトの名無しさん mailto:sage [2006/02/23(木) 01:11:55 ] >>548 Pythonって使ったことないんだけどtabの扱いってどうなるの?
550 名前:デフォルトの名無しさん mailto:sage [2006/02/23(木) 02:35:36 ] >>542 >手軽に自分用のスクリプトを組み込むという用途としては >最適であるのは間違いないと思うがな。 なんで? パーサ書くのが簡単だから、というのはよく聞くけど、パーサなんて パーサジェネレータ使えば簡単に生成できるから、メリットにならんと思う。 LL(1)文法なら再帰下降パーサでもそんなに大変じゃないし。 # だからよく聞く「言語処理系を作りたければまずLispから」ってのは # おかしいと思う。みんな、自分が普段使ってるCとかJavaみたいなのから # 処理系に興味を持つんだから、そういうのを作ってみたいんじゃなかろうか。 それとも他の理由?
551 名前:デフォルトの名無しさん mailto:sage [2006/02/23(木) 03:01:37 ] >>549 www.python.jp/doc/nightly/ref/indentation.html >まず、タブは (左から右の方向に) 1 つから 8 つのスペースで置き換えられ、 >置き換え後の文字列の終わりの位置までの文字数が 8 の倍数になるように調整されます >(Unixで使われている規則と同じになるよう意図されています)。 で、下がったインデントが上がるときには以前のどっかのインデントレベルと 合ってなければいけないけれど、1回のインデントでどれだけ下げるかは 決められてなくて、2文字インデントと4文字インデントと8文字インデントが 混在していてもいいってことか。 >>548 >だれが書いても同じようなソースになるのは意図したこと >汚くないソースを書く癖を付けさせるためにインデントを強制している 中途半端だよなあ。 www.artima.com/weblogs/viewpost.jsp?thread=101968 >All code indented with four spaces. This will also get rid of the tabs problem! やっぱこれだこれ。
552 名前:デフォルトの名無しさん mailto:sage [2006/02/23(木) 07:19:59 ] >>550 他の理由。 飽きれるぐらい繰り返し出てる話だけど、 新しい言語を追加できるんだよ。
553 名前:デフォルトの名無しさん mailto:sage [2006/02/23(木) 09:40:18 ]
554 名前:デフォルトの名無しさん [2006/02/23(木) 21:26:25 ] >>547 それ程までに、優越感を感じる言語って 一体…?
555 名前:デフォルトの名無しさん mailto:sage [2006/02/23(木) 22:27:38 ] 習得が難しい言語でなければ ユーザーが優越感を感じたりはしないだろうな
556 名前:デフォルトの名無しさん mailto:sage [2006/02/23(木) 22:29:43 ] >>555 よい言語ではある、でも偉いのは作ったmatzで優越感を感じてる厨房は単なる馬鹿
557 名前:デフォルトの名無しさん mailto:sage [2006/02/24(金) 00:35:12 ] >>552 >新しい言語を追加できるんだよ。 新しい言語を「何に」追加するのさ。 542は、AutoCADがAutoLispを組み込んでいるように、アプリケーションにLispを 組み込む話をしてるのかと思ったから550を書いたんだけど、違ってたのかね。 Lispでプログラムをばりばり書きながら、そのなかのある特定の領域について DSLが欲しいと思ったときにLispだと楽に作れるって話? だとすれば、それはどんな言語をどんな形態で組み込むことを想定しているの? (1)Lispでスキャナやパーサを書いて、Lispとはまったく似ていない言語を組み込む。 (2)Lispのリーダを使ってS式を読み込み、自力で評価する。 (3)Lispのマクロで俺言語っぽいものを作る。 どれ? (2), (3)だと、作れる言語は所詮S式になるな。
558 名前:デフォルトの名無しさん mailto:sage [2006/02/24(金) 01:16:46 ] >>557 もちろんLispを使うということはS式ありきだよ。 552じゃないけどLisperの思考なら(1)も結果をS式に変換して、 Lispにそのまま食わせたり(これが(2)や(3)に繋がったり)すると思うよ。 適当に俺言語っぽいものを作ってみたとして、仮にS式で不満に なったらフロントエンドに俺言語スキャナを追加したりという、 色んな箇所で入出力できるのがLispの使い勝手の良さに繋がってる のではないかと。 アプリの組み込みについては、とりあえずS式読めるように Lispコアを埋め込んでおくと便利という意味じゃないかな。
559 名前:デフォルトの名無しさん [2006/02/24(金) 09:22:51 ] 括弧が深くならないLISPってないですか?
560 名前:デフォルトの名無しさん mailto:sage [2006/02/24(金) 09:29:13 ] >>559 ( ´Д`) キサマ・・・見た目に惑わされているな
561 名前:デフォルトの名無しさん mailto:sage [2006/02/24(金) 10:53:43 ] >>559 XML
562 名前:デフォルトの名無しさん mailto:sage [2006/02/24(金) 20:46:42 ] 括弧開くと括弧閉じるの書き方が違うだけでは
563 名前:デフォルトの名無しさん [2006/02/24(金) 23:13:29 ] 結局は括弧ばかりのカッコウ言語w
564 名前:デフォルトの名無しさん mailto:sage [2006/02/24(金) 23:46:35 ] なにその昭和な親父ギャグ
565 名前:デフォルトの名無しさん [2006/02/25(土) 01:44:26 ] ワンライナーならPythonのPLY。 アプリ組むならC++Boostのspritがデフォなんだけどどうなんだろう。 開発業務における調査・解析の仕事って結構あるのよね。 最終的にはgrep一覧と確認結果をレポートするんだけど、当たりを付ける時は 自前のスクリプト使ってる。 抽象的な入力を対話式に行って解析出来るツールが欲しいなぁと思うこの頃。 誰か作ってません?
566 名前:デフォルトの名無しさん mailto:sage [2006/02/25(土) 02:25:16 ] prolog?
567 名前:565 mailto:sage [2006/02/25(土) 02:35:29 ] >>566 あー、そういうアプローチもあるねw 自分が考えているのは、もっとバカチョンなやつ。 理想は自然言語をINPUTとして扱えるとか。 チームで使うのに、Prolog覚えるのは敷居を上げてしまうので 普及しない希ガス。
568 名前:デフォルトの名無しさん mailto:sage [2006/02/25(土) 02:40:22 ] Eliza?
569 名前:565 mailto:sage [2006/02/25(土) 02:53:28 ] >>568 それやりすぎだしw つか、相当マニアックだなおい。 文章は命令形式で良いと思うんだ。 list param CFoo::m_bar1 when CFoo::m_bar2 == 0 見たいな感じ。全然自然言語じゃないな。やっぱ形式言語がいいかw SQLみたいだと良いかも。 すまんな、求めているものが変わってきたw
570 名前:デフォルトの名無しさん mailto:sage [2006/02/25(土) 10:19:44 ] 死ねよ
571 名前:デフォルトの名無しさん [2006/02/25(土) 11:59:25 ] こうして、またひとり Ruby ユーザが増えました。 めでたしめでたし。
572 名前:デフォルトの名無しさん [2006/02/25(土) 13:34:49 ] >>569 こんな感じだろ もしお金が10億あれ場合 会社を辞める それ以外の場合 銀行を襲う 以上
573 名前:デフォルトの名無しさん mailto:sage [2006/02/25(土) 15:00:20 ] >>572 ElizaよりMedicが必要な希ガス
574 名前:デフォルトの名無しさん mailto:sage [2006/02/26(日) 19:01:55 ] 上のほうにあった コンパイラ入門 C#で学ぶ理論と実践 ソフトウェア実践講座 冨沢 高明 (著) www.amazon.co.jp/exec/obidos/ASIN/4797331690/qid=1140946035/sr=1-1/ref=sr_1_10_1/250-3599959-2832238 マクロアセンブラのコードを吐く「ジェネレータ」の説明に60ページほど費やしてました。 このコードをインラインに展開するツールも添付されてます。 現在MS社の上級社員?である著者がアメリカの大学で行っていた講義の中身を再編集した本らしいです。 MS製品の開発環境の使い方から書かれてあるので 手元にC#があれば便利ですが、C++が使える人には多分問題でないでしょう。 Javaのバイトコードを吐く「スモールコンパイラ」本と同程度の内容ですが、 類書でマクロアセンブラのコードジェネレータまで扱う本はあまり無かったのではないでしょうか? やる気のあるアメリカ人大学生相手の講義が元ネタなので内容はずっと真面目で、 著者は特に情報工学部の実習本・TAのためのガイド本を意識されておられるようです。 ただ、アセンブラ「ジェネレータ」部分ですが、複雑なテクニックは使っていないはず なので、「俺はCのソースを見るだけでアセンブラのコードが頭に浮かんでくる、 これまでにコンパイラはいくつも書いてきた」、という方やRuby厨は買う必要ないと思います。 インタプリタやスクリプト言語の作成から、コンパイラの作成へとステップアップしたいが アセンブラの勉強がどーにも…、という方には喜ばれる内容だと思いました。
575 名前:デフォルトの名無しさん mailto:sage [2006/02/26(日) 19:04:44 ] 上のほうにあった コンパイラ入門 C#で学ぶ理論と実践 ソフトウェア実践講座 冨沢 高明 (著) www.amazon.co.jp/exec/obidos/ASIN/4797331690/qid=1140946035/sr=1-1/ref=sr_1_10_1/250-3599959-2832238 マクロアセンブラのコードを吐く「ジェネレータ」の説明に60ページほど費やしてました。 このコードをインラインに展開するツールも添付されてます。 現在MS社の上級社員?である著者がアメリカの大学で行っていた講義の中身を再編集した本らしいです。 MS製品の開発環境の使い方から書かれてあるので 手元にC#があれば便利ですが、C++が使える人には多分問題でないでしょう。 Javaのバイトコードを吐く「スモールコンパイラ」本と同程度の内容ですが、 類書でマクロアセンブラのコードジェネレータまで扱う本はあまり無かったのではないでしょうか? やる気のあるアメリカ人大学生相手の講義が元ネタなので内容はずっと真面目で、 著者は特に情報工学部の実習本・TAのためのガイド本を意識されておられるようです。 ただ、アセンブラ「ジェネレータ」部分ですが、複雑なテクニックは使っていないはず なので、「俺はCのソースを見るだけでアセンブラのコードが頭に浮かんでくる、 これまでにコンパイラはいくつも(心の中に)書いてきた」、という方は勿論買う必要ないと思います。 インタプリタやスクリプト言語の作成から、コンパイラの作成へとステップアップしたいが アセンブラの勉強がどーにも…、という方には喜ばれる内容だと思いました。
576 名前:デフォルトの名無しさん [2006/02/26(日) 22:27:19 ] 上のほうにあった コンパイラ入門 C#で学ぶ理論と実践 ソフトウェア実践講座 冨沢 高明 (著) www.amazon.co.jp/exec/obidos/ASIN/4797331690/qid=1140946035/sr=1-1/ref=sr_1_10_1/250-3599959-2832238 マクロアセンブラのコードを吐く「ジェネレータ」の説明に60ページほど費やしてました。 このコードをインラインに展開するツールも添付されてます。 現在MS社の上級社員?である著者がアメリカの大学で行っていた講義の中身を再編集した本らしいです。 MS製品の開発環境の使い方から書かれてあるので 手元にC#があれば便利ですが、C++が使える人には多分問題でないでしょう。 Javaのバイトコードを吐く「スモールコンパイラ」本と同程度の内容ですが、 類書でマクロアセンブラのコードジェネレータまで扱う本はあまり無かったのではないでしょうか? やる気のあるアメリカ人大学生相手の講義が元ネタなので内容はずっと真面目で、 著者は特に情報工学部の実習本・TAのためのガイド本を意識されておられるようです。 ただ、アセンブラ「ジェネレータ」部分ですが、複雑なテクニックは使っていないはず なので、「俺はCのソースを見るだけでアセンブラのコードが頭に浮かんでくる、 これまでにコンパイラはいくつも書いてきた」、という方やLisp厨は買う必要ないと思います。 インタプリタやスクリプト言語の作成から、コンパイラの作成へとステップアップしたいが アセンブラの勉強がどーにも…、という方には喜ばれる内容だと思いました。
577 名前:デフォルトの名無しさん [2006/02/26(日) 22:56:34 ] 上のほうにあった コンパイラ入門 C#で学ぶ理論と実践 ソフトウェア実践講座 冨沢 高明 (著) www.amazon.co.jp/exec/obidos/ASIN/4797331690/qid=1140946035/sr=1-1/ref=sr_1_10_1/250-3599959-2832238 マクロアセンブラのコードを吐く「ジェネレータ」の説明に60ページほど費やしてました。 このコードをインラインに展開するツールも添付されてます。 現在MS社の上級社員?である著者がアメリカの大学で行っていた講義の中身を再編集した本らしいです。 MS製品の開発環境の使い方から書かれてあるので 手元にC#があれば便利ですが、C++が使える人には多分問題でないでしょう。 Javaのバイトコードを吐く「スモールコンパイラ」本と同程度の内容ですが、 類書でマクロアセンブラのコードジェネレータまで扱う本はあまり無かったのではないでしょうか? やる気のあるアメリカ人大学生相手の講義が元ネタなので内容はずっと真面目で、 著者は特に情報工学部の実習本・TAのためのガイド本を意識されておられるようです。 ただ、アセンブラ「ジェネレータ」部分ですが、複雑なテクニックは使っていないはず なので、「俺はCのソースを見るだけでアセンブラのコードが頭に浮かんでくる、 これまでにコンパイラはいくつも書いてきた」、という方やLisp厨は買う必要ないと思います。 インタプリタやスクリプト言語の作成から、コンパイラの作成へとステップアップしたいが アセンブラの勉強がどーにも…、という方には喜ばれる内容だと思いました。
578 名前:デフォルトの名無しさん mailto:sage [2006/02/26(日) 23:57:26 ] どうした? どうした? どうした? どうした?
579 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 02:52:17 ] >>574-577 おまえら長文で微妙に書き換える位なら差分だけあげろや惚け
580 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 21:37:29 ] 同じファイル内のdiffを取るツールって時々欲しくなるよね。 エディタ組み込みのスクリプトで書くのも面倒だし。
581 名前:デフォルトの名無しさん [2006/02/27(月) 22:05:37 ] >>580 perl : Algorithm::Diff Python : difflib
582 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 22:52:22 ] >>579 コンパイラ屋なら差分くらい自分で抽出せい
583 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 23:15:05 ] 上の本、買っていいんじゃない?
584 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 23:15:29 ] >>582 プログラマは無駄を嫌うので、 出来る・出来ないに関わらずやりたくない。 とりあえず最後の577だけ読んだ。
585 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 23:33:55 ] そんなレスも考えたら凄い無駄だな そして>>585 も…
586 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 03:17:49 ] 「いまどきのプログラム言語の作り方」って本を読んでるんだけど、サンプルコードがJavaで 書かれているにもかかわらず、インターフェースがまったく使われてない。 そういうもの?
587 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 09:59:13 ] インタフェースは仕様を記述するものだからな 作者は仕様を考えたりできなかったんだろう
588 名前:デフォルトの名無しさん [2006/02/28(火) 11:20:56 ] 名に要ってんだコイツ
589 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 11:47:26 ] >>588 が低脳をさらけ出したw
590 名前:デフォルトの名無しさん [2006/02/28(火) 12:47:34 ] ↑意味不明もここまで来ると病気だろう
591 名前:デフォルトの名無しさん [2006/02/28(火) 14:00:13 ] 2つ上をさす時は 矢印使わないほうが紛れが無くて良いと思うよ。
592 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 14:07:00 ] そうだな。こういう風にな。 >>591 はバカでアホすぎ。死んだ方がいいよ。
593 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 14:47:08 ] おまえらいい加減にしろ
594 名前:591 [2006/02/28(火) 15:39:26 ] まぁ相当悔しかったんだろうな。
595 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 16:14:38 ] お前だろwww悔しかったのww
596 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 16:28:38 ] wはいい火病メーターだなホント
597 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 17:09:39 ] ほらww悔しかったから反応しちゃってるwww
598 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 17:39:02 ] ListやConnectionの仕様をみると、確かにこりゃインタフェースだと思った。 ClonableやAppendableとかはなんかインタフェースとは違う気がする。(使うないう意味じゃなくてね)
599 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 17:54:15 ] と、過剰反応する>>597 の姿 ttp://www.dumpalink.com/media/1140251493/Most_Patient_Guy_In_The_World
600 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 17:58:58 ] >>599 うざいから火病くんは消えてね
601 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 18:06:28 ] という悔しさいっぱいの反応でした
602 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 18:08:23 ] 自作自演で荒らしてるのか?
603 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 18:10:59 ] >>601 うざいから火病くんは消えてね
604 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 18:12:07 ] 自演じゃないならある意味チキンレースだな 相手に放置されちゃった方の負け 反応が無くて俺のこのレスが最後になったらどうしよう、と ハラハラしながら送信してるんだろうな、どっちも
605 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 18:49:08 ] 見当違いな意見だ。 逆だ逆。自分が最後じゃないと悔しいんだよ。こういう手合いは。
606 名前:デフォルトの名無しさん [2006/02/28(火) 23:42:26 ] また、rubier と lisper かw まったくお前らって(ry
607 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 23:50:10 ] >>606 もう Ruby や Lisp じゃ釣れない事を学習しろ。
608 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 23:52:22 ] (・∀・)ニヤニヤ
609 名前:デフォルトの名無しさん mailto:sage [2006/03/01(水) 04:44:59 ] 以前Flex/Bison使うと生書きするより実行速度が遅くなるって誰か言ってたけどいったいなぜ? それともデマ?
610 名前:デフォルトの名無しさん mailto:sage [2006/03/01(水) 05:08:00 ] そりゃターゲット言語に特化すれば速くなるでしょ。何でデマ?
611 名前:デフォルトの名無しさん [2006/03/01(水) 07:17:46 ] >>606 > rubier
612 名前:デフォルトの名無しさん mailto:sage [2006/03/01(水) 07:20:32 ] もうだれかVIPとか言う言語つくるしか
613 名前:デフォルトの名無しさん mailto:sage [2006/03/01(水) 08:48:37 ] >>610 よーわからんけどFlex/Bisonに勝てそうな気がしない。 なんかすごい効率的にやってそうじゃん。
614 名前:デフォルトの名無しさん mailto:sage [2006/03/01(水) 14:02:45 ] 『プログラミング言語を作る』 kmaebashi.com/programmer/devlang/index.html
615 名前:デフォルトの名無しさん mailto:sage [2006/03/02(木) 01:01:49 ] >614 >381
616 名前:デフォルトの名無しさん mailto:sage [2006/03/02(木) 02:13:51 ] がいしゅつでしたか (><)
617 名前:デフォルトの名無しさん [2006/03/02(木) 19:41:51 ] 俺言語でなく姫言語というのはないのか?
618 名前:デフォルトの名無しさん [2006/03/02(木) 22:32:39 ] プログラミング言語 姫
619 名前:デフォルトの名無しさん mailto:sage [2006/03/03(金) 12:52:34 ] 彼女に捧げるプログラミング言語 Love そんな彼氏に捧げるプログラミング言語 氏ね
620 名前:デフォルトの名無しさん [2006/03/03(金) 19:52:46 ] love か、いいネーミングだ。 プログラミング言語 ORZ
621 名前:デフォルトの名無しさん mailto:sage [2006/03/04(土) 07:42:53 ] >>620 むしろ OTL?
622 名前:デフォルトの名無しさん mailto:sage [2006/03/04(土) 11:04:14 ] >>619 ウィザードしか使えないくせによく言う(都市伝説ですか?)
623 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 11:54:43 ] >>618 >プログラミング言語 姫 これの勉強を始めるのは「姫はじめ」か。
624 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 13:26:21 ] 入門書「はじめての姫」
625 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 15:40:34 ] 参照カウンタやマークスイープ型より効率のいい方法のGC考えた。 循環参照でも問題ないし、スループット、レスポンスともにほとんど アプリの動作を邪魔しないし、効率は参照カウンタ方式の99%は 出る見込み(Cで普通にmalloc,freeする程度の負荷以上はかから ない)
626 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 18:26:21 ] 同じことをやってるヤシはいると思うが、まあガンガレ
627 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 19:12:42 ] Cのようにポインタをビット操作できてしまう言語ではGCの実装は無理でOK?
628 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 19:19:56 ] コンサバなものならいくらでもあるわけだが…
629 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 19:20:29 ] ↑C「で」実装するではなく、Cのような言語にGCを搭載する、の意
630 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 19:42:43 ] C/C++ 用の GC があるの知らんの? 現状だってプロセスのメモリ空間の中はスタックとか読み込んだライブラリを置く所とか 色々細分化されている訳で、そういう所は好き勝手弄っちゃダメでしょ。同じように GC ヒープ領域を用意してあげれば良いんじゃないの。
631 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 19:49:14 ] >C/C++ 用の GC があるの知らんの? 通常のmallocやnewに対応した完全に汎用的なGCがあるの? 原理的に絶対無理だと思うんだが。 やっぱGC専用のポインタが必要ってことだよね。
632 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 20:01:52 ] >>628 >>630 ポインタのアライメントを利用して下位1ビットに情報を… とか、その手の事をやられるとお手上げ。
633 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 20:03:38 ] はいはい、C++/CLIでもやってなさいボウヤ
634 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 20:05:07 ] >>632 >ポインタのアライメントを利用して下位1ビットに情報を… もともとこういうことをするのは、C言語でも未定義なのでする奴が悪い、でオワリ
635 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 20:31:54 ] JavaでできていることがCで出来ないはずはないだろ。 アセンブラに落とす時にJavaのVMみたいに複雑なメモリ管理を織り込めばいいんだから。 お前ら、言語仕様とABIを混同してないか?
636 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 20:34:41 ] この話は仕舞いだな。
637 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 20:45:38 ] >>635 >JavaでできていることがCで出来ないはずはない JavaがGCできるのはCよりも操作の制約が強いからだ char *a = malloc(100); int b = (int)a; // これの善悪は別問題として a = 0; ってやってaからの参照がなくなった時点でGCが掃除しちゃったら まずいだろ。プログラムとしてはbから復元して利用することもあり えるから。 よってこういうことが出来る素のCには、「触らないでねポインタ」を 新たに導入しないとGCは装備できないんじゃねーか?
638 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 20:53:07 ] だからコンサバ。
639 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 20:57:37 ] わかんないおれのためにもっとくわしく。コンサ何とか型のGCって名前は 聞いたことあるけど、そんなにすごいもんなのか?
640 名前:632 mailto:sage [2006/03/05(日) 21:00:00 ] >>634 その突っ込みは>>627 に対して? 何で俺?
641 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:03:26 ] >>639 homepage2.nifty.com/aito/gc/gc.html www.donguri.sakura.ne.jp/~shock8/wisper/gc1.html
642 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:18:35 ] >>641 リンク先見たけど(情報どうも)結局>>637 をやられると吹き飛ぶじゃん。 回収し損ねは許容するとして、ポインタを隠蔽して分解して 持っておくようなことはやったら駄目ってことだね。 よって「触らないでねポインタ」を導入しないことには回収しそこねや ハングアップを防止することは出来ないというのがオレの結論。
643 名前:デフォルトの名無しさん [2006/03/05(日) 21:18:53 ] まぁ、ばかはどの刷れにもいるけどなw
644 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:21:01 ] >>637 でGCがおかしくなるって言ってる奴は機械語レベルの表現を 全然理解できないんだろうなあ。
645 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:22:43 ] うむ。
646 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:26:39 ] まあ、マジックリストに対応できるようなGCは それなりに大変だろうね
647 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:29:25 ] たしかCからJavaを呼べるはずだから JavaはCのManagedコードライブラリと見ることも出来る
648 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:29:34 ] >>644-646 というかGC使いたかったら泥臭いことはあきらめろってしかいえない。
649 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:30:56 ] はあ?
650 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:30:59 ] >>642 スマソ。>>641 の下のリンク先は読まない方が良いや。 適当にググって貼っつけただけだから。何じゃこりゃ。
651 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:41:52 ] >>644 もうちょっと詳しく。当方アセンブラプログラマだ。 int b = (int)a; a = 0; とやったあとでb をビットレベルで分解したらどうにもならんと思うが、 コンサバ型だとそうならない魔法があるのか? bを再構成してポインタに戻してアクセスしたら開放されてるって いう状況は起こりうると思うが。
652 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:44:21 ] だんだん条件が増えていく件。
653 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:52:27 ] そりゃさすがにどうにもならない。 とはいえ、ビットレベルで分解→後で計算によって得た値が セマンティクスの面で有効なポインタかどうかは疑問ではある。 >>652 つか、「原理的に無理」で思考停止してるから。
654 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:59:47 ] >>652 議論に勝つために、徐々に条件を変えていくんだよなー。 2chはこういう奴ばかり。
655 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:09:08 ] 議論に勝った所で何があるわけじゃないんだけどね 俺の知らないところで何かあるのかな?w
656 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:13:50 ] >>654 議論に勝つためというより、物知らずというか ものの評価基準が幼稚なだけだと思われる。
657 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:21:31 ] えーと、どこで笑えばいいのかな?
658 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:24:05 ] >>657 の頭の弱さ。
659 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:25:21 ] ふーん。
660 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:25:56 ] >>656 コンサバティブ GC を初めて知ったレベルなら仕方が無いんじゃないの。 まだ当たりが付けられないだけだと思う。
661 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:26:56 ] あのー >>642 の時点で分解って書いてるんですけど
662 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:30:00 ] >>652 651じゃないが、わざわざポインタを整数として扱おうとするなら、 その後なんらかの演算を行うんじゃないかってのは 容易に想像つきそうなものだが。 ま、演算は演算させておいて、ポインタはポインタのまま 別に持っておくとか手はありそうだけど。
663 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:30:14 ] 元々の命題は >>637 だろ。
664 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:33:40 ] 重箱の済みつつき過ぎ、話も出来やしないよ。 >>662 はまともな人だね
665 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:35:08 ] いや、>>631 なんじゃないの。 631を無視して637だけなら対応したGCを書けばいいだけの話。
666 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:35:43 ] >>662 演算をするかどうかじゃなくて、再代入するかどうかが問題でしょ。 コード辺だけでそこまでケアしろと?
667 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:42:04 ] 再代入というか、計算で合成した任意の値をアドレスとして アクセスできるかどうかだね。 GCはプログラム中のデータからトレースできるものを残して それ以外を回収するってことだから、 可能な演算の集合を定義してルートとなる即値だけでなく その集合に含まれる演算で計算可能な値もアドレスとして コンサバティブに扱うことをトレースとすればいいだけの話。 だから、むしろ「原理的には」GCは設計可能。「原理的には」だけど。
668 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:48:20 ] ちょっと修正 ルートとなる→アドレスとなる 「原理的には」GCは設計可能→「原理的には」完全に汎用なGCは設計可能
669 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 23:35:17 ] そのGC、何一つヒープを開放してくれなさそう
670 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 23:42:56 ] >>666 想像しろよ。書いてるもんが100%だと決めなきゃ話できないようじゃ CPUと一緒じゃないか。人間だろ? >>662 は十分想像可能な範囲。 現に出来てる者が居る以上、それが出来なかった奴は気がまわら ないということ。 なんで整数に持ってきたいのか用途は色々あるだろ。まあ想像でき ないかもしれないがな。
671 名前:デフォルトの名無しさん [2006/03/05(日) 23:47:32 ] まぁなんらかのお約束は必要だよ
672 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 23:48:31 ] >>669 コンサバだからねw 演算の集合は全域で同一である必要はないわけで、 適当にヒントを与えて限定してもいいし、GCがコードを解析してもいい。 普通はそこまでやってらんないから演算は値をそのまま使う という一択だと考えるだけで。
673 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 00:34:34 ] >>670 幾らでも拡大解釈しようはあると思うけど、GC の仕組みを知っていれば そちらには振れないんじゃないかというのが俺の解釈だっただけだよ。 ま、GC の仕組みを知っていれば、最初からこんな質問も出なかった だろうけど。
674 名前:デフォルトの名無しさん [2006/03/06(月) 00:36:57 ] なんか理論の飛躍が Ruby vs Lisp の時と似ているなぁ
675 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 01:06:36 ] 同じ面子でグルグル回してるだけだから
676 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 07:47:45 ] >〜俺の解釈だっただけだよ 後から言うなよ
677 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 08:30:12 ] 後から想像しろとか言ってきたのアンタじゃん。俺にどうしろと?? もうこの話は終わったんだから絡んで来るなよ。
678 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 10:17:54 ] >>677 > 俺にどうしろと?? 恐らく謝罪を要求してるのでしょう :-) あなたをやり込めたい一心であらゆる論理を適時付け替えて頑張っているのですから、 彼のプライドを満たすためにも謝ってあげてはどうかと思います。
679 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 10:40:02 ] >>678 >>657
680 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 10:47:47 ] >>679 笑えない現実に対する対処の話ですから、笑う箇所などありませんよ。 そんなことも読み取れないのですね :-)
681 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 10:54:51 ] >>680 ふーん?
682 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 13:07:06 ] >>680 よし、じゃ俺のプライドを満たすためにおまいが謝れ。
683 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 13:28:21 ] >>682 ごめんください。
684 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 13:52:59 ] エェェェェェェ(;´Д`)ェェェェェェェエ
685 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 14:23:03 ] >>684 ごめんくさい。
686 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 15:32:11 ] /\___/\ / / ヽ ::: \ | (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ,,ノ(、_, )ヽ、,, | < まーた始まって、終わった。 | ,;‐=‐ヽ .:::::| \___________ \ `ニニ´ .:::/ /`ー‐--‐‐―´´\
687 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 00:21:33 ] まけず嫌いで粘着なキチガイが暴れているスレはここですか
688 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 00:31:35 ] ぶるんぶるん体操 ぶるんぶるんと僕は言う ぷるんぷるんとあなたは笑う そんな2人は、フォーエバー 世界の端から今日は そんなあなたはお毎度さん 今日もぶるんぶるん体操始まるよ ぶるんぶるん、ぷるんぷるん ぷるんぶるん ぶぷぷぷぷぷ *四谷街道繰り返し
689 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 23:02:33 ] このスレでオリジナル言語作って公開してる人って何人ぐらいいるの?
690 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 23:22:00 ] 俺的には、スクリプトはあくまで手段。目的は別にある。 だからスクリプトだけを公開する事は、俺にはありえん。
691 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 09:09:50 ] 現在の人数=0 >>690 ところで、目的って何ですか?
692 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 09:15:09 ] 現在の人数=1 ←どういうカウントだこれは? >>690 ぼくちんも知りたい。その手の業界ってけっこうあるのかな?
693 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 10:22:21 ] >>692 >>689
694 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 10:29:08 ] >>693 あーそういう意味だったのか。 じゃリセット。 現在の人数=0
695 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 12:58:30 ] 現在の人数=1 でもどこだかは教えない(w
696 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 13:19:30 ] 現在の人数=2 ……まあ、趣味の領域ですが。
697 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 19:53:28 ] >>691-692 単に自分の作りたいソフトを作るために、 下ごしらえでスクリプトを作ってるだけだよ。
698 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 20:06:51 ] 現在の人数=3 ……自分専用ツールとしてはじめたのがきっかけです。 私も、どこかは内緒w
699 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 20:17:47 ] >>697 マクロみたいなの搭載してるって意味だよね。 それとも何か目的のソフトを作るための言語を作ってるって意味?
700 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 21:05:27 ] >>699 後者。
701 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 21:19:45 ] >>700 マジで?言語作ってる間に既存の言語でソフト作っちゃったほうが早いんじゃないの?
702 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 22:16:53 ] >>701 プログラマの癖に手段と目的を取り違えたことがないの?
703 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 22:33:03 ] >>702 くせにとは何だ!くせにとは! お前こそ●●のくせに、いい気になるなよ。
704 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 22:54:10 ] >>702 ●2つも使ってるのか?なんて贅沢な。
705 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 23:05:44 ] >>703 なんだとこの●●●! お前だって●●●の●●●だろうに!●●●●!
706 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 23:22:18 ] >>705 うるさい、この●●のろ!
707 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 23:41:49 ] の●●の ↑鼻と目に見えた orz 以下、何事も無かったかのように再開。・゚・(ノД`)・゚・。↓
708 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 23:53:37 ] >>702 こいつは、真性の●●●●。 つまり、●●w あるいみ、●●●●●● ruby ● lisp ●●w
709 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 00:08:50 ] >>701 理想が高すぎる事と、自分自身の能力不足が原因なんだよ。 オブジェクトが多くなりすぎると、内容を追い切れなくなる。 つか、状態変位やイベントトリブンは、漏れには理解しづらい‥‥orz で、主に、個々の処理を独立させて、別個にまとめて見られる ようにするためにスクリプトを使ってる。
710 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 00:40:15 ] >>709 一言で言い表すと、 「グローバルオブジェクトなんて嫌いだぁ・・・ 全部ローカライズ化してやるぅ・・・・」 ってな感じでつ。orz
711 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 01:50:58 ] ローカライズ化? 頭痛が痛いだな。
712 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 02:16:15 ] 英語は嫌いだぁ・・・w
713 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 11:44:40 ] >>709 >つか、状態変位やイベントトリブンは、漏れには理解しづらい‥‥orz >で、主に、個々の処理を独立させて、別個にまとめて見られる >ようにするためにスクリプトを使ってる。 ちなみに、エミュレータのレジューム機能が元ネタ。 つ〜か、スレッドの場合は同期の管理が面倒なんだよな。
714 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 12:44:30 ] OSとエミュレータと、エミュレートされるソフトの動作を、 全部一つの実装で実現させたい、ってな所。
715 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 14:07:36 ] ネタが特許級に見えるのは気のせいか? 出願前に公開すると無効なはずだが・・・
716 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 14:54:39 ] レジューム機能付きのエミュレータが出る前なら、可能だったかもね。
717 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 20:09:47 ] >>714-715 似たようなネタのスクリプトなら実在するから探して味噌。 扱いやすいかどうかは別だが。w
718 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 20:50:04 ] 構文規則で、よくこんな表記つかってるけど A → B,C 矢印逆じゃないの? なんか、すげ〜違和感あり。
719 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 21:07:28 ] なにゆえ
720 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 22:33:32 ] 「生成」規則だからね。もともとのオートマトン理論では 規則によりどういった文章が生成されるかを考えていたから。 構文解析は、逆に与えられた文章がどういう生成規則を たどって作られたかを求める問題だ。その過程で生成規則を 逆向きに使って還元を行う。 だから構文解析だけを考えていたら、矢印が逆だと思うかも しれんね。
721 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 22:36:21 ] >>718 別に逆でもいいけど、たぶんおまいは逆にすると今度はそっちに違和感を感じるんだろ。 A → BC | DE ってのは A is defined as BC or DE A expands to BC or DE A generates BC or DE A is rewritten as BC or DE 逆方向には BC or DE can constitute A BC or DE can be reduced to be A などなど、色々な読み方ができる。
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を作るまでは楽だろうけど、その後が...。
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 は以前ちょっとだけ見て忘れてました。 もう一度調べてみます。どうもありがとう。
923 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 07:33:02 ] JavaScript 2.0って昔からドラフトだけは出てたけど、 今はもう実装されてんの?
924 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 07:50:29 ] 誰も実装しないね。草案が固まらないのかな?
925 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 07:54:42 ] ActionScript3.0は
926 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 08:45:35 ] >>919 Ruby コンプレックスかよダセw どうせオブジェクト指向が使いこなせなかった低能だろ? 氏んでくださーい。あっ HSP 厨房?
927 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 10:27:54 ] 926みたいな奴を見るたびに、Ruby使う気が失せていくんだよな。
928 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 13:26:48 ] レベルの低下が著しいスレですね
929 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 15:30:01 ] このスレは前からこんなもんだ。
930 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 15:30:40 ] j} _ ..∠ ≧=≠ー≒=辷z、_ _メ }} ≠´ `く≠≦´_ 〃 . , ' 〈、⌒ヽ`ヽ=≠" /, , / , キヽ. ヽ ///〃 / / / }}川 i|! i } ハ ト、 キ . jハl|‖{ { { { ノノ川 jj| j / / j}_,メ ヾリ . l{八 ヽヽヽ \ //ノノノノノ} /〃// `二ニ=- 、 八 、ヽ、 x≦ミヽ、{ { ≧=ミ.ノ/ノ_厶斗-‐== 二 」 / ゝ≧ミyィ゙j:i} ` ´{゙j:;;!ii}ゞ≧=彡ヘ-‐=≡ ‐= ニコ . / /{ミ辷彡}oー ' , ーo' {ミ辷__彡}二ニ=- jノ { / , ゝー=人"" cっ "" °{ミ辷__彡}-‐==≡ミ〉 \{ / /{辷彡}> .. __ イj从ミ辷_彡ノ==≡ニ≦、 `{ { f´≧=彡'´ ̄`ヽ_」 jァァ' ゞ=个辷ニニ=-テ′ `ーァ `≠ x==く(´ /,≠=キテノハミ辷=≦ ヤ/ 〈く `'ァfj彡'゙ 》/ ヽ_弓 `{ ヾx、__,≠ハミヽ、 〃 丿 リノ . \/´  ̄_/,≠= 、 `'≡彡゙ '⌒'く ´ / _/´~ニ{ニ Y´ -‐- 、丿 { /i{ ニ{- ハr┬- 、 } ノイ| キ ノ゙T ¬i ! } } ヽ { / {l| キf´‖{| j }ノノ } } ‖ ミ{ キ!、リ キ /// ′ハ 人 ヾ、 ヾツ キー' 〃 _ .. イ ヽ . / `アアア丁! ! `T¨丁 ̄i i | \ . / / / / Ui i U | U i i \ うう・・・・・・・グス・・・・・・・ひっく・・・・・・・・ごめんなさいなのぉ・・・
931 名前:デフォルトの名無しさん [2006/05/03(水) 22:14:41 ] オブジェクト指向言語って全体のどれぐらいを占めるのでしょうね? 最近流行ってる見たいですが…
932 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 22:23:22 ] オブジェクト指向言語というのは、オブジェクト指向でプログラミングすることを念頭に置いた言語という意味だって知ってる?
933 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 23:33:12 ] いまどきアセンブラの仕事している俺っていったい・・・ さすがに紙に穴あけたことはないけど。
934 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 00:48:06 ] >>933 > いまどきアセンブラの仕事している俺っていったい・・・ 1チップ組込用マイコン設計屋で、アセンブラでテストパタン作っていますが、何か?
935 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 00:58:01 ] アセンブラがかっこいいとか思ってるの?
936 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 01:12:31 ] >>934 カコイイ!!
937 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 04:32:36 ] オブジェクト指向が主流の現代にアセンブラかよ。プゲラ
938 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 04:53:01 ] >>937 disassemble や decompile した事無いの?
939 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 07:20:30 ] >>934 スゲー!!!
940 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 08:53:20 ] >>934 FPGA とか CPLD でゴニョゴニョ出来る人はちょっと憧れる。 ↓こんなのとか。 crystal.freespace.jp/pgate1/nes/index.html
941 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 09:00:37 ] >>934 お嫁さんにして下さい。
942 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 10:15:22 ] >>934 カコイイ
943 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 13:03:21 ] >>934 m9(^Д^)プギャー!!
944 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 13:18:00 ] アセンブラに対する評価って、色々なんやね。 そういや、アセンブラやってからCをやると、 ポインタが分かりやすいという話があったな。
945 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 19:21:03 ] >>944 それ、逆というか本末転倒。 ポインタの概念を理解できないと、そもそもアセンブラを理解できない。 従って、アセンブラをやった者にはポインタは空気のような存在。 使えない事の方が理解しがたい。
946 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 19:33:46 ] >>945 アセンブラの次にcやった人だと、ポインタに対する インクリメント(++)で、型によって値が+2されたり+4 されたりするのが理解しづらいとオモ つ〜か、漏れが昔はそうだった
947 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 19:54:50 ] へー頭悪かったんだね。
948 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 20:22:54 ] 煽り乙
949 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 20:35:34 ] スレの本題を忘れるなよ。まぁ今後オブジェクト指向が主流となる事は間違いない
950 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 21:05:25 ] OO つかクラス指向は 90's 中頃からずっと主流だったし、最早、水や空気と変わらんね。 1チップマイコンは地味に流行ってて面白そう。ARM 基板とか安く手に入るし。
951 名前:デフォルトの名無しさん [2006/05/04(木) 23:18:48 ] オブジェクト指向はruby以外まともなものは知らない。 みな中途半端
952 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 23:25:02 ] Ruby 以外の言語を知らないんじゃないの?
953 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 23:56:18 ] YARV の話しようぜー 今んとこ最強だよね
954 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 04:45:55 ] 大昔 Smalltalk-80 とか Smalltalk/V とかつかってて、 それほど中途半端な感じはしなかったけど・・・
955 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 04:47:52 ] >>951 rubyも中途半端
956 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 06:04:08 ] つか、rubyは手続き型の記述が「可能」な時点でオブジェクト指向ぽい言語なのでわ?
957 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 06:50:44 ] >>956 それを言っちゃうとメジャーな言語でオブジェクト指向を謳ったものはほとんど残らないじゃないか。
958 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 10:24:17 ] >>954 また古い話だな。でも Ruby は Smalltalk の良い所を継承しつつ、その制限や 不便な部分を改善しているよ。今迄実行環境については構文木を Eval という Smalltalk に大きく見劣りする形式だったけど YARV によって GC 回りを含め て大きく改善された。
959 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 10:28:29 ] 一番最後に出来た VM だな。 YARV の詳細は知らんけど、世代別 GC と JIT くらい備えないと 10 年前の Smalltalk にすら追い付いてないのでは。
960 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 11:52:13 ] >>359 YARV 世代別 GC になるよ。JIT も計画されてるみたいだけど 最初は搭載されないだろうなー
961 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 16:48:22 ] Ruby関係はIPA採択されやすいのかな YARVてなんか未踏でもなんでもない気がくぁwせdrftgyふじこ
962 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 16:49:14 ] 国産ですので。
963 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 16:49:49 ] 早っww
964 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 18:47:40 ] やっぱり「純粋な〜」が好きな国民性ゆえ Ruby と Haskell がブームとなるん だろう。 純粋な関数型: Haskell 純粋なオブジェクト指向: Ruby このスレもこの二つメインで良くね?ぶっちゃけのこりの雑種共はいずれ死滅 するだろ。
965 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 18:54:52 ] YARVって速いの?
966 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 20:15:27 ] Rubyが純粋なオブジェクト指向て。 孤高の言語 Lisp Prolog > 新しいパラダイム Smalltalk Haskell > 面白いモデル ML Forth て感じだろ。 Java Perl Ruby Python なんかはカスみたいなもんだ。
967 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 20:21:22 ] 今日はじめて彼女とHしました。記念sage
968 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 20:25:44 ] >>966 実用言語が一つもない件w
969 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 20:30:53 ] >>986 まじめな話Forthは実用言語だぞ。 今はあまり使われないがリソースが少なかった頃の組み込み分野じゃ一斉を風靡したもんだ。 (ちなみにforthラブラブな本があったんだけどタイトル失念した)
970 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 20:35:11 ] でも再帰下降が普及してからforthでなくともスクリプト組み込みは容易になったからなあ
971 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 20:40:43 ] 完全に純粋であることに意味なんか無いしなぁ。 つうか、あるパラダイムに本当に完全に純粋な言語なんて無いよなぁ。
972 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 20:48:04 ] Microsoft パラダイムに 純粋な言語は幾らでもあるけれど?
973 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 21:09:50 ] >>972 政治的な話はなしにしないとemacsとviみたいに不毛な話しかでてこなくなる。 #つーか原理主義だけはやめようよ〜
974 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 22:01:34 ] 純粋な言語って使い物にならないよ。 実用的なソフトが作れない >>969 おお、それは失礼した。 組み込みで使われてたか。知らん分野だった >>972 どこどこ?
975 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 22:09:58 ] つVB つC$
976 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 22:31:03 ] 言語が「純粋」ってどういう意味?
977 名前:デフォルトの名無しさん [2006/05/05(金) 23:07:39 ] >>976 Vi を使って Ruby スクリプトを書くようなイメージ
978 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 23:12:09 ] だーかーら Rubyは「純粋」じゃないのっ もっとお勉強しましょうねー
979 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 23:12:40 ] 「実用的」なソフトってどんなの?
980 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 23:31:46 ] >>978 お前の言う「純粋」な言語は存在しない。お前がもっと勉強してね。
981 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 23:34:05 ] >>974 あと印刷関連の言語 PostScript もほぼ純粋 Forth だよ。
982 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 23:51:09 ] >>980 SchemeとSmalltalkはRubyよりは「純粋」だと思うよ Rubyのアイデンティティってなんなの?
983 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 23:54:45 ] >>982 SchemeとSmalltalkが「純粋」? ブハッツww バカだコイツww
984 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 23:58:11 ] >>983 Smalltalk のどのへんが OO 言語として純粋でない部分? ちょっと通りすがりだけど興味あるんで聞いてみたい。
985 名前:デフォルトの名無しさん mailto:sage [2006/05/05(金) 23:58:15 ] だーかーら SchemeとSmalltalkは「純粋」じゃないのっ もっとお勉強しましょうねー
986 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 00:05:59 ] ruby はブロックの扱いが Smalltalk に比べて純粋でないというか、 後付っぽい感じがただよいまくり。
987 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 00:07:11 ] クラスの概念はOOとして純粋じゃない。 実用の為に導入されている。
988 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 00:11:10 ] >>987 OO の本質が何であるかは人によって様々。 勿論クラス指向でも問題無し。
989 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 00:11:31 ] Scheme は最小構文、クロージャ、プログラムがデータ Smalltalk は全てオブジェクト Ruby は 、、、 えっ 文字列を evalするの? ブロックなにそれ? そんな Rubyのアイデンティは? 、 ないよねー
990 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 00:14:03 ] >>988 つまり、人によって純粋の定義は異なる。 よって、純粋かどうかに拘って、アイデンティティがどうとか言ってる982はバカだってことで
991 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 00:18:15 ] や、>>977 の発言を見て Rubyを純粋だと信じてやまないピュアな若者を いじってみたくなっただけなんだ。 正直純粋とかアイデンティティとかどうでもいい。いまは反省している。
992 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 00:18:35 ] >>990 >つまり、人によって純粋の定義は異なる。 これはそのとおりだし、「純粋」議論には意味がないと思うが。 で、「純粋なOO言語だっ」と言いたがるのはたいていRuby信者だが、それはさておき。 Rubyが、いろんな言語からつぎはぎした統一感のない言語だってのは事実なんじゃね? それを「いいとこ取り」と言う奴もいるだろうが、「ぐちゃぐちゃ」とか「アイデンティティがない」とか 思う奴もいてよかろう。
993 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 00:18:36 ] >>990 純粋の定義は変わらんよ。どっちの方向に純粋かが変わるだけ。 純粋である事にはそれ程意味がある訳じゃないけどね。 >>989 Ruby のアイデンティティは ad-hoc さとごちゃ混ぜ感じゃないの。 yet another perl だから。
994 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 00:22:21 ] そういや、次スレ立てにゃいかんな。 今回は特にテンプレ貼らず、Wikiのまとめページへのリンクだけでもいい気がする。 www6.atwiki.jp/compilerandscriptengine/
995 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 00:31:26 ] >Rubyが、いろんな言語からつぎはぎした統一感のない言語だってのは事実なんじゃね? 他の言語のよいところをつぎはぎしない言語は、死んで使われてない言語だけだろ。 >それを「いいとこ取り」と言う奴もいるだろうが、「ぐちゃぐちゃ」とか「アイデンティティがない」とか >思う奴もいてよかろう。 それは無知だからだろ。 というと怒るか? では、Rubyも全てオブジェクトだし、純粋だと言うヤツがいてよかろう。 それを否定して、無知だからだと言ってるヤツは何だ?
996 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 00:39:47 ] >>995 その話はもう終わり。無駄レスで残り少ないレスを消費するなよ。
997 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 00:43:12 ] お前のそのレスがムダだし、その所為でこうしてまたムダレスが書かれる。 浅はかなんだよ。お前は。
998 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 00:51:28 ] >>993 アイデンティティがないのがアイデンティティって? まあ否定はしないけど。 >>995 ブロックはオブジェクトじゃないよ。RubyはSchemeに似すぎている。だからこそ中途半端に感じる。 もっと Schemeっぽくして callを applyにしてオブジェクトを evalするようにするのは簡単 だろうけど、それって嬉しいの? ってなる。Schemeでいいじゃんみたいな。 使ってる人もいっぱいいるし、身動きとれなくなって結局 Perlみたくなるんだよ。
999 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 00:59:00 ] ブロックはオブジェクトとして扱えばオブジェクトになる。 >RubyはSchemeに似すぎている。だからこそ中途半端に感じる。 最近のLL言語はそらLisp系に似てるだろうけど、それで中途半端に感じる?意味不明すぎ。 >もっと Schemeっぽくして callを applyにしてオブジェクトを evalするようにするのは簡単 >だろうけど、それって嬉しいの? ってなる。Schemeでいいじゃんみたいな。 なんでSchemeっぽくする話にしてんの?しないよ。 Schemeでいいじゃんみたいなって、意味不明な論理からその結論かよ。アホか。 >使ってる人もいっぱいいるし、身動きとれなくなって結局 Perlみたくなるんだよ。 だからなんだってんだ?
1000 名前:デフォルトの名無しさん mailto:sage [2006/05/06(土) 01:00:07 ] 1:00ちょうどに 1000!
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。