次世代言語議論スレ[Go Rust Haskell Scala]第3世代 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0089デフォルトの名無しさん
2017/03/07(火) 15:16:58.62ID:d/UktTsb> あらゆる機能はアセンブリの構文糖です
それは間違い
アセンブリ言語の意味論を展開しようとすれば、その意味領域(プログラムの意味を捉えるための集合)は
有限ビット列の集合(やその上の写像の集合)とならざるを得ず、整数などは現れない
「固定小数点演算があるではないか」という反論が出るかも知れないが、そういう演算で処理した(その時点では固定小数点数と看做した)
メモリ領域にあるビット列はその後で単なるビット操作(特定ビットの反転など)の対象となり固定小数点数として扱われない可能性が常にあるから
即ち、アセンブリ言語における「固定小数点演算命令」は固定小数点の集合からそれへの写像でなく、あくまでもビット列の集合からビット列の集合への写像であり、
そのビット列を特定のフォーマットの固定小数点数と看做すと加減乗除算や符号反転などと理解できるような写像となっているというだけだ
つまりアセンブリ言語(とその意味領域としての全ての有限ビット列たちの集合やその上の写像たちの集合)は、様々なプログラミング言語とその意味論を
展開するための意味領域を、★埋め込む★ための埋め込み先として使えるのだよ
つまり、計算可能な対象ならばどんな高度な論理的な構造を持っていたとしても、しょせんはビット列での表現に帰着しようと思えばできるということであって、
アセンブリ言語の世界に高度な論理的構造そのものが存在している訳では★ない★のだ
それは12の音それ自体の組み合わせであらゆる名曲が表現できようと、12の音そのものが既にして名曲ではないようにね
(あるいは絵具で名画を描けるからと言って、絵具が既にして名画でもなければ、絵具メーカーが名画を描いたのでないように)
高水準プログラミング言語やその言語機能は、その意味を捉えるための意味領域がビット列の集合でなく整数の集合や文字の集合やその直積といった
様々な構造(それは言語が持つ論理的な内容の投影された姿)を持つ形で構成できるからこそ、「高水準」なんだよ
単にそれらの構造を幾らでも埋め込めるよりフラットなアセンブリの世界は逆に言えば論理を反映した構造が欠落しているという意味で「低水準」なのだ
■ このスレッドは過去ログ倉庫に格納されています