「コンパイラ・スクリ ..
[2ch|▼Menu]
19:デフォルトの名無しさん
05/01/19 23:45:01
後これも。

URLリンク(compilers.iecc.com)

ニュースグループcomp.compilersの記事がアーカイブされている。
今年で20周年らしい。fjは死亡同然だが、こちらは元気だね。

20:デフォルトの名無しさん
05/01/19 23:54:45
>>17
CISCでのレジスタ割付けに関しては、最近だと
Andrew W. Appel, Lal George, Optimal Spilling for CISC Machines with Few Registers, PLDI, 2000.
がある(URLリンク(citeseer.ist.psu.edu))。

けど、結局ぐちゃぐちゃになるのは仕方ない気もする。

21:デフォルトの名無しさん
05/01/20 02:18:41
うんこw

22:デフォルトの名無しさん
05/01/20 02:33:00
・知能障害を起こす

23:デフォルトの名無しさん
05/01/20 02:34:40
うんこage

24:デフォルトの名無しさん
05/01/20 03:04:49


25:デフォルトの名無しさん
05/01/20 05:25:02
ん?

26:デフォルトの名無しさん
05/01/20 05:32:43


27:デフォルトの名無しさん
05/01/20 06:09:51


28:デフォルトの名無しさん
05/01/20 06:11:09
俺は今起きたとこだが
君らは何時寝るんだい?

29:デフォルトの名無しさん
05/01/20 06:13:52
今から ノツ

30:デフォルトの名無しさん
05/01/20 06:15:14


31:デフォルトの名無しさん
05/01/20 07:19:01


32:デフォルトの名無しさん
05/01/20 07:29:21
レジスタ割付ならRamseyの
A Generalized Algorithm for Graph-Coloring Register Allocation(PLDI)
も面白そう。
確かλRTLとかいう、gcc風のRTLとλ式をあわせたような中間語を設計してた人だね。

33:デフォルトの名無しさん
05/01/20 08:08:55
死ねよ

34:デフォルトの名無しさん
05/01/20 08:11:53


35:デフォルトの名無しさん
05/01/20 08:51:25
>>19
これ面白いですね。出勤前なのに読み耽ってしまいました。
日本語版があるといいのに。

36:デフォルトの名無しさん
05/01/20 08:56:54
いま地震があった!

37:デフォルトの名無しさん
05/01/20 09:01:58


38:デフォルトの名無しさん
05/01/20 09:20:47
国産のコンパイラ共通インフラストラクチャCOINS

URLリンク(www.coins-project.org)

39:デフォルトの名無しさん
05/01/20 09:33:16
貼るならもっと使えるサイト貼れよな…

40:デフォルトの名無しさん
05/01/20 09:37:14
>>39
ならお前が張れ、詭弁厨の荒らしが。

41:デフォルトの名無しさん
05/01/20 10:05:07
結局あの詭弁コピペの人って2ch初心者だったのかな?

42:デフォルトの名無しさん
05/01/20 10:06:52
それにしても詭弁認定厨はうざかったな。
詭弁でもなんでもないものを、詭弁のガイドラインに
無理矢理あてはめようとしてるところが笑えた。

43:デフォルトの名無しさん
05/01/20 10:07:34
GCの気持ちがよく分かる。
せっかくsweepしても、どんどん(ry

44:デフォルトの名無しさん
05/01/20 10:10:49
>>41-42
スルーできない初心者ウザ

45:デフォルトの名無しさん
05/01/20 10:14:16
荒らしと同一人物だったとは思えん。

46:デフォルトの名無しさん
05/01/20 10:31:15
今前スレ見てきたが、なるほど、デビューしたての純粋クンが来てたのかよ。

47:デフォルトの名無しさん
05/01/20 10:39:21
オレの推理では前スレ955が
956が自分へのレスだと思い込んだ。
(時間と文脈からみてたぶん954へのレス)
その後964を無視られ、968で煽られ、971あたりから暴走開始。
41-42も前スレ955。
どう呼ぼうと作者の勝手の人とは別人。

48:デフォルトの名無しさん
05/01/20 10:47:14
どうやら図星された詭弁厨の自己弁護が始まったみたいね。

49:デフォルトの名無しさん
05/01/20 10:50:36
まだやるのかよ、ウザ

50:デフォルトの名無しさん
05/01/20 10:54:21
そこまで詭弁荒らしを擁護する47っていったい…

51:デフォルトの名無しさん
05/01/20 11:05:19
普通、赤の他人は時間とか詳しく見ねーだろ。興味ねーし。
47=前スレ荒らしの当事者。

52:デフォルトの名無しさん
05/01/20 11:44:02
うんこ

53:デフォルトの名無しさん
05/01/20 11:52:49
詭弁厨の人が焦点をうんこ厨に移すためにガンガリ始めた様子です。

54:デフォルトの名無しさん
05/01/20 11:54:34
もういらないと思うので削除依頼を出してきた。

55:デフォルトの名無しさん
05/01/20 12:00:32
↑詭弁荒らしの傍若無人振りって、正直凄まじいと思う。。。

56:デフォルトの名無しさん
05/01/20 12:43:56
まあ、詭弁荒らしとか興味ないけど、作者の勝手という言い分は
正しいな。詭弁ではなく。それだけは確か。

57:デフォルトの名無しさん
05/01/20 12:51:10
ウルフが心と身体・メンタルヘルス板から帰ってこられた御様子です。

58:デフォルトの名無しさん
05/01/20 13:20:28
>>57
Rubyでは文が値を持ちますが、それについてどう思われますか?
Rubyの作者は詭弁でしょうか?

59:デフォルトの名無しさん
05/01/20 13:24:17
こうして新スレは
詭弁厨とうんこ厨と
放置できない厨に占拠されました。
おわり。

60:デフォルトの名無しさん
05/01/20 13:58:33
死ね。

61:デフォルトの名無しさん
05/01/20 14:08:27


62:デフォルトの名無しさん
05/01/20 14:27:44
Rubyにはif式とかif文とかある。
   ↓
総てのプログラム言語で、「式」とか「文」とか他の言葉とかも
意味は作者が主観で勝手に定義していい。
   ↓
ゆえに俺は詭弁荒らしでないし、
俺が昔作って人に使わせた糞言語もうんこじゃない。

( c´,_ゝ`) .。oO(モイチド心と身体・メンタルヘルス板逝ッテコイ クスクス

63:デフォルトの名無しさん
05/01/20 14:40:58
荒らし方は変わっても、やっぱり中身はRuby厨ですか…。

64:デフォルトの名無しさん
05/01/20 14:47:29
>>62
反論があるなら煽りではなく論理的にどうぞ。
それから、議論とは関係ないが、「昔言語作ってた人」は別人。

>>63
文が値を持つのは、Rubyだけではない、Ioだと、文は式の一種で、全ての文は値を持つ。
探せば、文が値を持つ場合がある言語って結構あるんじゃないかな。

それと、値を持とうが持つまいが、仕様で何を文と呼ぶのか
決めているというのはいろんな言語に共通のことだね。

65:デフォルトの名無しさん
05/01/20 15:15:09
evalがあれば何でも式にはなるな。
あと言葉の定義だが、プログラミング言語は言語、つまり言葉だから文もあれば文法エラーもあるってだけで、
「文」という言葉には、数学的に深い意味はあんまないような気もするし。
どっちにしろ言語のことは言語学者の領分だな、字面の「言語」を尊重すれば。

66:デフォルトの名無しさん
05/01/20 15:16:44
>>64
なにか美味しいものでも食べて落ち着け。
トートロジー、意味の無い言葉、主観に基づく言葉に対して反論することは
それ自体ナンセンスだし、暇つぶしとしても漏れはお勧めできない。

67:デフォルトの名無しさん
05/01/20 15:22:41
>>66
主観ではない。
多くの言語で、仕様で何を文と呼ぶか決定している。
これは客観的事実。

68:デフォルトの名無しさん
05/01/20 15:27:47
COBOLはもろ言語学者が作った言語だよな。
昔のCOBOLは足し算でさえ英語の文法そのままにADDだしよ。
APLはその対極。

69:デフォルトの名無しさん
05/01/20 15:31:55
>>65
式や、文という言葉に対しては、仕様で数学のようにきっちり定義
されてることが多いよ。
こういう、厳密な定義をする場合って、学問の世界では
当たり前のことなんだけど、既分野によって定義が違うなんてよくあることだな。
同じように、言語によって用語の意味が違う。まさかこのことを
わからない奴がいるなんて思わなかったよ。

70:デフォルトの名無しさん
05/01/20 15:33:14
プログラムがそのままドキュメントになるというのかコンセプトだったね >COBOL
最近はどれも似たり寄ったりな言語ばかりで、コンセプトのしっかりした言語が少ないな。

71:デフォルトの名無しさん
05/01/20 16:17:57
>>67
漏れは64を主観だっていってるんじゃないよ。「・・・には反論しても無意味だから落ち着け」って言っただけ。
人の言動がなんでも自分への攻撃に見えてしまうっていうのは、何らかのストレス状態だと思うよ。

72:デフォルトの名無しさん
05/01/20 17:15:27
何でも攻撃に見えてる分けじゃなく君が文脈を考慮しなかったため
誤解されただけのこと
わかりやすい日本語を心がけよう

73:デフォルトの名無しさん
05/01/20 19:02:39
>>67
「多くの言語で、仕様で何を文と呼ぶか決定している。
 これは客観的事実。」

とあるが、その多くの言語の仕様は数学的な基盤に沿って
設計されているのが「客観的事実」では? その意味で
仕様書は用語の意味を勝手に改竄できる魔法の書ではないよ。

それにあなたが理論的基盤にしているRubyの仕様ってのは
実際テキトーかも…と言ったら、また暴れだすかなぁ? ドキドキ

まぁ、大好きなRubyの投影から計算理論(?)を構築するのは
人様の自由だけど…。その出発点は「客観」ではないですね。

74:デフォルトの名無しさん
05/01/20 19:24:06
>>67
スルーすればいいからな。
いやスルーしてくれ、頼む。

75:デフォルトの名無しさん
05/01/20 19:24:37
>>73
Ruby狂信者に何言っても無駄だからヤメレ。

ここまでの展開で物事の正誤が奴の眼中にないの、分かるだろう?
詭弁でもなんでもいいからRubyにまつわるすべては正しくないと希ガスマンのだ。
コワイネ

76:デフォルトの名無しさん
05/01/20 19:34:31
スレ住人がココロ一つに爆発物処理班の気分で以下ドウゾ

77:デフォルトの名無しさん
05/01/20 19:37:33
だからあ
Rubyのリファレンスを全部修正すれば解決するだろ
誰かMLで言ってこいよ

「ここで使う用語はRuby信者(キチガイ含む)が勝手に定義したもので
世間一般のそれとは全く異なる場合があります。」

とでも補足しとけ、と

つーかここ見てるよな?>いつも修正してる人


78:デフォルトの名無しさん
05/01/20 19:45:13
仕様書は用語の意味を勝手に改竄できる魔法の書ですが何か?

79:デフォルトの名無しさん
05/01/20 19:45:25
爆弾バッファリング中・・・

80:デフォルトの名無しさん
05/01/20 19:46:59
つうか、Rubyは文が値を持つ一例としてあげただけで、
Ruby信者でもなんでもないしな。
まあ、だんだん本物の馬鹿で納得させることは無理だって
事はわかったからまともに議論する気はなくなってきた。

81:デフォルトの名無しさん
05/01/20 19:55:17
仕様書に、「文とは〜を指します。」と書いてあったら、
その言語においては文はそういう意味になる。
何でこんな当たり前の常識もわからないんだろうか?

82:デフォルトの名無しさん
05/01/20 19:58:33
まあ文や式の完全に一般的な定義は存在しないし、ここで決めるのも難しいだろうな。

式は値を持つことが多い。
文は値を持たないことが多い。
正確な定義は言語によって異なる。

としか言えんでしょ。
前スレでdenotational semanticsから明らかと言ってた人は何か勘違いしてるとしか
思えない。

83:デフォルトの名無しさん
05/01/20 20:37:46
>>82 でファイナルアンサー。

そもそも文や式の「定義」は、大抵の言語では文法の上で定義するよね (厳密には BNF とか) 。
意味 (値を返すとか返さないとか) から「説明」することはできるけど、
それは「定義」じゃないし。
# もちろん「文とは値を返さないものです」とか定義されてる謎な仕様の言語を除く

今調べたところ、仕様書じゃないけど Ruby のチュートリアルによると
> Rubyでは任意の式をセミコロン(;)または改行で区切った並びを文とします.
らしい。なので Ruby の式は文でもあるということらしい。

メジャーな言語しか知らない香具師は
世の中には Ruby に限らずいろんな言語があるということを
肝に銘じておいてくださーい。
# とかいうと「Ruby はメジャーだ」って怒られるかな。

84:デフォルトの名無しさん
05/01/20 20:55:20
「文脈自由文法」の名前の意味がよくわかりません。
「文脈」とは何を意味しているんでしょう。
それから「自由」は「文脈に対して自由」?「文脈から自由」?「文脈が自由」?
おせーて。

85:デフォルトの名無しさん
05/01/20 21:04:29
>>84
英語は "Context-free grammar" 。
つまり「文脈がない」ってこと。

といっても、どこに何を書いてもいいということではなく、例えば
「整数が式であるならば、式を書いてもいいところには例外なく整数を書いてもいい」
って感じ。

86:デフォルトの名無しさん
05/01/20 21:23:05
【問】
文(Statement)と式(Expression)の違いは何ですか?
2つの違いは言語に依存しますか?

【答】
なにを式と呼ぼうが、なにを文と呼ぼうが作者の勝手。
言語に依存する。

87:デフォルトの名無しさん
05/01/20 21:26:43
凄いスレ発見

88:デフォルトの名無しさん
05/01/20 21:27:42
>>85
duty freeとかと同じだね。
関係ないが、よくwebページにある「リンクフリー」宣言は、「リンクはないよ」と言ってる
ことになるのだろうか。


89:デフォルトの名無しさん
05/01/20 21:29:29
>>88
英語だとそうなるね。まあ和製英語だし。

90:デフォルトの名無しさん
05/01/20 21:30:41
>>85
「isは動詞だけど、主語が三人称単数のときしか使えない」(特定の文脈でしか使えない)
って文法はcontext-freeじゃないってことか。

>>87
頼むからほっといて(´・ω・`)

91:デフォルトの名無しさん
05/01/20 21:38:06
Cの文はCの規格が主張する文。
Cの式はCの規格が主張する式。
Cの関数はCの規格が主張する関数。
数学用語は借り物だし、日本語訳の言葉の定義は規格による。
これが現実だな。

92:デフォルトの名無しさん
05/01/20 21:38:45
>>82はともかくとして、>>83は何か話がずれてる。

93:デフォルトの名無しさん
05/01/20 21:40:29
>>86>>91が結局正しい答えだな。

94:デフォルトの名無しさん
05/01/20 21:44:13
>>83
話がずれてるが、ちょっと突っ込むと、BNFで定義してるのは、構文規則であって
意味じゃない。
意味を定義するには普通は人間の言葉を使う(意味論などを使うこともある)。

95:デフォルトの名無しさん
05/01/20 21:45:50
Ruby厨だからどうしても斜めにずれるの >>92

96:デフォルトの名無しさん
05/01/20 21:48:21
>>86>>87の煽りだろ・・イイのか(w?

97:デフォルトの名無しさん
05/01/20 21:53:57
意味を定義するには普通は人間の言葉を使う

自然言語の話かよ

98:デフォルトの名無しさん
05/01/20 21:54:50
文や式は一段落がついたので、次は関数の定義でお願いします。

99:デフォルトの名無しさん
05/01/20 21:55:41
>>96
はぁ?

100:デフォルトの名無しさん
05/01/20 21:56:06
>>91
なるほど、関数も考えるとその通りだね。(数学or一般的な関数とは明らかに
意味が違う。)


101:デフォルトの名無しさん
05/01/20 21:56:41
式=Expression は和声英語?


102:デフォルトの名無しさん
05/01/20 21:59:48
>>98
関数=プログラム

103:デフォルトの名無しさん
05/01/20 22:01:22
お前らのスレでは情報数学の用語は借り物でイイのか(w?

カッコいい言語出来そうだな。最高はやっぱRubyか?

104:デフォルトの名無しさん
05/01/20 22:02:41
関数fとは、定義域dom(f)と値域cod(f)の間の関係であって、

∀x ∈ dom(f). ∀y, z ∈ cod(f). f x = y ∧ f x = z ⇒ y = z

を満たすものを言う。

105:デフォルトの名無しさん
05/01/20 22:07:43
void function(void)

106:デフォルトの名無しさん
05/01/20 22:08:22
>>86は凄スレアンカーのつもりだったんだが・・イイヨイイヨ〜

107:デフォルトの名無しさん
05/01/20 22:11:49
>104と>105は別に矛盾しないな。

108:デフォルトの名無しさん
05/01/20 22:14:46
そしてmonadやstate transformerの話になるか。

109:デフォルトの名無しさん
05/01/20 22:24:20
Cの関数は最強。
だって数学厨でもCには文句つけない。

110:デフォルトの名無しさん
05/01/20 22:25:29
アッタマワルソーなスレ

、と思ったら実は中身はRubyスレか。

                     ,riTl|l.il|..ll..|ll.i..lli、
                     ril l!|.|l|.l||!.l|.|l|lil.l|l|l
                     ||l!i!|州l|l|ll||lllミillll|l|
                    !|||ラ''' '´!|ll||l!lソ|||l||                         こ
                      `t'_,,,ヽ   i´l州                     の
                       ゙iー ''  /i',ノ'゙入                   荒 ス
                       `ー'、´ /,r'´ ,>、                れ レ
                         ,イy' /  /,r ヽ,                見 て
                       ,r'// /  /,i' '  i ゙、              え い
                         /,/li,/ ,/,i',i' ,r ,r7' ヽ,i.           奥 る る
                      〃,//l/ .// ,' /'´ /   ハ.         が が. よ
                    /,' / l./  ,i'i l//  /   / l          深     う
                   / ,i ,i ,!/  ,i' l // ,/   ,/  l.         い 案. に
                  ,/ l l i l./  !i .l / _,/  /   l!         . ・ .外
                 ,r'=‐、_ll_!j'_,_、-‐、‐'   __,,.     !l.       . ・
                /ノ /´/ ``ヽ、 `  ``''''"´      ,! l          ・
               /´ ,/-/     ``  ``ヽ、、___,,   i  l
                / ,.イl /       ,.r‐ ``ヽ、,__    ,! ./!l
             /  jly'     - '´           i i !.|

111:デフォルトの名無しさん
05/01/20 22:27:08
値はvoidだし…

112:デフォルトの名無しさん
05/01/20 22:29:54
わざわざvoid用意するってことは…そういうことだな。

113:デフォルトの名無しさん
05/01/20 22:37:39
void関数だけ使う数学に厳しい数学厨。
文法エラーのような気もするが。

114:デフォルトの名無しさん
05/01/20 22:39:37
プログラムの実行過程に応じて関数の解釈が変化すると考えれば、値の一意性は
保たれるな。evolving algebraなんてのもあったっけ。

115:83
05/01/20 22:39:52
>>94
そう言ったつもりなんだけど……。

116:デフォルトの名無しさん
05/01/20 22:40:56
【結論】
日本人はコンパイラ・スクリプトエンジンを開発するには向いてない。

117:デフォルトの名無しさん
05/01/20 22:42:14
bison++2.0マダー?

118:デフォルトの名無しさん
05/01/20 22:43:29
Kripke構造を用いたpossible worlds semanticsとかもあるな。
60年代も今も余り苦労は変わらない。

119:デフォルトの名無しさん
05/01/20 22:47:48
>>115
だから、、普通、プログラミング言語の用語の意味は人間の言葉で「定義」してる。
これが間違い。↓

>そもそも文や式の「定義」は、大抵の言語では文法の上で定義するよね (厳密には BNF とか) 。
>意味 (値を返すとか返さないとか) から「説明」することはできるけど、
>それは「定義」じゃないし。

120:デフォルトの名無しさん
05/01/20 22:52:29
>>109
そりゃ、数学の関数とCの関数は別物なんだから当たり前。
分野によって言葉の定義が違うのが当たり前。
言語によっても定義が違うのが当たり前。

121:デフォルトの名無しさん
05/01/20 22:56:22
>>119
あ、ひょっとして

BNF exp ::= digit+ | exp + exp | exp - exp | ...

ではなくて

「『式』とは上の exp のことである」

この日本語が「定義」だ、って言ってる?
それとも、用語は普通こんな日本語では定義しない、って言ってるのかな。

122:デフォルトの名無しさん
05/01/20 23:00:02
>>121
>BNF exp ::= digit+ | exp + exp | exp - exp | ...

これは一応定義の一部と解釈できるかもしれないが、どちらにせよ、
「構文規則」を定義してるだけ。
意味を完全に定義してるわけじゃない。

用語の意味を定義するには、「これはここを繰り返す」「これは値を返す」
「この値がtrueの時にここを実行」等、人間の言葉で定義するのが普通。
Cもそう。

123:デフォルトの名無しさん
05/01/20 23:05:42
>>122
えーと。
だから「式と文の違いを意味で説明することはできるかもしれないが、
それは別に式と文それぞれの定義ではない」とゆーたんですよ。

124:デフォルトの名無しさん
05/01/20 23:08:36
>>121ではないが、>>122の想定してる定義は
URLリンク(swissnet.ai.mit.edu)
の7.2節みたいな内容か?
まあすべての言語がalgolやsmlやschemeみたいな意味定義は持ってないわな。

125:123
05/01/20 23:12:34
あー!わかった。
漏れ「式とはこういう構文のことだ。そのように定義される式はこういう意味をもつ(これは式の定義ではなく式の意味の定義、のつもり)」
>122「式とはこういう構文であり、かつこういう意味をもつものだ」
とそれぞれ主張していたのか。多分。
この辺は趣味じゃないかなー。

126:デフォルトの名無しさん
05/01/20 23:17:12
>>123 >>125
あのね、

>そもそも文や式の「定義」は、大抵の言語では文法の上で定義するよね (厳密には BNF とか) 。
>漏れ「式とはこういう構文のことだ。そのように定義される式はこういう意味をもつ(これは式の定義ではなく式の意味の定義、のつもり)」

これがとりあえず間違いなのね。文や式の定義って言う時は、普通、「意味」の定義のこと、あるいは、意味を含んだ定義を
言ってるわけで、文法上では定義されないの。

>意味 (値を返すとか返さないとか) から「説明」することはできるけど、
>それは「定義」じゃないし。

この「それ」は「違いを意味で説明すること」だったわけね・・・・
それはこちらが誤解してました。スマソ。
俺が定義だといってるのは、「値を返す」とかの説明がまさに意味の
定義だから。定義と言ってたわけ。

>>124
そうだよ。そういうふうに意味論で定義するか、もしくは自然言語で定義するわけだけど、
これは文法とは別物。

127:デフォルトの名無しさん
05/01/20 23:23:28
>>124
しかしそれも今となっては古めかしいな。
言語に並行性を取り込もうとすると全面書き直しになりそうだ。

128:デフォルトの名無しさん
05/01/20 23:25:43
激論のとこ今更で悪いが、そもそもCの式は厳密には、値を”返さない”ぞ
operatorや関数が値を返すだけでなw

式は値を返すが、文は値を返さないとか言ってる奴はCでも間違いだぞw


129:123
05/01/20 23:31:17
>>126
うーん、考え直すとやっぱ
>122「式とはこういう構文であり、かつこういう意味をもつものだ」
の方が自然ですね。ごめん。

>>128
今度は「返す」「返さない」の意味定義の話?

130:デフォルトの名無しさん
05/01/20 23:32:35
どうせ例をあげるならvoid型関数の呼び出し式にでもすればよかったのに。

131:デフォルトの名無しさん
05/01/20 23:45:26
値を持つ・値が定まる

132:デフォルトの名無しさん
05/01/20 23:53:46
>>127
7.2節は意味関数で定義されてるが
それは人間の言葉で定義してるということでいいのか?

133:デフォルトの名無しさん
05/01/20 23:56:42
Ruby厨の脳内仕様では値を持つも値を返すも同じ

134:デフォルトの名無しさん
05/01/21 00:00:49
>>128
そうなのか?orz

ところで、式と文の関係は言語に関係なく、

式⊂文

でいいんだよなぁ?
これに反する言語ってある?


135:デフォルトの名無しさん
05/01/21 00:00:58
void がイカンのは
( void ∈ dom(f) ) = false ∧ ( void ∈ ∈ cod(f) ) = false
が常に成立するからだとおもふ


136:デフォルトの名無しさん
05/01/21 00:01:44
あっ、∈が一個多すぎた、まあ気にするな。

137:デフォルトの名無しさん
05/01/21 00:05:20
>>126
煽りじゃなくて単に見解を聞きたいんだけど、

式のセマンティクスを定義するのに式という言葉を使いたくて
式という言葉をとりあえずBNFとかで定義しておいて、
「式は値を持つ」とかいう形でセマンティクス上の意味を付加していくことがある
(特に数学的にセマンティクスを定義したい場合)。
こういう場合、「式という言葉(の意味)」はBNFで定義され
「式の(セマンティクス上の)意味」は日本語とかで定義される、
といったことになると思うんだけど、どう?

138:デフォルトの名無しさん
05/01/21 00:08:08
こんだけ暴れて何も学んでないんだなぁ。

139:デフォルトの名無しさん
05/01/21 00:10:12
「式という言葉(の意味)」はBNFで定義され

「式という言葉(の字面・パターン)」はBNFで定義され
じゃない?


140:デフォルトの名無しさん
05/01/21 00:11:38
>>137
俺の見解としては、それは普通に間違い。
「式の意味」という言葉を人間が使う時、普通は「式の(セマンティクス上の)意味」を指すから。
あくまで、BNFで使っている名前は、構文規則を定義するための記号にすぎず、
人間が「式という言葉(の意味)」と言っているときでも、そのBNF上の記号を
指しているということはまず無い。
ここでのもともとの議論も無論、前者の意味で皆「式は〜」と言っていた。


141:デフォルトの名無しさん
05/01/21 00:12:58
>>134
「 ところで、式と文の関係は言語に関係なく、

  式⊂文
」はいいの? またRuby論理?

142:デフォルトの名無しさん
05/01/21 00:13:45
(゚∈゚ )

143:デフォルトの名無しさん
05/01/21 00:15:59
>>132
127じゃないが、良くないよ。
人間の言葉で定義している場合が多いというだけで、
Schemeの7.2節は例外。
Schemeは人間の言葉と、形式的な意味論と両方の定義が存在するな。
後者の方がより厳密かもしれない。

144:123
05/01/21 00:16:58
>>137
僕もそんな風に考えてたんだけど、どっちも「式」の定義だし、
「普通」は式の定義というと意味論的な意味のことを指すと言われれば
反論できないし、そんな気もしてきた。

>>141
漏れがそうでない言語を定義してあげよう。

145:123
05/01/21 00:18:22
×意味論的な意味
○意味論的な定義

146:デフォルトの名無しさん
05/01/21 00:19:04
形式的意味論で定義していないプログラム言語は
意味関数で定義できないということを意味しているの?

147:デフォルトの名無しさん
05/01/21 00:20:41
意味関数の定義自体は人間の言葉で定義してるんだから
結局は人間の言葉で定義してることにならん?

>>146
意味関数で定義できるけどしてないだけの場合も。

148:デフォルトの名無しさん
05/01/21 00:21:10
>>144
極端なこと言えば、式の構文を定義するのに、式という言葉を使わなくてもいいわけで。
もちろん、わかりにくいからそんなことは普通しないんだけど、例えば、stmtって略したり
する時もある。
だから、BNF上の記号はあくまで言葉の(意味の)定義とは別。
構文規則を定義するために便宜上わかりやすい名前をつけた記号に過ぎない。

149:デフォルトの名無しさん
05/01/21 00:22:39
>>147
まあ、間接的には結局そういうことだよ。
数学だってそう言えてしまう。
でも、普通はそういう直接自然言語で定義してないものを
自然言語で定義してるとは言わないわな。

150:デフォルトの名無しさん
05/01/21 00:23:43
Rubyの人が言うように仕様書で自由に決めたとき
意味関数に落とすと矛盾が発生することはないの?

151:デフォルトの名無しさん
05/01/21 00:24:41
>>150
あるに決まってるだろ。その場合はもちろん無効だよ。
そういうバグが無いことを前提にみんな議論してるんだろ。

152:デフォルトの名無しさん
05/01/21 00:25:27
>>150
矛盾が発生しないように意味関数を定義していくんじゃないかな。
ひょっとして意味関数を「日本語->意味」みたいな関数だと思ってる?

153:デフォルトの名無しさん
05/01/21 00:26:22
Schemeの意味関数とRubyを形式意味論を用いて意味関数に落としたものは
互いに矛盾するってことはある?

154:デフォルトの名無しさん
05/01/21 00:27:01
>>153
意味がわからない。矛盾するもなにも、別の言語の別の定義だからなんの関係もない。

155:デフォルトの名無しさん
05/01/21 00:27:53
URLリンク(swissnet.ai.mit.edu)
の7.2節の形式の意味関数を念頭においてますよ。

156:デフォルトの名無しさん
05/01/21 00:30:16
>>154
同じ状態機械を想定して
同じ形式の意味関数を用いたらどうです?


157:デフォルトの名無しさん
05/01/21 00:30:34
で?何が聞きたいの?
SchemeとRubyの間の矛盾って?

158:デフォルトの名無しさん
05/01/21 00:32:59
一方では文は値を持ち、他方では持たないと自由に定義されてると
抽象機械の遷移状態が異なってくることはないですか?

159:デフォルトの名無しさん
05/01/21 00:34:43
言語が違うんだから、形式(?)なるものが同じだとしても、意味関数や状態遷移機械は
もちろん違うし、全く関係ないんだが。

160:デフォルトの名無しさん
05/01/21 00:37:01
>>159
なんだか見えない相手と戦っているドンキホーテのようだな。がんがれ。

161:デフォルトの名無しさん
05/01/21 00:37:24
すみません、「形式(?)」って具体的にお願いします。

162:デフォルトの名無しさん
05/01/21 00:38:43
>>161
俺が聞きたいよ。
お前が「形式が同じだとどうです?」と言ってるだろ。
察するに、表示的意味論なら表示的意味論、操作的意味論なら操作的意味論で、
似たような記号使うということか?

163:デフォルトの名無しさん
05/01/21 00:38:46
意味関数の記述形式のことでいいですか?

164:デフォルトの名無しさん
05/01/21 00:39:38
>>163
いいですか?てなんだよ。お前が使ってる言葉だろ。

165:デフォルトの名無しさん
05/01/21 00:40:23
とりあえず、俺に聞く前に意味論の本読んでください。

166:137
05/01/21 00:42:11
>>140
了解。dクス。
>>139
うーんと、式=加算or減算etcって感じ。
数学的には
式の集合=加算の集合∪減算の集合∪etc
みたいな。

167:デフォルトの名無しさん
05/01/21 00:44:58
言語が違っても処理が同じなら、ターゲットの抽象機械が同じで
同じ意味関数を用いれば、おなじ記述になるはずですが、
文の定義が異なるのなら両者の遷移状態は異なることになりませんか?





168:デフォルトの名無しさん
05/01/21 00:49:34
同じ記述結果が出来るはずなのに、遷移状態が異なるのは
問題ではないのか?ということだな。

169:デフォルトの名無しさん
05/01/21 00:52:16
言質を確かめられてるだけで、意味論のことをおまえに
聞いてる訳じゃなさそうだから答えてやれ >>165

170:デフォルトの名無しさん
05/01/21 00:54:09
文の定義とは勿論「文」の意味論的定義な

171:デフォルトの名無しさん
05/01/21 00:54:20
>>167-168
偶然同じ処理で同じ記述になろうが、別の処理で別の記述になろうが、
別の世界の別の定義同士は何の関係も無いぞ。

あと、表示的意味論と操作的意味論ごっちゃになってるだろ。

172:デフォルトの名無しさん
05/01/21 00:57:37
同じ抽象機械で同じ目的の処理なら関係ないとホントにいえるのか?

173:デフォルトの名無しさん
05/01/21 01:04:53
ていうか、SchemeとRuby全然違うだろ。
同じ目的の処理とかほとんどありえない。そもそもSchemeに文なんて無いだろ。

174:デフォルトの名無しさん
05/01/21 01:06:46
>>173
ふふん??

175:デフォルトの名無しさん
05/01/21 01:10:15
仮に、操作的意味論で、同じ抽象機械が対象で同じ目的の処理なら、同じ記述にできるよ。
違う目的なら違う記述になるよ。
で?それが何?

176:デフォルトの名無しさん
05/01/21 01:13:17
gcでlazy sweepについて知りたいんだけど
なにかいい文献ない?


177:デフォルトの名無しさん
05/01/21 02:03:20
くだらない質問なんですが、
構文解析器のことを英語で"parser"と言いますが、
字句解析器は英語で何と言うのでしょうか?

178:デフォルトの名無しさん
05/01/21 02:04:36
>>177
lexer

# 数時間でえらい書き込みだと思ったら案の定・・・

179:デフォルトの名無しさん
05/01/21 03:03:07
scannerてのも見るけど

180:デフォルトの名無しさん
05/01/21 03:09:37
スキャナだと意味が広すぎるんでは
知らんけど

181:デフォルトの名無しさん
05/01/21 03:47:45
死ね。

182:デフォルトの名無しさん
05/01/21 03:53:25
lexというツールもあるくらいだし、lexerですかね。
ありがとうございます。

183:デフォルトの名無しさん
05/01/21 03:56:15
そういえば、Schemeに文はありませんでしたね。

184:デフォルトの名無しさん
05/01/21 03:59:22


185:デフォルトの名無しさん
05/01/21 04:04:47
>>176
定番のあの青い本にのってない?

186:デフォルトの名無しさん
05/01/21 04:49:21


187:デフォルトの名無しさん
05/01/21 05:02:26


188:デフォルトの名無しさん
05/01/21 05:14:58
なんでもいいから早く誰か俺言語さらせよ

189:デフォルトの名無しさん
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:デフォルトの名無しさん
05/01/21 08:29:37
ぜんぜん意味わかんないから説明キボン。
∈ってなん?

191:デフォルトの名無しさん
05/01/21 08:34:52
くちばし

192:デフォルトの名無しさん
05/01/21 09:18:57
ちぃ言語

193:デフォルトの名無しさん
05/01/21 09:47:11
>190
数学、集合論の「集合に属する」を表す記号

194:デフォルトの名無しさん
05/01/21 09:50:13
使い道なさそう

195:デフォルトの名無しさん
05/01/21 09:56:53
なんか前スレにも増して役に立たないスレになってるな

196:デフォルトの名無しさん
05/01/21 10:00:30
最近中間言語を作るのが流行りらしいな

197:デフォルトの名無しさん
05/01/21 10:01:41
中間言語なんて大昔からあるけどな

198:デフォルトの名無しさん
05/01/21 10:02:26
VB1から使われてるpcodeも中間コードだしね

199:デフォルトの名無しさん
05/01/21 10:05:43
x86とJavaVMの中間言語は?

200:デフォルトの名無しさん
05/01/21 10:06:04
バイトコード

201:デフォルトの名無しさん
05/01/21 10:07:21
相変わらずの糞スレぶりだな(wwwwwwwww

202:デフォルトの名無しさん
05/01/21 10:11:36
Rubyyyy!の中間言語は?

203:デフォルトの名無しさん
05/01/21 10:19:39
無い

204:デフォルトの名無しさん
05/01/21 10:22:33
ただ荒らしたいだけのバカだからそんな長文は読まないよ

205:デフォルトの名無しさん
05/01/21 10:48:06
ψプロセッサーやOSを選ばないユニバーサル・エミュレーター登場か
スレリンク(pcnews板)

206:デフォルトの名無しさん
05/01/21 22:07:59
expression を 式 ではなく、「値」とか「表現」と読んでしまったらいいんでない?
statement は(値のある文なんて無いから)文のままでもいいよな。


207:デフォルトの名無しさん
05/01/21 22:08:32
代入文

208:デフォルトの名無しさん
05/01/21 22:19:29
>>206
「詭弁のガイドライン」より。

・自分に有利な将来像を予想する
・主観で決め付ける
・ありえない解決策を図る

今のあなたはこの辺が該当します。
予想しうる今後の展開は、

・レッテル貼りをする
・勝利宣言をする
・知能障害を起こす

辺りです。

209:デフォルトの名無しさん
05/01/21 22:21:07
それにしても詭弁認定厨はうざかったな。
詭弁でもなんでもないものを、詭弁のガイドラインに
無理矢理あてはめようとしてるところが笑えた。

210:デフォルトの名無しさん
05/01/21 23:15:13
ハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハハ

211:デフォルトの名無しさん
05/01/21 23:28:31
保守になってねーんだよ!!!!!!!

212:デフォルトの名無しさん
05/01/22 10:24:34
式は y=3 のようなものが式。
y とか 3 とかを式と呼ぶのは、確かにおかしい罠


213:デフォルトの名無しさん
05/01/22 10:47:09
>>212
if(y)
などよく使うがな

214:デフォルトの名無しさん
05/01/22 11:12:48
C言語で言えばセミコロンがあれば文、なければ式です。

215:デフォルトの名無しさん
05/01/22 11:19:06
y = 3;



0;



216:デフォルトの名無しさん
05/01/22 11:20:37
yや3は式の構成要素の1つ
これらの構成要素と演算子を組み合わせたものが式
文というのは必ず特定のキーワードや記号が必要だと考えたら?

C言語
複文なら { ... }
if文なら if ( 式 ) ...
式文なら 式 ; // 式の後にセミコロン
ぬる文なら ; //セミコロンだけ

Ruby
知らん

RubyのBNFみたいなのある?

217:デフォルトの名無しさん
05/01/22 11:23:07
てかなんで知らないのにRubyが出てくるの?

218:デフォルトの名無しさん
05/01/22 11:24:13
URLリンク(www.ruby-lang.org)

219:デフォルトの名無しさん
05/01/22 11:25:25
>>218
無茶苦茶だな
不完全だし
信者が混乱するのもよくわかる

220:デフォルトの名無しさん
05/01/22 11:26:56
と、とりあえずBNFすら読めないけど書いてみた煽り屋

221:デフォルトの名無しさん
05/01/22 11:28:43
演算子の優先順位もそれじゃわかんないね。

222:デフォルトの名無しさん
05/01/22 11:29:25
よく釣れます

223:デフォルトの名無しさん
05/01/22 11:31:11
*1このBNFはまだ完全に1.6対応していません。執筆者募集

古すぎ

224:デフォルトの名無しさん
05/01/22 11:31:55
>より詳しくは parse.y を参照してください

結局これが悪いんだよ。
平たく言えばソース読めってこと。
Ruby理解するにはC言語とyaccの知識が必要だとさ。

225:デフォルトの名無しさん
05/01/22 11:33:13
↑藻前池沼以下だな。bison定義ファイルなんてそのまんまEBNFなのに

226:デフォルトの名無しさん
05/01/22 11:34:04
てかbisonも使えないのになんでこのスレにいるのかな

227:デフォルトの名無しさん
05/01/22 11:35:34
煽り屋だからさ

228:デフォルトの名無しさん
05/01/22 11:37:36
よく釣れますね

229:デフォルトの名無しさん
05/01/22 11:39:07
それは釣りなのか?
このスレと直接関係ないんだけどさ、俺「釣り」とか「釣り師」っていうのは、
   釣り師→ ○  /|←竿
          ト/  |
          │.  ~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          八   §←餌(疑似餌)     >゚++<

の組み合わせだと思ってたんだけど、
最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか
言ってるの多いよね。
 これは、どっちかというと、

      ..釣れたよ〜・・・│
      ──y─┘

       ・゚・。 ○ノノ。・゚・
    ~~~~~~~~~~│~~~~~~~~~~~~~~~
           ト>゚++< ミ パクッ
     ジタバタ  ハ
         ノ ノ

かと思うんだけど、どうだろう?

230:デフォルトの名無しさん
05/01/22 11:41:48
>>221
perse.y見てもわかんないですよ。

>>223
同期取れよってことですね。
あんな古いのなら置かないほうがいい。

>>225
あい、C言語の知識は必要ですね。
知っててもコード混ざってて読みにくい。
少しでも常識があればこれ見て文法わかれとはいえませんね。


231:デフォルトの名無しさん
05/01/22 11:43:27
↑コードなんて書かれる場所決まってるんだから
正規表現置き換えかflexでも使って機械的に除けるだろ池沼

232:デフォルトの名無しさん
05/01/22 11:44:53
じゃあこの機会を利用してRubyの文法誰かまとめて

233:デフォルトの名無しさん
05/01/22 11:46:45
>>230
parse.y見ても分からないのは勉強不足。
勉強しようとしないのはただの怠慢。

234:デフォルトの名無しさん
05/01/22 11:47:08
池沼に池沼と言われてもなあ


235:デフォルトの名無しさん
05/01/22 11:48:14
てかコードも隣に有った方が分かりやすいよ池沼ども

236:デフォルトの名無しさん
05/01/22 11:48:15
まあまともな言語だったらいきなりperse.y読めとはいわないよな。

237:デフォルトの名無しさん
05/01/22 11:49:04
rubyもそんな事は言ってない。
お客さんはリファレンスでも読みながらママのおっぱいでもしゃぶってな

238:デフォルトの名無しさん
05/01/22 11:49:30
pythonの文法はどうよ?

239:デフォルトの名無しさん
05/01/22 11:49:45
なんでスクリプトばっかなんだ?

240:デフォルトの名無しさん
05/01/22 11:50:30
そんな重箱の隅をつついたような言語の話ばっかりしてないで
LISPとかSmalltalkの話しようぜ

241:デフォルトの名無しさん
05/01/22 11:50:51
>>230
RubyはいまのとこC言語も読めない人は対象にしてないから大丈夫

242:デフォルトの名無しさん
05/01/22 11:52:08
てかparse.y見れば演算子の優先順位もちゃんと分かりやすく定義されてるし
煽ってる香具師はやっぱ池沼だな

243:デフォルトの名無しさん
05/01/22 11:53:09
C言語も読めないのになんでこのスレにいるの?

244:デフォルトの名無しさん
05/01/22 11:54:50
perse.y開いてprecedence tableで検索すれば優先度はわかるよ。

245:デフォルトの名無しさん
05/01/22 11:55:04
このスレの対象者
・flexが使える
・bisonが使える
・C言語くらいは使える
・何らかのアーキテクチャを対象としたアセンブラが使える(COMETとかの仮想環境以外の)

上記を全て満たす物のみ書込可

246:デフォルトの名無しさん
05/01/22 11:55:06
yaccを少しでもかじったことがあれば優先順位が分からないなんて言わないよなぁ

247:デフォルトの名無しさん
05/01/22 11:55:38
Ruby関係で用のある人は出てってください。

248:デフォルトの名無しさん
05/01/22 11:55:57
>>245
スクリプトエンジンにアセンブラの知識は必要ありませんから。
残念。

249:デフォルトの名無しさん
05/01/22 11:57:24
>>245
・Ruby関係者・信者以外
も加えといて
荒れるから

250:デフォルトの名無しさん
05/01/22 11:58:07
Ruby煽ってるような香具師はそもそも>>245の条件さえ満たしてないので
追加しなくてOK

251:デフォルトの名無しさん
05/01/22 11:59:12
>>243
Cは別に必須じゃないだろ。
MLでもPascalでも、とにかくコンピュータ言語が解かればよい。

252:デフォルトの名無しさん
05/01/22 11:59:15
bison使えないけどspiritとかANTLRとかJavaCC使える香具師もいるかもしれないぞ。

253:デフォルトの名無しさん
05/01/22 12:00:31
spiritはゴミ未満。C++マニアのオナニー。
使いにくい重い生成実行コードが巨大の3拍子そろってる有害廃棄物。

254:デフォルトの名無しさん
05/01/22 12:01:22
・flex(のようなもの)が使える
・bison(のようなもの)が使える


255:デフォルトの名無しさん
05/01/22 12:04:51
>>253
漏れもspiritは見切ったね。ありゃboost信者でもヤバイと思うもん。

256:デフォルトの名無しさん
05/01/22 12:07:55
でもbisonはC++のコードまともに吐けないからねえ。
グローバルに色々宣言しまくるから、なんか列挙子が他と被ってむかつく。

bison++は5年以上更新が無いし、bisonも一応オプションでC++のコード吐けるけど、
flexが吐くC++コードと連携できないんじゃ話にならないね。

257:デフォルトの名無しさん
05/01/22 12:09:17
GNUツールはお話にならないね。

258:デフォルトの名無しさん
05/01/22 12:09:32
bisonはいつの間にかGLR(1)すら吐けるようになってるし、
デストラクタまで自動化されてる。
日本にそういう資料無さ過ぎ。

259:デフォルトの名無しさん
05/01/22 12:10:19
>>257
吐いたコードはGPL適用外なんで

260:デフォルトの名無しさん
05/01/22 12:12:28
spiritはミニ言語のコンパイルに30分かかって5MB位の実行ファイル吐き出したワロス

261:デフォルトの名無しさん
05/01/22 12:12:52
日本人お話にならないね。

262:デフォルトの名無しさん
05/01/22 12:13:15
三国人よりマシだけどな

263:デフォルトの名無しさん
05/01/22 12:14:43
それがspiritクオリティ

264:デフォルトの名無しさん
05/01/22 12:17:42
てめーらどのコンパイラコンパイラなら満足なんだよ

265:デフォルトの名無しさん
05/01/22 12:20:22
bisonでいいや('A`)

266:デフォルトの名無しさん
05/01/22 12:25:10
ANTLRならC++コード吐けるぞ。使った事無いから誰か使って使い方教えてくれ。

267:デフォルトの名無しさん
05/01/22 12:28:57
ANTLRは左再帰駄目らしいぞ。spiritもそうだけど
文法考えるのに余計なストレスが増えて使ってられんな。
勝手に文法置き換えてくれたりはしないのかね?

268:デフォルトの名無しさん
05/01/22 12:30:36
bison最強論

269:デフォルトの名無しさん
05/01/22 12:33:03
てか紛らわしいからANTLLに改名しろよ(w

270:デフォルトの名無しさん
05/01/22 12:34:45
CCなんかなくてもコンパイラぐらい作れるっちゅうねん。

271:デフォルトの名無しさん
05/01/22 12:35:19
使った方が楽だ

272:デフォルトの名無しさん
05/01/22 12:35:59
禿同

273:デフォルトの名無しさん
05/01/22 12:38:48
てかANTLR使うくらいなら手書きでいくね?
テーブルも作らない単なる再帰下降らしいし。

274:デフォルトの名無しさん
05/01/22 12:39:51
もうCCの話飽きた。結局bison+flex最強って事でファイナルアンサー。

275:デフォルトの名無しさん
05/01/22 12:40:53
bisonはC++との親和性が…
クラスの実体渡せないのが…

276:デフォルトの名無しさん
05/01/22 12:41:40
↑バーカ実体毎回渡してたら重くて使ってられネーヨ。おとなしくポインタ渡しとけ。

277:デフォルトの名無しさん
05/01/22 12:43:15
解放するのマンドクセ

278:デフォルトの名無しさん
05/01/22 12:43:50
そこでBoehmですよ

279:デフォルトの名無しさん
05/01/22 12:54:14
bison用のC++ LALR skeletonらしいんだけど、使ったことある方いますか?

URLリンク(www.bj-ig.de)


280:デフォルトの名無しさん
05/01/22 12:57:53
てか標準で付いてるlalr1.ccとなんか違うのか?

281:デフォルトの名無しさん
05/01/22 13:03:49
Lexerが字句解析をしてる間にParserがブロッキングされないらしい…?
良く読んでないからワガンネ('A`)

282:デフォルトの名無しさん
05/01/22 14:06:44
いまのyacc/bisonだと、取りたいアクションが同じでも
還元の条件後とに、このように(↓)書かないと行けませんよね?

L1: R1 {
Action1();
}
| R2 {
Action1();
}

単純に考えて、

L1: R1
| R2 {
Action1();
}

見たいに書けない理由って何かありますか?


283:デフォルトの名無しさん
05/01/22 14:12:40
R1のときに何もしないという規則が書けない。
普通はルールをガーっと書いて文法がある程度できてることを確認してから
コードを入れていくし。



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5330日前に更新/188 KB
担当:undef