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 あたり
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な) ステージが省ける、ってだけじゃないかと。 言語デザイナの立場だと文法も重要なんだろうけど。