- すべて
- 画像・動画
並べ替え:新着順
プログラミングではプログラマが書いたコードがコンパイラによって意味を解釈されて、インタプリタによって解決される(雑な理解&説明)。これをメカニクスの意味論では、ゲームが表示した情報をプレイヤーのメンタルモデルが解釈してなんらかに入力を行うというアナロジーに落とし込めないだろうか。
ビデ美で語られる1つの統語論に2つの意味論というテーマはとても面白くて、じゃあゲームが表示するナニカは意味論的にどう解釈されるのか?みたいなことを考えたくなる。特にメカニクスの意味論は、プログラ厶意味論に近いモノなのでは?と考えたりしてワクワクする。
「操作的意味論は構文論の下位分類で表示的意味論は意味論の下位分類」は間違いで、どちらも意味論の下位分類だと思います。操作的意味論はインタプリタで動かした結果を意味として定義し、表示的意味論は対応する数学的対象を意味として定義していて、どちらもプログラムの意味を定義するものです。
たとえば、正規表現ってKleene代数がセマンティクス(表示的意味論)になるじゃないですか。だけど、プログラミング言語の「正規表現」ってのは、拡張されていて、もはや正規表現じゃないんですよね。そういう「正規表現」のセマンティクスを表示的意味論で表すのは、難しいです。
今から新しい言語を作りたいときは、表示的意味論をやったほうが、構文に対応する数学的オブジェクトが明確になるから便利だけど、既存のプログラミング言語の仕様を厳密に表現したいと思ったら、変な挙動とか細かい部分もちゃんと再現しようとすると、操作的意味論を使うことになる。
コンピューターが扱う形式言語一般で考えたら、まずは表示的意味論でやってみる方が、素直でやりやすいと思います。つまり、構文に対して、それは数学でいったらどういう関数やオブジェクトが対応するか考える。あとは変換を実装すれば、インタプリターができてしまう。
【大いなる罠】プログラミング言語の意味論を勉強したら7時間がムダになった#127 youtu.be/doo9vB6amYw?si… @YouTubeより 表示的意味論をそのまま書き下せばインタプリターが実装できるのに…
返信先:@JpnFlyingSquid他1人その立場を表示的意味論というらしいです。 x.com/yamaki3634/sta… 結局宗教問題ということみたいです。
返信先:@kkmr0123456x*y の順序に違いをもたせるか否かは、基本的には以下の二つの差なのです。 ①式の値(計算結果)が同じなのだから同じ ②計算のしかた(計算過程)が違うのだから違う 乱雑にいえば、前者を表示的意味論、後者を操作的意味論といいます。それだけの話なんですがね。
返信先:@yamaki3634ありがとうございます。 この例では①を使いたいですね。 というか、手で書くような式は表示的意味論のような… プログラミングで書くのは大体②で、 でもラムダ式とかは①ぽい… これらは特に宣言なく、場合によって使い分ける感じなのですかね…
返信先:@kkmr0123456x*y の順序に違いをもたせるか否かは、基本的には以下の二つの差なのです。 ①式の値(計算結果)が同じなのだから同じ ②計算のしかた(計算過程)が違うのだから違う 乱雑にいえば、前者を表示的意味論、後者を操作的意味論といいます。それだけの話なんですがね。
プログラミング言語の意味論には3つの流派があると言われておりますが(操作的意味論、公理的意味論、表示的意味論)、どれも、意味論と言いつつ、シンタックスを他の言語(数学的なもの)に転写しているにすぎないのです
「今後は数学的明晰さを持つ表示的意味論に加えて構文を用いて計算が(陽に)扱われることを期待して(執筆した)」 "expect in the next decades to find a treatment of computation that would combine the advantages of denotational semantics (mathematical clarity) with those of syntax"