> では、確かHSPではマシン語を埋め込むことができたようなので
> その場合、普通の命令とマシン語にした場合と、
> どれだけ差がでるか、どなたか計っていただけませんか?
HSPは中間言語です。
基本的に
(速い)<-------------------------------------->(遅い)
マシン語-アセンブラ-コンパイラ-中間言語-インタプリタ
の順です。
(得意不得意などもあるので一概には言えませんがマシン語は確実にどれよりも高速で、
アセンブラが次に高速です)
HSP(の基本システム=ランタイム・コンパイラなど)はVC++で書かれているのでWinとの
相性が非常によく速度も基本的にほかのコンパイラよりもいいとされています。
それでも、VC++で書かれているのでHSPの標準構文がVC++の速度より速く動作することは
あり得ません。
なぜ、そうなるのかと言えばコンピュータはすべてマシン語しか理解できません。
(実際にはマシン語というのはコンピュータの電気信号の流れ=プログラムを人間が分かり
やすく数値化しただけなので正確にはマシン語自体もコンピュータが直接理解できる訳
ではありません)
しかし、人間にはマシン語は分かりにくいのでそれを理解しやすくするための方法として
記号化したのがアセンブラ(正確にはアセンブリ)でマシン語と各記号が一対一で対応して
います。
これをマシン語に変換する処理を行うプログラムをアセンブラと言います。
(そのため、マシン語に変換する処理分だけマシン語より低速になります)
コンパイラはそれより更に人間が分かりやすくするために単にマシン語と一対一に記号化
するのではなく特定のよく行う処理をまとめたものを一つに記号化しています。
そのため、よりマシン語に変換する処理に時間がかかるのでアセンブラよりも低速に
なります。
中間言語はプログラムには不要なデータ(スペースやタブのようなインデントの他、
コメントなど)を削除して変数名やラベル名などを特定の基準に沿った記号化してしまい
そのデータを逐一マシン語に変換しながら動作させる処理なのでコンパイラより多少遅く
なります。
インタプリタは一行ごとにマシン語に変換して処理するので非常に遅くなります。
基本的にコンパイラよりもインタプリタの方がデバッグはしやすいが遅いのでその中間点
(両方の特徴を持った)である中間言語が使われます。
コンパイラ(のシステム自体)はマシン語を完全に理解していないと作れるものではないので
HSPでは中間言語が採用されています。
HSPでマシン語を扱う場合は変数(メモリ上)にマシン語データを書き込みそれを単純に
呼び出しているだけです。
マシン語を直接扱うよりはもしかしたら仕様上、多少低速になる可能性はありますが
基本的にマシン語なので明らかにHSPの構文よりも高速です。