- 1 名前:デフォルトの名無しさん mailto:sage [05/01/19 19:06:04 ]
- プログラミング言語処理系の開発に興味のある人達のスレッドです。
字句解析・構文解析から,データフロー解析,ループ並列化,タスク並列化,SSA変換, CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン等各種最適化, それにVM,GC,JIT,リンク時最適化,動的バイナリ変換などなど。 意味論に関する話題も歓迎です。 前スレ 1 pc.2ch.net/tech/kako/981/981672957.html 2 pc2.2ch.net/test/read.cgi/tech/1021136715/ (dat落ち) 3 pc5.2ch.net/test/read.cgi/tech/1070089173/ 4 pc5.2ch.net/test/read.cgi/tech/1100097050/ (前スレ) 関連リンクは多分 >>2-10 あたり
- 132 名前:デフォルトの名無しさん mailto:sage [05/01/20 23:53:46 ]
- >>127
7.2節は意味関数で定義されてるが それは人間の言葉で定義してるということでいいのか?
- 133 名前:デフォルトの名無しさん mailto:sage [05/01/20 23:56:42 ]
- Ruby厨の脳内仕様では値を持つも値を返すも同じ
- 134 名前:デフォルトの名無しさん [05/01/21 00:00:49 ]
- >>128
そうなのか?orz ところで、式と文の関係は言語に関係なく、 式⊂文 でいいんだよなぁ? これに反する言語ってある?
- 135 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:00:58 ]
- void がイカンのは
( void ∈ dom(f) ) = false ∧ ( void ∈ ∈ cod(f) ) = false が常に成立するからだとおもふ
- 136 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:01:44 ]
- あっ、∈が一個多すぎた、まあ気にするな。
- 137 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:05:20 ]
- >>126
煽りじゃなくて単に見解を聞きたいんだけど、 式のセマンティクスを定義するのに式という言葉を使いたくて 式という言葉をとりあえずBNFとかで定義しておいて、 「式は値を持つ」とかいう形でセマンティクス上の意味を付加していくことがある (特に数学的にセマンティクスを定義したい場合)。 こういう場合、「式という言葉(の意味)」はBNFで定義され 「式の(セマンティクス上の)意味」は日本語とかで定義される、 といったことになると思うんだけど、どう?
- 138 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:08:08 ]
- こんだけ暴れて何も学んでないんだなぁ。
- 139 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:10:12 ]
- 「式という言葉(の意味)」はBNFで定義され
は 「式という言葉(の字面・パターン)」はBNFで定義され じゃない?
- 140 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:11:38 ]
- >>137
俺の見解としては、それは普通に間違い。 「式の意味」という言葉を人間が使う時、普通は「式の(セマンティクス上の)意味」を指すから。 あくまで、BNFで使っている名前は、構文規則を定義するための記号にすぎず、 人間が「式という言葉(の意味)」と言っているときでも、そのBNF上の記号を 指しているということはまず無い。 ここでのもともとの議論も無論、前者の意味で皆「式は〜」と言っていた。
- 141 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:12:58 ]
- >>134の
「 ところで、式と文の関係は言語に関係なく、 式⊂文 」はいいの? またRuby論理?
- 142 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:13:45 ]
- (゚∈゚ )
- 143 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:15:59 ]
- >>132
127じゃないが、良くないよ。 人間の言葉で定義している場合が多いというだけで、 Schemeの7.2節は例外。 Schemeは人間の言葉と、形式的な意味論と両方の定義が存在するな。 後者の方がより厳密かもしれない。
- 144 名前:123 mailto:sage [05/01/21 00:16:58 ]
- >>137
僕もそんな風に考えてたんだけど、どっちも「式」の定義だし、 「普通」は式の定義というと意味論的な意味のことを指すと言われれば 反論できないし、そんな気もしてきた。 >>141 漏れがそうでない言語を定義してあげよう。
- 145 名前:123 mailto:sage [05/01/21 00:18:22 ]
- ×意味論的な意味
○意味論的な定義
- 146 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:19:04 ]
- 形式的意味論で定義していないプログラム言語は
意味関数で定義できないということを意味しているの?
- 147 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:20:41 ]
- 意味関数の定義自体は人間の言葉で定義してるんだから
結局は人間の言葉で定義してることにならん? >>146 意味関数で定義できるけどしてないだけの場合も。
- 148 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:21:10 ]
- >>144
極端なこと言えば、式の構文を定義するのに、式という言葉を使わなくてもいいわけで。 もちろん、わかりにくいからそんなことは普通しないんだけど、例えば、stmtって略したり する時もある。 だから、BNF上の記号はあくまで言葉の(意味の)定義とは別。 構文規則を定義するために便宜上わかりやすい名前をつけた記号に過ぎない。
- 149 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:22:39 ]
- >>147
まあ、間接的には結局そういうことだよ。 数学だってそう言えてしまう。 でも、普通はそういう直接自然言語で定義してないものを 自然言語で定義してるとは言わないわな。
- 150 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:23:43 ]
- Rubyの人が言うように仕様書で自由に決めたとき
意味関数に落とすと矛盾が発生することはないの?
- 151 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:24:41 ]
- >>150
あるに決まってるだろ。その場合はもちろん無効だよ。 そういうバグが無いことを前提にみんな議論してるんだろ。
- 152 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:25:27 ]
- >>150
矛盾が発生しないように意味関数を定義していくんじゃないかな。 ひょっとして意味関数を「日本語->意味」みたいな関数だと思ってる?
- 153 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:26:22 ]
- Schemeの意味関数とRubyを形式意味論を用いて意味関数に落としたものは
互いに矛盾するってことはある?
- 154 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:27:01 ]
- >>153
意味がわからない。矛盾するもなにも、別の言語の別の定義だからなんの関係もない。
- 155 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:27:53 ]
- swissnet.ai.mit.edu/~jaffer/r5rs-formal.pdf
の7.2節の形式の意味関数を念頭においてますよ。
- 156 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:30:16 ]
- >>154
同じ状態機械を想定して 同じ形式の意味関数を用いたらどうです?
- 157 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:30:34 ]
- で?何が聞きたいの?
SchemeとRubyの間の矛盾って?
- 158 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:32:59 ]
- 一方では文は値を持ち、他方では持たないと自由に定義されてると
抽象機械の遷移状態が異なってくることはないですか?
- 159 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:34:43 ]
- 言語が違うんだから、形式(?)なるものが同じだとしても、意味関数や状態遷移機械は
もちろん違うし、全く関係ないんだが。
- 160 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:37:01 ]
- >>159
なんだか見えない相手と戦っているドンキホーテのようだな。がんがれ。
- 161 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:37:24 ]
- すみません、「形式(?)」って具体的にお願いします。
- 162 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:38:43 ]
- >>161
俺が聞きたいよ。 お前が「形式が同じだとどうです?」と言ってるだろ。 察するに、表示的意味論なら表示的意味論、操作的意味論なら操作的意味論で、 似たような記号使うということか?
- 163 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:38:46 ]
- 意味関数の記述形式のことでいいですか?
- 164 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:39:38 ]
- >>163
いいですか?てなんだよ。お前が使ってる言葉だろ。
- 165 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:40:23 ]
- とりあえず、俺に聞く前に意味論の本読んでください。
- 166 名前:137 mailto:sage [05/01/21 00:42:11 ]
- >>140
了解。dクス。 >>139 うーんと、式=加算or減算etcって感じ。 数学的には 式の集合=加算の集合∪減算の集合∪etc みたいな。
- 167 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:44:58 ]
- 言語が違っても処理が同じなら、ターゲットの抽象機械が同じで
同じ意味関数を用いれば、おなじ記述になるはずですが、 文の定義が異なるのなら両者の遷移状態は異なることになりませんか?
- 168 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:49:34 ]
- 同じ記述結果が出来るはずなのに、遷移状態が異なるのは
問題ではないのか?ということだな。
- 169 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:52:16 ]
- 言質を確かめられてるだけで、意味論のことをおまえに
聞いてる訳じゃなさそうだから答えてやれ >>165
- 170 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:54:09 ]
- 文の定義とは勿論「文」の意味論的定義な
- 171 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:54:20 ]
- >>167-168
偶然同じ処理で同じ記述になろうが、別の処理で別の記述になろうが、 別の世界の別の定義同士は何の関係も無いぞ。 あと、表示的意味論と操作的意味論ごっちゃになってるだろ。
- 172 名前:デフォルトの名無しさん mailto:sage [05/01/21 00:57:37 ]
- 同じ抽象機械で同じ目的の処理なら関係ないとホントにいえるのか?
- 173 名前:デフォルトの名無しさん mailto:sage [05/01/21 01:04:53 ]
- ていうか、SchemeとRuby全然違うだろ。
同じ目的の処理とかほとんどありえない。そもそもSchemeに文なんて無いだろ。
- 174 名前:デフォルトの名無しさん mailto:sage [05/01/21 01:06:46 ]
- >>173
ふふん??
- 175 名前:デフォルトの名無しさん mailto:sage [05/01/21 01:10:15 ]
- 仮に、操作的意味論で、同じ抽象機械が対象で同じ目的の処理なら、同じ記述にできるよ。
違う目的なら違う記述になるよ。 で?それが何?
- 176 名前:デフォルトの名無しさん mailto:sage [05/01/21 01:13:17 ]
- gcでlazy sweepについて知りたいんだけど
なにかいい文献ない?
- 177 名前:デフォルトの名無しさん mailto:sage [05/01/21 02:03:20 ]
- くだらない質問なんですが、
構文解析器のことを英語で"parser"と言いますが、 字句解析器は英語で何と言うのでしょうか?
- 178 名前:デフォルトの名無しさん mailto:sage [05/01/21 02:04:36 ]
- >>177
lexer # 数時間でえらい書き込みだと思ったら案の定・・・
- 179 名前:デフォルトの名無しさん mailto:sage [05/01/21 03:03:07 ]
- scannerてのも見るけど
- 180 名前:デフォルトの名無しさん mailto:sage [05/01/21 03:09:37 ]
- スキャナだと意味が広すぎるんでは
知らんけど
- 181 名前:デフォルトの名無しさん [05/01/21 03:47:45 ]
- 死ね。
- 182 名前:デフォルトの名無しさん mailto:sage [05/01/21 03:53:25 ]
- lexというツールもあるくらいだし、lexerですかね。
ありがとうございます。
- 183 名前:デフォルトの名無しさん mailto:sage [05/01/21 03:56:15 ]
- そういえば、Schemeに文はありませんでしたね。
- 184 名前:デフォルトの名無しさん [05/01/21 03:59:22 ]
- う
- 185 名前:デフォルトの名無しさん mailto:sage [05/01/21 04:04:47 ]
- >>176
定番のあの青い本にのってない?
- 186 名前:デフォルトの名無しさん [05/01/21 04:49:21 ]
- ん
- 187 名前:デフォルトの名無しさん [05/01/21 05:02:26 ]
- う
- 188 名前:デフォルトの名無しさん mailto:sage [05/01/21 05:14:58 ]
- なんでもいいから早く誰か俺言語さらせよ
- 189 名前:デフォルトの名無しさん mailto:sage [05/01/21 07:38:01 ]
- 俺言語I(cbt)
[syntax] x ∈ Var n ∈ Nat Exp e ::= n | x | e1 e2 | e(x) [semantics] s ∈ State = Var -> Exp [[e]]s = n iff s |- e => n s |- n => n s |- x => s(x) s |- e1(x) e2 => e1[e2/x] <- capture avoiding substitution s |- e(x) => e(x)
- 190 名前:デフォルトの名無しさん mailto:sage [05/01/21 08:29:37 ]
- ぜんぜん意味わかんないから説明キボン。
∈ってなん?
- 191 名前:デフォルトの名無しさん mailto:sage [05/01/21 08:34:52 ]
- くちばし
- 192 名前:デフォルトの名無しさん mailto:sage [05/01/21 09:18:57 ]
- ちぃ言語
- 193 名前:デフォルトの名無しさん [05/01/21 09:47:11 ]
- >190
数学、集合論の「集合に属する」を表す記号
- 194 名前:デフォルトの名無しさん mailto:sage [05/01/21 09:50:13 ]
- 使い道なさそう
- 195 名前:デフォルトの名無しさん mailto:sage [05/01/21 09:56:53 ]
- なんか前スレにも増して役に立たないスレになってるな
- 196 名前:デフォルトの名無しさん [05/01/21 10:00:30 ]
- 最近中間言語を作るのが流行りらしいな
- 197 名前:デフォルトの名無しさん mailto:sage [05/01/21 10:01:41 ]
- 中間言語なんて大昔からあるけどな
- 198 名前:デフォルトの名無しさん mailto:sage [05/01/21 10:02:26 ]
- VB1から使われてるpcodeも中間コードだしね
- 199 名前:デフォルトの名無しさん [05/01/21 10:05:43 ]
- x86とJavaVMの中間言語は?
- 200 名前:デフォルトの名無しさん mailto:sage [05/01/21 10:06:04 ]
- バイトコード
- 201 名前:デフォルトの名無しさん mailto:sage [05/01/21 10:07:21 ]
- 相変わらずの糞スレぶりだな(wwwwwwwww
- 202 名前:デフォルトの名無しさん [05/01/21 10:11:36 ]
- Rubyyyy!の中間言語は?
- 203 名前:デフォルトの名無しさん mailto:sage [05/01/21 10:19:39 ]
- 無い
- 204 名前:デフォルトの名無しさん mailto:sage [05/01/21 10:22:33 ]
- ただ荒らしたいだけのバカだからそんな長文は読まないよ
- 205 名前:デフォルトの名無しさん mailto:sage [05/01/21 10:48:06 ]
- ψプロセッサーやOSを選ばないユニバーサル・エミュレーター登場か
pc5.2ch.net/test/read.cgi/pcnews/1095309232/
- 206 名前:デフォルトの名無しさん [05/01/21 22:07:59 ]
- expression を 式 ではなく、「値」とか「表現」と読んでしまったらいいんでない?
statement は(値のある文なんて無いから)文のままでもいいよな。
- 207 名前:デフォルトの名無しさん mailto:sage [05/01/21 22:08:32 ]
- 代入文
- 208 名前:デフォルトの名無しさん mailto:sage [05/01/21 22:19:29 ]
- >>206
「詭弁のガイドライン」より。 ・自分に有利な将来像を予想する ・主観で決め付ける ・ありえない解決策を図る 今のあなたはこの辺が該当します。 予想しうる今後の展開は、 ・レッテル貼りをする ・勝利宣言をする ・知能障害を起こす 辺りです。
- 209 名前:デフォルトの名無しさん mailto:sage [05/01/21 22:21:07 ]
- それにしても詭弁認定厨はうざかったな。
詭弁でもなんでもないものを、詭弁のガイドラインに 無理矢理あてはめようとしてるところが笑えた。
- 210 名前:デフォルトの名無しさん mailto:トチキイ [05/01/21 23:15:13 ]
- ハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハ
- 211 名前:デフォルトの名無しさん mailto:さげ [05/01/21 23:28:31 ]
- 保守になってねーんだよ!!!!!!!
- 212 名前:デフォルトの名無しさん [05/01/22 10:24:34 ]
- 式は y=3 のようなものが式。
y とか 3 とかを式と呼ぶのは、確かにおかしい罠
- 213 名前:デフォルトの名無しさん mailto:sage [05/01/22 10:47:09 ]
- >>212
if(y) などよく使うがな
- 214 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:12:48 ]
- C言語で言えばセミコロンがあれば文、なければ式です。
- 215 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:19:06 ]
- y = 3;
↑ 文 0; ↑ 文
- 216 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:20:37 ]
- yや3は式の構成要素の1つ
これらの構成要素と演算子を組み合わせたものが式 文というのは必ず特定のキーワードや記号が必要だと考えたら? C言語 複文なら { ... } if文なら if ( 式 ) ... 式文なら 式 ; // 式の後にセミコロン ぬる文なら ; //セミコロンだけ Ruby 知らん RubyのBNFみたいなのある?
- 217 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:23:07 ]
- てかなんで知らないのにRubyが出てくるの?
- 218 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:24:13 ]
- www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=%B5%BF%BB%F7BNF%A4%CB%A4%E8%A4%EBRuby%A4%CE%CA%B8%CB%A1
- 219 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:25:25 ]
- >>218
無茶苦茶だな 不完全だし 信者が混乱するのもよくわかる
- 220 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:26:56 ]
- と、とりあえずBNFすら読めないけど書いてみた煽り屋
- 221 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:28:43 ]
- 演算子の優先順位もそれじゃわかんないね。
- 222 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:29:25 ]
- よく釣れます
- 223 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:31:11 ]
- *1このBNFはまだ完全に1.6対応していません。執筆者募集
古すぎ
- 224 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:31:55 ]
- >より詳しくは parse.y を参照してください
結局これが悪いんだよ。 平たく言えばソース読めってこと。 Ruby理解するにはC言語とyaccの知識が必要だとさ。
- 225 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:33:13 ]
- ↑藻前池沼以下だな。bison定義ファイルなんてそのまんまEBNFなのに
- 226 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:34:04 ]
- てかbisonも使えないのになんでこのスレにいるのかな
- 227 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:35:34 ]
- 煽り屋だからさ
- 228 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:37:36 ]
- よく釣れますね
- 229 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:39:07 ]
- それは釣りなのか?
このスレと直接関係ないんだけどさ、俺「釣り」とか「釣り師」っていうのは、 釣り師→ ○ /|←竿 ト/ | │. ~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 八 §←餌(疑似餌) >゚++< の組み合わせだと思ってたんだけど、 最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか 言ってるの多いよね。 これは、どっちかというと、 ..釣れたよ〜・・・│ ────y──┘ ・゚・。 ○ノノ。・゚・ ~~~~~~~~~~│~~~~~~~~~~~~~~~ ト>゚++< ミ パクッ ジタバタ ハ ノ ノ かと思うんだけど、どうだろう?
- 230 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:41:48 ]
- >>221
perse.y見てもわかんないですよ。 >>223 同期取れよってことですね。 あんな古いのなら置かないほうがいい。 >>225 あい、C言語の知識は必要ですね。 知っててもコード混ざってて読みにくい。 少しでも常識があればこれ見て文法わかれとはいえませんね。
- 231 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:43:27 ]
- ↑コードなんて書かれる場所決まってるんだから
正規表現置き換えかflexでも使って機械的に除けるだろ池沼
- 232 名前:デフォルトの名無しさん mailto:sage [05/01/22 11:44:53 ]
- じゃあこの機会を利用してRubyの文法誰かまとめて
|

|