Windows 11 on ARMの新たなx64相互運用機能「ARM64EC」。

Windows 11 on ARMの新たなx64相互運用機能「ARM64EC」。Armとx64コードを混合可
https://pc.watch.impress.co.jp/docs/news/1335247.html

 ※ この手の、「エミュレーター」や「ランタイム」「プラットフォーム」を、間に噛ませて、「マシン語の違いを吸収させる」という発想は、JAVAや.NETの時に、散々聞いた話しだ…。

 ※ 古くは、BASICが、そもそも「インタープリタ」方式だったからな…。

 ※ それが、「コンパイル方式」の一気に「実行ソース」を作成して、実行させる方式に、「速さ」では、到底敵わない…、ということだったハズだ…。

 ※ それが、また「蘇って来た」ということは、どんな「前提条件」の変化が、生じたんだろうな…。

 ※ IoTだと、一々「どっかと通信しながら、実行して行く」んで、「インタープリタ」方式との親和性が高い…、ということなのか…。

『ARM64EC(Emulation Compatible)は、Windows 11 on ARMに実装されたアプリケーションバイナリインターフェイスで、x64との相互運用性を実現しながら、Armのネイティブ速度でアプリケーションを実行できる仕組み。

 具体的には、アプリをARM64ECとx64のコードを混合した状態にできる。ARM64ECの部分はネイティブ速度で実行、x64のコードの部分はWindows 11 on ARMビルドインのエミュレーションで実行される。

 従来の「ARM64ABI」は、x64コードを含むことができないため、開発者はアプリをArm向けに再度コードを書き直す必要があった。そのため、サードパーティーのコードを含む場合などは、そちらの対応を待つ必要があった。

 一方でARM64ECは、呼び出しの規約やスタックの使用法、データアライメントなどはx64の方法に対応できる。これによってx64との相互運用を実現し、アプリケーション開発者は、まず小規模なソースコードの対応から始め、アプリケーションの性能に関わるもっとも重要な部分からArmネイティブに移行、そうでない場所は徐々にできるようになる。

 MicrosoftのOfficeのチームでも、x64のプラグインがシームレスに機能するよう、64bit版の「Office for ARM」でARM64ECを使用するとしている。』

インタプリタ
https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%97%E3%83%AA%E3%82%BF

『歴史

インタプリタという手法、すなわち、「そのハードウェアが直接解釈するのではないプログラム」を受け取り、「プログラムで実装された抽象的な、あるいは仮想上のコンピュータで解釈実行する」というプログラムの実行法は、コンピュータが登場した時から、ないしそれ以前からある。

万能チューリングマシンは、「どんなチューリングマシンについても、それを模擬できるチューリングマシン」というもので、ある種のエミュレータないしインタプリタであり、考察されたのは電子式のコンピュータの誕生する以前である。

EDSAC(実用的な機能を持ったプログラム内蔵方式の世界初の電子計算機とされている)において既に、ある種のインタプリタが実装されていたことが記録に残っている。同機におけるプログラミングの技法が書かれた The Preparation of Programs for an Electronic Digital Computer の chapter 2 の § 2-22 Interpretive subroutines で説明されているが、複素数演算などのサブルーチンを明示的にサブルーチンとして呼ぶのではなく、通常の加減算などと同様の形式のプログラムをインタプリタで解釈してそれらのサブルーチンを利用する、というものである。また日本においても、パンチカードを入力としてパッチパネルの配線によるプログラミングで処理するような機械で、配線によってある種のインタプリタのようなものを実装し、パンチカードの内容をデータとしてではなくプログラムのように扱う、というような例があると言われている[5]。

最初の Lisp インタプリタはスティーブ・ラッセルが IBM 704 上に実装した。これにはエピソードがあり、ジョン・マッカーシーが「Lisp の論文」[6]で「数学的」に示したものだったのであるが、マッカーシー自身は実装できるものだとは考えていなかった。それを、論文を読んだ、院生であったラッセルが、実装可能だと言って数学的な記述から変換して機械語で実装してみせたという。[7][8]

1960年代には(現在のJavaなどと同様な)、プログラミング言語から中間表現にコンパイルし、それをインタプリタで実行する、というような手法も一般的になった(pコードマシンを参照)。』

 ※『インタプリタという手法、すなわち、「そのハードウェアが直接解釈するのではないプログラム」を受け取り、「プログラムで実装された抽象的な、あるいは仮想上のコンピュータで解釈実行する」というプログラムの実行法』…。

 ※ これが、「定義」か…。初めて、知ったよ…。

 ※ ちょっと、ゾクゾクするぜ…。これだから、止められん…。