- 1 名前:デフォルトの名無しさん mailto:sage [2005/05/06(金) 08:28:29 ]
- プログラミング言語処理系の開発に興味のある人達のスレッドです。
字句解析・構文解析から,データフロー解析,ループ並列化,タスク並列化,SSA変換, CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン等各種最適化, それにVM,GC,JIT,リンク時最適化,動的バイナリ変換などなど。 意味論に関する話題も歓迎です。 前スレ 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/ (前スレ) 関連リンクは多分 >>2-10 あたり
- 52 名前:42 mailto:sage [2005/05/10(火) 23:42:48 ]
- >>46
>Rubyに限らずわりとよくある要求だろ。 > lexerに文脈を渡す そうかねえ。 Cあたりでも、typedefなんかでparserがlexerにちょっかい出すけど、 parserがlexerに『頻繁に』ちょっかい出すのはやっぱり行儀悪いと俺は思うよ。 人間にとっても曖昧な、落とし穴の多い言語になりそうだ。 >>47 >むしろ変数で情報を渡すよりカプセル化に有益なんでは。 「変数で状態を渡す」と言った覚えはないし、 >それ以後%startと整合性をとる必要を生じるのが「かけるべき手間」ってのもなあ… 「%startと整合性をとる必要を生じる」ってのがわからないんだけど。 俺アホだからなにか気付いてないことがあるんかね。だとしたら教えてくれや。 >マゾじゃあるまいし。 クラスにsetterメソッド書くのがマゾだ、とまで言うんならもう何も言わないけどさ。 現状で、flexでさえそんな機能がないってことが、大半のプログラマはそんな 機能を望まない、っていうひとつの証拠だと思うよ。
- 53 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 00:00:13 ]
- アホなら黙ってりゃいいのに。
- 54 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 02:18:35 ]
- >>52
機能がないことがその証拠ってのもおかしいだろ。機能がないからほとんどの人間が気づいていないだけ、という可能性も十分あるわな。 いろんな記号を多用するような言語(スクリプト言語では多いよな)なら、コンテキストによってlexerの動作を変えたいという要求はすごくある。 それが今までのツールじゃ難しかったか面倒くさかったから、言語の機能が増えるたびに予約語も増える傾向にある。
- 55 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 03:05:04 ]
- >>52
> 人間にとっても曖昧な、落とし穴の多い言語になりそうだ。 ここに全く同意できない。 開発する人間とって曖昧な、落とし穴の多い実装になりそうだ。 ↑これなら納得するし説得されてやる。
- 56 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 04:44:45 ]
- >>55
>開発する人間とって曖昧な、落とし穴の多い実装になりそうだ。 んで、だからこそそれをサポートする>>39の提案が意味を持つわけだね。
- 57 名前:デフォルトの名無しさん [2005/05/11(水) 20:41:25 ]
- WindowsでC++モドキを作ってて、UNIXに移植する段階でこの問題が出た。
WindowsのC++処理系のほとんど(全て?)はtry catchの例外機構を SEHで実装してるけど、 UNIXでは何使って実装するもんなの?まさかsetjmp/longjmpとか?
- 58 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 20:54:31 ]
- g++を見たほうが早いような
- 59 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:01:17 ]
- たぶんアセかな。
そのアセ自体が何してるのか知らんが。
- 60 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:07:35 ]
- >>57
言いたいことはわからんでもないが,SEHとはtry/catchのような構文によるエラー処理の 総称では? SEHをCで実装する場合、setjmp/longjmpもしくは2返戻値によるのが普通かな。
- 61 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:09:26 ]
- 確かに
> try catchの例外機構をSEHで実装してるけど、 という言い方は変だよな。
- 62 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:10:15 ]
- >>57
つまり、そのまさか。
- 63 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:12:12 ]
- >>60-61
知ったかぶんなよ。 WindowsにはSEHという機構がOSに組み込まれてるの。
- 64 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:19:39 ]
- >>63
そんなことは分かってる
- 65 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:20:25 ]
- ちなみに例外がアプリケーション側で補足されず、そのままスルーすると出る
デフォルトのダイアログ(ご迷惑をお掛けしています〜)は、 OS側にこの機構があるおかげです。 UNIXの糞ダンプと違って、そのままデバッガに飛ぶなりできます。。。
- 66 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:22:08 ]
- >>64
いや、おまえ判ってない。 ぜんぜんわかってない。
- 67 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:23:08 ]
- >SEHをCで実装する場合、setjmp/longjmp
なんせこんなこと言ってるし
- 68 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:25:45 ]
- じゃあ糞UNIXはsetjmp/longjmpで糞チェインを自分で作らないと駄目って事で。
- 69 名前:デフォルトの名無しさん [2005/05/11(水) 21:28:21 ]
- 言語語ってるやつが、WIN使いとはなw
ワロタ
- 70 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:29:36 ]
- え、どこが面白いの?
- 71 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:31:13 ]
- >>69
そんな奴おらんだろw
- 72 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:33:25 ]
- Windowsの高度な技術議論についてけずUNIXerの頭が崩壊したらしいなw
- 73 名前:デフォルトの名無しさん [2005/05/11(水) 21:34:28 ]
- それで、UNIXでは本当にsetjmp使うんですか?
なんか信じられないけど。 まあgcc読んできますが。
- 74 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:39:00 ]
-
SEHとはこれのことだろ。 www.microsoft.com/japan/msdn/library/ja/jpdndeepc/htm/deep051099.asp?frame=true www.microsoft.com/japan/msdn/library/ja/jpdndeepc/htm/deep060399.asp?frame=true
- 75 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:42:23 ]
- >>65
サーバでそんな事してたらアホだろ
- 76 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:42:36 ]
- なんでsetjmp使うことに驚く。別にUNIXでなくても普通に使ってるぞ。
ところで上でもめてるようだが、SEHという言葉には ・win32固有の機能(よく__try, __exceptで利用するものね) ・try〜catch的なエラー処理構文(on error goto等との対比で) のふたつの意味があり、Microsoftでもその両方を文脈に応じて使いわけている。
- 77 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:45:19 ]
- >>75
Windowsにはサービスというものが(以下略 ほんと糞UNIXerは使えねえなw
- 78 名前:デフォルトの名無しさん [2005/05/11(水) 21:46:00 ]
- UNIX使いの使えなさ加減にワロタ
- 79 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:46:44 ]
- >>76
文脈から理解できなかったアフォの言い訳だなw
- 80 名前:デフォルトの名無しさん [2005/05/11(水) 21:48:08 ]
- UNIX使いのアホさ加減にワロタ
- 81 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:49:08 ]
- やけにスレ伸びてるかと思ったら
UNIX嫌いのバカが一匹いるだけか
- 82 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:49:50 ]
- UNIX使いの煽りってたいしたことないのなw
- 83 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:50:15 ]
- >>77
一生モニタのお守りしてるつもり?
- 84 名前:デフォルトの名無しさん [2005/05/11(水) 21:50:18 ]
- UNIX使いの煽りの低レベルさにワロタ
- 85 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:51:11 ]
- windows最高。microsoftは神。
- 86 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:51:14 ]
- >>83
無知がでしゃばるなって。 サービス登録すれば勝手に再起動とか色々できるわけですよ。
- 87 名前:デフォルトの名無しさん [2005/05/11(水) 21:51:42 ]
- UNIX使いの無知さ加減にワロタ
- 88 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:52:06 ]
- はやくunixにもwin32が移植されるといいね。
- 89 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:52:40 ]
- win32万歳。seh万歳。
- 90 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:54:02 ]
- >>86
ヘェ、凄い凄いw
- 91 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:54:13 ]
- windowsは究極のos
- 92 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:54:33 ]
- UNIXを馬鹿にしないでください
2chのサーバだってUNIXですよ?
- 93 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:54:44 ]
- windowsに足りないものは何もない
- 94 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:55:51 ]
- 余分なものは山ほど(ry
- 95 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:56:07 ]
- みんなで崇めようwindows
- 96 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:56:26 ]
- >>92
おれが馬鹿にしてるのはUNIXでなくてここにいるUNIX使いだってばw
- 97 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:56:59 ]
- >>96
おい、レベル下がってるぞ もっと面白い事言ってくれよ
- 98 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:57:00 ]
- こんなに愛されて…windowsも幸せ者だな
- 99 名前:デフォルトの名無しさん [2005/05/11(水) 21:57:29 ]
- UNIX使いの早とちりにワロス
- 100 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:57:47 ]
- そうだwindowsで行こう
- 101 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:58:38 ]
- 世の中windowsが標準です
- 102 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 21:59:52 ]
- つまらん
- 103 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:00:33 ]
- _ ∩
( ゚∀゚)彡 windows! windows! ⊂彡
- 104 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:00:38 ]
- UNIXにもプロセスが死んだらコアダンプというものがあって、
デバッガを自分で起動できますが何か?
- 105 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:02:20 ]
- unixさんが好きです。でもWindowsさんの方がもっと好きです。
- 106 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:03:53 ]
- お前ら、まとめてこっちへ行っちゃえ。
最高に頭悪そうな発言してください in ム板 (V) pc8.2ch.net/test/read.cgi/tech/1115386557/
- 107 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:06:38 ]
- ためになるお話でした。
- 108 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:10:48 ]
- いまさらWindowsで動かない処理系はクソだと思ってる俺様がきましたよ
- 109 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:12:14 ]
- もうみんな帰っちゃったよ
- 110 名前:デフォルトの名無しさん [2005/05/11(水) 22:40:37 ]
- >>108
馬鹿の見本みたいな奴だなw
- 111 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:41:58 ]
- windowsが好きで好きで仕方がない
- 112 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:42:57 ]
- >>110UNIXだけだとサーバの日陰者アプリしか作らないじゃん
- 113 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:44:00 ]
- windowsを愛することにかけては誰にも負けない
- 114 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:44:42 ]
- >>112
UNIXでも最近まともに動いてるサーバはWebぐらいだよ。 正直ApacheやJavaのおかげと言っていい。 他の用途では正直使い物にならない。
- 115 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:44:50 ]
- windowsのためなら死ねる
- 116 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:46:41 ]
- まだDBがあるさ。
Oracleとかのおかげだけど。
- 117 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:47:07 ]
- 削れるものは何もない。加えるものは何もない。それがwindows
- 118 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:48:25 ]
- 何も足さない、何も引かない
- 119 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:48:53 ]
- Windowsの49日ルールがある限りUNIXは生き残れる!
- 120 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:50:01 ]
- そんなにいいのかwindowsは。明日買ってこよう。
- 121 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:50:10 ]
- そろそろ違う所でやってもらえませんか?>UNIX関係
一応誘導しておきます。 UNIXプログラミング質問すれ Part5 pc8.2ch.net/test/read.cgi/tech/1105723117/ UNX板 pc8.2ch.net/unix/
- 122 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:50:51 ]
- 凄いな。俺も買ってこよう。
- 123 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:52:31 ]
- でもこんなにいいwindows、高いんじゃないの?
- 124 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:56:59 ]
- 無料Linuxが1円の価値だとすると、プロ仕様はその約3万倍ぐらいです。
でもほとんどのお店で売ってるPCに何故か付いてきます。 何故でしょうね。 この謎を解き明かしてみるのも面白いかもしれませんよ。
- 125 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 22:57:10 ]
- それが奥さん、聞いてくださいよ。
なんとたったの28,350円(価格コム調べ) kakaku.com/prdsearch/detail.asp?PrdKey=03107010192 さらに今お買い上げいただくと
- 126 名前:42 mailto:sage [2005/05/11(水) 23:16:31 ]
- なんかスレッドが伸びてると思ったら... なんだこりゃ。
で話を戻すけど、 >>55 >> 人間にとっても曖昧な、落とし穴の多い言語になりそうだ。 >ここに全く同意できない。 根拠もなしにんなこと言われてもなあ。実際Rubyは落し穴の多い言語になってるし。 i.loveruby.net/ja/rhg/contextual.html で、Rubyのlexerには状態が9種類あるようだけど、parserから設定するのは 4種類だけだ(EXPR_BEG, EXPR_END, EXPR_ENDARG, EXPR_FNAME)。 だったらlexerにsetterを4個付ければ済む話。 たいした手間じゃないし、勝手に他の状態にされる危険もないし(カプセル化の基本)。 >>54 >機能がないからほとんどの人間が気づいていないだけ、 >という可能性も十分あるわな。 本気でそう思ってるんならパッチでも何でも作って公開すりゃいいじゃん。止めないよ。 >>57 ちなみにだが、Rubyの実装ではsetjmpもlongjmpも使いまくってるよ。 # ありゃひでえ。
- 127 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 23:41:25 ]
- 初期のいったんCのコードを吐くやつはsetjmo,longjmp使いまくりだったじゃん
- 128 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 09:48:50 ]
- >>57-
例外が発生しない場合のオーバーヘッドを0にする手法がある。 setjump/longjumpだと、tryに入ったときにsetjumpして、 例外が発生したらlongjumpすると思うけど、 setjumpを省く代わりに、例外が発生したらスタックを遡りながら、 例外を起こしたコードのアドレスから対応するcatchを特定する。
- 129 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 11:37:43 ]
- 何がひどいのかよくわかりません
- 130 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 12:18:26 ]
- とにかくRubyがひどいんでしょう
- 131 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 12:41:16 ]
- Rubyのソースが酷いのはRuby使い(信者除く)も認めてるらしいので
具体的に酷いところを挙げてみてほしいなぁ
- 132 名前:三遊亭円楽 mailto:sage [2005/05/12(木) 14:42:43 ]
- 座布団ageようとおもって山田君駆動レコードをスタックに積んだのだが
何故、windowsやらunixやらですれがのびるんだね。
- 133 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 19:05:56 ]
- 構造化例外処理のメジャーな手法は、
setjmp法、>>60の2返戻法、>>128の例外表法 の3つかな。 個人的には、変換後最適化が色々適用できる2返戻法が好きかも。 定量的な比較はしてないが…
- 134 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 19:59:16 ]
- >2返戻法
これの説明だれかしてください 意味わかんねえよ
- 135 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 20:30:02 ]
- (通常の戻り値,例外オブジェクト)
だとググらずにカキコ
- 136 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 20:40:49 ]
- >setjmp法、>>60の2返戻法、>>128の例外表法
つーか>>133説明してくれよ そもそもそんな〜法なんて言い方あるのかも
- 137 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 20:50:25 ]
- "2返戻値法" はググるで引っ掛かった
千葉 雄司という人の造語? ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-13308-7
- 138 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 21:26:46 ]
- fw8.bookpark.ne.jp/cm/ipsj/search.asp?flag=6&keyword=IPSJ-TPRO4301009&mode=
735円だって
- 139 名前:デフォルトの名無しさん [2005/05/12(木) 22:05:10 ]
- >>130
そうではない。 古いいまのパーサやスキャナの枠組に入らないだけ。 「古いブドウ酒は、新しい皮袋に馴染まない」 とは、まさにことこと。 新しい言語は、古い開発パラダイムを駆逐する。
- 140 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 23:15:18 ]
- >>139
信者乙。
- 141 名前:130 mailto:sage [2005/05/12(木) 23:27:10 ]
- >>139
ごめん、あれは42に対するいやみのつもりだった。
- 142 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 23:41:11 ]
- さっぱり意味不明
- 143 名前:デフォルトの名無しさん [2005/05/12(木) 23:46:43 ]
- >>142
古いタイプの人間?
- 144 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 23:47:24 ]
- >>42
- 145 名前:42 mailto:sage [2005/05/13(金) 00:16:26 ]
- >>131
>具体的に酷いところを挙げてみてほしいなぁ だから挙げてるじゃん。 (eval.cにおいて)setjmp, longjmpを使いまくってること、 parserがlexerにむやみにちょっかい出すこと。 まあ後者は言語仕様の問題だが、それを実装するために、 グローバル変数で通信してるってのはどうかと思う。 eval.cとparse.yが汚いってのは作者も認めてたと思う。 >>141 いやみったって、意味わかんねえんだけど。 むしろparserとlexerがきれいに分かれない言語の方が、古い言語っていうイメージが あるけどね。俺は。
- 146 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 00:23:32 ]
- その実装のせいで処理系のユーザにとってどういう不具合が出てくるかが知りたい。
処理系自体がどういう実装になってようが、処理系のユーザにはあまり関係ないよね。
- 147 名前:42 mailto:sage [2005/05/13(金) 00:41:42 ]
- >>146
そりゃ実装が汚いからってユーザに不具合が出るとは限らんわな。 だから俺そんなこと言ってないし。 なんか粘着に絡まれてるなあ...
- 148 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 00:42:27 ]
- i.loveruby.net/ja/rhg/contextual.html
スペースの入れ方で解釈が変わる言語ってどうなのよ?
- 149 名前:ヽ(´ー`)ノ ◆.ogCuANUcE mailto:sage [2005/05/13(金) 00:43:42 ]
- >>146
> 処理系自体がどういう実装になってようが、処理系のユーザにはあまり関係ないよね。 それを言っちゃうとこのスレの存在意義がなくなってしまうのだが。
- 150 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 00:50:48 ]
- >>148
a[i] = 1 # a[i] = (1) a [i] # a([i]) 前者はインデックス代入であり、後者はメソッド呼び出しの括弧を省略して引数に配列の要素を渡している。 また次のような場合もある。 a + 1 # (a) + (1) a +1 # a(+1) このあたりの仕様は一部の地域でやたらと嫌われているようだ。 つうかわざわざこんな仕様にした作者の意図を激しく聞いてみたい
- 151 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 02:42:38 ]
- 別にそれらをそういう風にしたかったわけじゃなく、
メソッド呼び出しの括弧を省略できるようにした結果だろうね。
- 152 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 02:47:39 ]
- >>149
そんなことない。 効率的な実装で処理系が速くなるならユーザにも意味はあるし、 言語仕様や意味論の話題だってあるだろう。
|

|