- 1 名前:デフォルトの名無しさん mailto:sage [04/11/10 23:30:50]
- 言語仕様や処理系の話題に関するスレッドです。
字句解析・構文解析から,データフロー解析,ループ並列化,タスク並列化,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/ (前スレ) 関連リンクは多分 >>2-10 あたり
- 951 名前:デフォルトの名無しさん mailto:sage [05/01/19 01:07:10 ]
- >>948
>式と言われると、y=ax^2+bx+c のような(数学)式を連想してしまいます。 >左辺&右辺にはそれぞれ値があるのですが、式自体には値は無いですよね… 値の有無は式に属するか文に属するかによる。 例えばVBの代入は文に属する。 a := b := cとは書けない。 でも右辺には式が置ける。 a := b + 1など。 しかし、C言語では代入は演算子として定義されており、 演算子は式に属する。 C言語の式a = b = cはa = (b = c)と解釈され、b = cが先に評価される。 この評価の順番を結合規則と呼び、C言語の式には かならず結合規則が存在し、代入式は右結合と規定されている。 同じ演算子同士は結合規則によって順番が決まり、 違う演算子同士ならば優先順位によって決まる。 a = b = cの場合、式の値はcの中身になる。
- 952 名前:945 mailto:sage [05/01/19 01:16:34 ]
- >>948
y=ax^2+bx+c は同書のP2表1.1で”文”として定義されています。 正確には「y := ax^2+bx+c」と記述します。 【注意】 P2の文中で「(4) xが変数でEが式ならば,x := E は式である」 は「文である」の誤りです。 代入”式”「 y=ax^2+bx+c」と言ったりしますが、意味的には 代入”文”「y := ax^2+bx+c」です。 代入文x:=E (←変数x,式E)については同書のP5に 「代入文は変数の値を別の値に置き換える働きをするので、 環境を別の環境に移す関数を意味する」とあります。 この説明では「関数」とあるので「式」と呼びたくなるかも知れませんが、 関数と関数との”写像”と御考え下さい。制御文ですね。 >>950にある 2. 恒等式 y == x^2 「yはx^2と常に等しい」 は論理値が与えられるので”式”です。 また、『定義式 y := x^2 「yをx^2と定義する」』はメタ記号 ::= を用いて 「y ::= x^2」と記述したりするようです。 ちなみに同書のP6の下から5行目「この関数が式に対する意味関数である」は 「文に対する」の誤りです。 頑張ってください。
|

|