6/23/2010

リーマン予想? リーマンショック?

リーマン級数は微積分学のカギである・・・

無限、∞は夢幻の彼方・・・

よって、リーマン級数で展開して、現実的な計算を行う - チューリング・マシン

チューリング・マシンは仮想機械である・・・

第二の月、空転金融原子炉の炉心でもある・・・



鳩山さんは数理工学専攻、バーチャル、よって、浮世離れする => ゲーム屋さん

志位さんは物理工学専攻、リアル、よって、現実的である => プラグマティスト

そのかけ橋が計測工学、リアルワールド(物理世界)をコンピュータでシミュレート(仮想世界)する

東大応用物理系学科は?

数理工学専攻、計測工学専攻、物理工学専攻のみっつに分派する・・・

だが、応用物理学の基礎を学ぶので、これらみっつの専攻の基礎的な素養は身につく・・・

シミュレーション技術は、プランの策定、および、結果の予想、つまり、成果の予想にとって、重要な技術である・・・



---Wiki



複素数平面におけるリーマンのゼータ関数。点 s における色が ζ(s) の値を表しており、濃いほど 0 に近い。色調はその値の偏角を表しており、例えば正の実数は赤である。s = 1 における白い点はであり、実軸の負の部分および臨界線 Re(s) = 1/2 上の黒い点は零点である。


数学におけるリーマンゼータ関数(-かんすう、Riemann's zeta function)とは、

\zeta (s) = \sum^{\infin}_{n=1} { 1 \over {n^s}}
で表される関数のことをいう。素数分布の研究をはじめとした解析的数論における重要な研究対象であり、数論や力学系の研究を始め数学や物理学の様々な分野で用いられているゼータ関数とよばれる一連の関数のうち、最も歴史的に古いものである。リーマンのゼータ関数ともよばれる。
ガンマ関数を用いれば、リーマンゼータ関数を

\zeta (s) = \frac{1}{\Gamma (s)}\int_0^\infty \frac{u^{s-1}}{e^u-1}du
とも定義できる。
すでにオイラーがこの関数を考察しておもに特殊値に関する重要な発見をしていたが、のちにより重要な貢献をしたリーマンがもちいたギリシャ文字のζによる表記にちなみリーマンゼータ関数と呼ぶ。上記級数は s が 1 より大きい実部をもつ複素数のときのみ収束するが、解析接続によって1を除く複素数平面の全域で定義された有理型関数となる。s = 1のとき上の表示は調和級数となり、無限に発散する。



ゼータ関数に整数を代入したものをゼータ定数またはゼータ関数の特殊値と言う。任意の正の偶数2nについて
 \zeta(2n) = (-1)^{n+1}\frac{B_{2n}(2\pi)^{2n}}{2(2n)!}
と表せる。ここで、B2nベルヌーイ数である。また、n ≥ 1の時、
\zeta(-n)=-\frac{B_{n+1}}{n+1}
が成り立つ。s が負の偶数であれば ζ(s) = 0 であり(算出はフーリエ級数参照)、これらをリーマン・ゼータ関数の自明な零点とよぶ。これらの表示はオイラーによる。

具体的には、
\zeta(0) = -\frac{1}{2},\!
\zeta (2) = \sum^{\infin}_{n=1} { 1 \over {n^2}} = { \pi^2 \over 6 } = 1.6449\dots (→バーゼル問題
\zeta (4) = \sum^{\infin}_{n=1} { 1 \over {n^4}} = { \pi^4 \over 90 } = 1.0823\dots
\zeta (6) = \sum^{\infin}_{n=1} { 1 \over {n^6}} = { \pi^6 \over 945 } = 1.0173...\dots
\zeta(8) = \sum^{\infin}_{n=1} { 1 \over {n^8}} = \frac{\pi^8}{9450} = 1.00407... \dots
\zeta(10) = \sum^{\infin}_{n=1} { 1 \over {n^{10}}} = \frac{\pi^{10}}{93555} = 1.000994...\dots
\zeta(12) = \sum^{\infin}_{n=1} { 1 \over {n^{12}}} = \frac{691\pi^{12}}{638512875} = 1.000246\dots
\zeta(14) = \sum^{\infin}_{n=1} { 1 \over {n^{14}}} = \frac{2\pi^{14}}{18243225} = 1.0000612\dots
が成り立つ。 ここで、
ζ(2n) = ηnπ2n
とおくと、
\eta_1 = \frac{1}{6}
 \eta_n=\sum_{\ell=1}^{n-1}(-1)^{\ell-1}\frac{\eta_{n-\ell}}{(2\ell+1)!}+(-1)^{n+1}\frac{n}{(2n+1)!}
が成り立つ。この漸化式はベルヌーイ数の漸化式から導かれる。
s が正の奇数のときの ζ(s) を表す簡潔な表現は得られていない。それでもラマヌジャンなどは次のような表示式を得ている。

\zeta(2n+1)=2^{2n}\pi^{2n+1}\sum^{n+1}_{k=0}(-1)^{k+1}\frac{B_{2k}}{(2k)!}\frac{B_{2n+2-2k}}{(2n+2-2k)!}-2\sum^{\infin}_{k=1}\frac{k^{-2n-1}}{e^{2\pi k}-1}
小さい正の奇数については、
\zeta(1) = \sum^{\infin}_{n=1} { 1 \over {n}} = \infty(→調和級数)
\zeta(3) = \sum^{\infin}_{n=1} { 1 \over {n^3}} = 1.20205\dots (アペリー定数)
\zeta(5) = \sum^{\infin}_{n=1} { 1 \over {n^5}} = 1.03692\dots
\zeta(7) = \sum^{\infin}_{n=1} { 1 \over {n^7}} = 1.00834\dots
\zeta(9) = \sum^{\infin}_{n=1} { 1 \over {n^9}} = 1.002008\dots
などが数値的に成り立っている。
これらに関して、
\zeta(3)=\frac{\pi^2}{7}
\left( 1-4\sum_{k=1}^\infty \frac {\zeta (2k)} {(2k+1)(2k+2) 2^{2k}} \right)
\zeta(5)=\frac{1}{294}\pi^5 
-\frac{72}{35} \sum_{n=1}^\infty \frac{1}{n^5 (e^{2\pi n} -1)}
-\frac{2}{35} \sum_{n=1}^\infty \frac{1}{n^5 (e^{2\pi n} +1)}
\zeta(5)=
12 \sum_{n=1}^\infty \frac{1}{n^5 \sinh (\pi n)}
-\frac{39}{20} \sum_{n=1}^\infty \frac{1}{n^5 (e^{2\pi n} -1)}
-\frac{1}{20} \sum_{n=1}^\infty \frac{1}{n^5 (e^{2\pi n} +1)}
\zeta(7)=\frac{19}{56700}\pi^7 
-2 \sum_{n=1}^\infty \frac{1}{n^7 (e^{2\pi n} -1)}
という級数が知られている。アペリーの定理によるとζ(3)は無理数である(1978年,ロジェ・アペリ)。

オイラー積 [編集]

ゼータ関数と素数との最初の関連はオイラーによって示された。すべての素数 p をわたる無限積によってリーマンゼータ関数は

\zeta(s) = \prod_{p:\mathrm{prime}} \frac {1}{1-p^{-s}}
という表示を持つ。これをオイラー積あるいはオイラー表示という。この無限積が Re(s) > 1のときゼータ関数に絶対収束していることは、幾何級数(等比級数)の公式
\frac{1}{1-p^{-s}} = \sum_{n=0}^{\infty} (p^{-s})^n 
  = 1 + p^{-s} + p^{-2s} + \cdots
が絶対収束すること(特に有限和のように分配法則が成り立つこと)に注意して、十分に大きな素数 p' を固定し、それ以下の素数 p にを亘る有限積をつくり、そのp' → ∞ とした極限を考えることで示すことが出来る。この部分有限積の展開について、自然数 n の素因数分解に現れる最大の素因数が p' であれば、そこまでの有限積の中に n が含まれるため、上のようなゼータ関数のオイラー積表示が成り立っている。

ゼータ関数の表示と関数等式 [編集]

ゼータ関数は次のような表示ももつ:
\zeta(s)=\exp\left(\frac{\gamma +\log \pi}{2}s-\log 2\right) \frac{1}{s-1} \prod_{\rho}\left(1-\frac{s}{\rho}\right) \prod^{\infin}_{n=1}\left(1+ \frac{s}{2n}\right)e^{-{s/2n}}
ここで ρ に関する積はリーマン・ゼータ関数の複素零点全体をわたるものとする。この式から、
\zeta(s)-\frac{1}{s-1}
整関数であることがわかる。実際
\zeta(s)-\frac{1}{s-1}=\gamma-\gamma_{1}(s-1)+\gamma_{2}(s-1)^{2}-...
ここで γ はオイラーの定数、γi はスティルチェスの定数と呼ばれているものである。 オイラーは1749年に

\zeta(s)(1-{2^{1-s}})= \sum_{n=1}^\infty \frac{(-1)^{n+1}}{n^s}.\!
という式を推測している。
またゼータ関数は、リーマンの1859年の論文『与えられた数より小さい素数の個数について』のなかで

\zeta(s) = 2^s\pi^{s-1}\ \sin\left(\frac{\pi s}{2}\right)\ \Gamma(1-s)\ \zeta(1-s)
という関数方程式を持つことが示された。ここでΓはガンマ関数である。これは複素解析的関数の解析接続がはじめて明示的におこなわれた例である。 s = -2n(nは自然数)を代入すると
\zeta(-2n) = 2^{(-2n)} \pi^{-2n-1}\ \sin(-n \pi)\ \Gamma(1+2n)\ \zeta(1+2n)
\sin (-n \pi) = 0 \, なので \zeta(-2n) = 0 \, である。したがって-2n はゼータ関数の零点である。
次のように修正されたゼータ関数(これは実質的にリーマンによって導入され、完備化されたゼータ関数と呼ばれる)
\xi(s)=\pi^{-s/2}\Gamma\left(\frac{s}{2}\right)\zeta(s)
は s と 1 - s に関する以下のような対称的な関数等式をもつ:
ξ(s) = ξ(1 − s).

ゼータ関数と数論的関数 [編集]

ゼータ関数を適当に組み合わせることにより、様々な数論的関数を係数とするディリクレ級数の母関数を得ることができる。
たとえば、ゼータ関数の逆数メビウス関数 μ(n) を用いて

\frac {1}{\zeta (s)} = \sum_{n=1}^{\infin} \frac {\mu (n)}{n^s}
と表せる。この式と ζ(2) の値から、分布が一様であるという仮定のもと、任意に取り出した二つの整数が互いに素である確率は 6/π2 であることが証明できる。
自然数 n の(正の)約数の個数を d(n), すべての約数の和を σ(n) で表すとき、

{\zeta (s)}^2 = \sum_{n=1}^{\infin} \frac {d (n)}{n^s}

{\zeta (s)}{\zeta (s-1)} = \sum_{n=1}^{\infin} \frac {\sigma (n)}{n^s}
が成り立ち、また、n と互いに素な n 以下の自然数の個数を オイラーのφ関数 φ(n)で表すとき、

\frac {\zeta (s-1)}{\zeta (s)} = \sum_{n=1}^{\infin} \frac {\varphi (n)}{n^s}
なども成り立つ。

ゼータ関数と素数の個数関数 [編集]

以下に素数分布、すなわち素数の個数関数 π(x) とゼータ関数との関係をのべる。
まずゼータ関数のオイラー積表示の両辺において対数をとり、テイラー展開で和の中の対数を展開する:

\log \zeta(s) = \log \prod_{p} \frac {1}{1-p^{-s}} = \sum_{p} \log \frac {1}{1-p^{-s}}
= \sum_p \sum_{n=1}^{\infin} \frac {1}{np^{ns}} = \sum_{n=1}^{\infin} \frac {1}{n} \sum_p \frac {1}{p^{ns}}
ここで各 n ≥ 1 について

\frac {1}{p^{ns}} = s \int^{\infin}_{p^n} x^{-s-1} dx
と変形して、先の式に代入すると

\log \zeta(s) = \sum_{n=1}^{\infin} \frac {1}{n} \sum_p \frac {1}{p^{ns}} = s \sum_{n=1}^{\infin} \frac {1}{n} \sum_p \int^{\infin}_{p^n} x^{-s-1} dx

= s \sum_{n=1}^{\infin} {\frac {1}{n} \int^{\infin}_1 \pi (x^{1/n})} x^{-s-1} dx
通常

\Pi (x) = \sum_{n=1}^{\infin} \frac {1}{n} \pi (x^{1/n})
と置いて、最終的に上式は次のように書かれる。

\frac {\log \zeta (s)}{s} = \int^{\infin}_{1} \Pi (x) x^{-s-1} dx
この公式に、メリン変換などと呼ばれる積分の反転公式を使うと、Π(x) を表示する公式を求めることができる。この公式は、リーマンの素数公式、あるいは明示公式(explicit formula)などと呼ばれている。なおメビウスの反転公式によって π(x) は

\pi(x) = \sum_{n=1}^{\infin} \frac {\mu (n)}{n} \Pi (x^{1/n})
とかけることを注意しておこう。
ゼータ関数の零点の分布に関する未解決問題であるリーマン予想は、素数公式の近似精度に関連している。この予想は純粋数学におけるもっとも重要な未解決問題であると考える数学者は多い。



---Wiki

チューリングマシン (Turing Machine) は計算模型のひとつで計算機を数学的に議論するための、単純化・理想化された仮想機械である。







仮想機械は、コンピュータ仮想化技術のひとつであり、1つのコンピュータ上で複数のコンピュータ(OSなど)が稼動したり、場合によっては別のアーキテクチャのコンピュータを模倣する(エミュレータ)技術である。
仮想機械の実装方法は、以下のいずれか、あるいは組み合わせなどがある。
仮想機械を制御するプログラム等はハイパーバイザとも呼ばれる。
仮想機械は通常は、ユーザーやプログラムから「別のコンピュータ」に見えるもの(複数のOSまたはOS環境を実現するもの)を指すが、コンピュータの初期には、仮想記憶マルチタスクマルチユーザータイムシェアリングなど、現在では一般的なOSの機能となった技術を含める場合がある。仮想機械の技術はメインフレームで生まれ発展したが、現在は各種サーバでも一般的な技術となりつつある。

利点と難点 [編集]

実現方式にもよるが一般的には、仮想機械の利点・難点には以下が挙げられる。
  • 利点

    • 多数のユーザーやプログラムが、独立して平行使用でき、相互に干渉しない(信頼性、可用性
    • 別のアーキテクチャのOSやソフトウェアが使用できる(互換性
    • 個々の仮想機械の追加・変更・削除が容易、ハードウェアの集約、負荷の平準化(運用容易性、サーバ統合)
  • 難点

    • 性能が犠牲となる(仮想化のオーバーヘッドを見込んだハードウェア性能が必要)
    • 構成・運用が複雑になる(一定のスキルが必要、特に障害時の問題判別時)
    • 稼動させるプログラムや周辺機器の、サポートやライセンスに制限がある場合が多い

歴史 [編集]

メインフレーム [編集]

ハードウェアによる仮想化 [編集]

1950年に世界初の商用コンピュータUNIVAC Iが登場したが、当時は機種ごとにアーキテクチャは別で、互換性は無かった。
1958年 IBM 709は、既存のIBM 704の命令セットをマイクロコードでエミュレーションし、上位互換性を提供した。
1964年 IBM System/360は、同様に既存のIBM 1401IBM 1620の命令セットをマイクロコードでエミュレーションした。また、コンピュータ・アーキテクチャを定義し標準化し、以後の上位互換性を提供した(通常は仮想化と呼ばれないが、プログラムから見れば一種の仮想機械と言える。この効果として、メインフレームではアセンブリ言語でもバイナリでも、40年以上経過した現在まで上位互換が続いている)。
1973年 IBM System/370モデル158およびモデル168により、物理分割(PPAR)をサポート。単一のコンピュータとしても、複数のコンピュータとしても使用可能。ただし細かいリソースの割り当てはできず、変更にはコンピュータ全体の再起動が必要。
1987年 IBM 3090 の PR/SMにより、多数の論理区画(LPAR)を作成し、コンピュータ全体の停止を伴わず、より柔軟なリソースの割り当てが可能となった。
IBMのPR/SMに相当する機能には、日立製作所 PRMFなどがある。

仮想化OSによる仮想化 [編集]

1964年 IBM System/360では、商用初の仮想化OSである CP-40CP-67により、ひとつのコンピュータで複数の仮想コンピュータを作成し、それぞれでゲストOS (MVSやCMSなど)を稼動させる事ができた。この仮想化OSは VM/CMS となり、現在も z/VM として、多数のゲストOS(Linuxなど)を同時稼動させる用途でも使われている。
IBMのz/VMに相当する製品には、富士通 AVM、日立製作所 VMS などがある。

OSによるリソースの仮想化 [編集]

OSの機能による各種リソースの仮想化には、仮想記憶マルチタスクマルチユーザータイムシェアリングなどがある。
主記憶装置の仮想化である仮想記憶は、商用では1961年バロース B5000で登場し、1970年IBM System/370で広く普及した。
マルチタスク(アプリケーションによるマルチプログラミングではなく、OSの機能によるマルチタスク)は商用では、OS/360のバリエーションのひとつであるMVTと、後継のMVSで登場し、広く普及した。入出力待ちなどにCPUが他の処理を行えるため、処理の応答時間短縮と全体のスループット向上がもたらされた。
なお、メインフレームにおけるこれらの「マルチタスク」は、単に複数のプログラムが同時に動かせるというだけではなく、複数の独立したアドレス空間(リージョン)を作成し、ハードウェアの機能も使用して完全に分離し、同時稼働するプログラム同士は直接見えない(バグや悪意あるプログラムでも相互に干渉できない)ものである。この点では、後の各種UNIXWindowsなどの「マルチタスク」と比較すると、「仮想機械」に近いレベルのもので、可用性セキュリティも向上した。同様の仕組みは2009年現在、MVSの後継のz/OSの他、IBM z/VSE、富士通 MSP/XSP、日立製作所 VOS3 などでも採用している。
タイムシェアリング(時分割多重)による並列処理(マルチユーザー)は、アプリケーションプログラムやユーザーに、複数のコンピュータを同時使用するイメージをもたらし、オンラインリアルタイム処理の普及をもたらした。なお、マルチタスクとタイムシェアリングは別の技術であるが、現在では組み合わせて使用されている。(上記のMVSなどでは、マルチタスク環境の一部で、タイムシェアリング環境を稼働させ、それによりマルチユーザーを実現している。またマルチタスク自体も、初期には入出力待ちによる割り込みが基本であったが、現在ではタイムシェリングによる割り込みを併用している。)

ミッドレンジ [編集]

1979年 IBM System/38は、TIMI(Technology Independent Machine Interface、技術に依存しないマシンインターフェイス)を採用した。TIMIは、メインフレームで採用されたマイクロコードによる互換性確保を更に進めたもので、主に水平型レベル・マイクロコードにより実現され、ハードウェア・アーキテクチャ(CPU命令セット等)とプログラムを分離している。プログラムの配布は中間コードであるバイトコードで行われ、インストール時にハードウェアの命令セットに展開される。このためソースプログラムを配布すること無く、実行時の性能を犠牲にすることもなく、別のアーキテクチャのハードウェアへの移行も容易である。実際、CPUアーキテクチャの移行(独自CISC→POWER)も容易に行えたとされる。
TIMIはSystem/38後継のAS/400iSeriesSystem iPower Systems i Edition に、現在でも使用されている。また現在はLPARなどと併用できる(後述のPowerVMを参照)。
各社の商用ミッドレンジコンピュータオフィスコンピュータミニコンピュータ)では、TIMIと同等の機能を持ったシリーズは、過去も現在も存在しない。

商用UNIX [編集]

商用UNIXベンダーによる仮想化技術には以下がある。現在の仮想化技術は各種のハードウェアとソフトウェアが密接に連携しており、またベンダーにより各技術の範囲が異なるため、ベンダー単位に記載する。
  • IBM PowerVM - 3エディションあり、全モデルに搭載。

    • LPAR (論理区画) - ファームウェアによる論理分割。複数OSを稼働。
    • マイクロパーティショニング - CPUを10分の1単位でLPARに割り当てる。
    • WPAR - OS(AIX 6)の標準機能。アプリケーションから見て複数のOS環境(インスタンス)を提供。
    • AIX WLM - ミドルウェアの機能でアプリケーションのワークロードを制御。
  • SUN N1構想(Unified Virtualization Manager Environment)

    • DSD (Dynamic System Domain) - 物理分割。動的なリソース移動も可能。上位機種のみ。
    • LDOM (Logical Domain) - ファームウェアによる論理分割。複数OSを稼働。上位機種のみに提供予定。
    • Solarisコンテナ - OS(Solaris 10)の標準機能。アプリケーションから見て複数のOS環境(インスタンス)を提供。
    • Solarisリソース・マネージャ - ミドルウェアの機能でアプリケーションのワークロードを制御
  • HP Virtual Server Environment (VSE)for HP-UX

    • nPartitions(nPars) - ハードウェアによるパーティショニング技術
    • Virtual Partitions(vPars) - nParをさらに分割できる論理パーティション技術、1プロセッサ単位で構成
    • HP Integrity Virtual Machines (Integrity VM) - 各パーティションにプロセッサ・リソースを5% - 100%の範囲で動的に割り当てる、柔軟なsub-CPUパーティションニング技術 。
    • HP-UX Workload Manager - パーティショニング、クラスタ、ユーティリティ・プライシングと連携し、サービスレベル維持に向けた リソース割り当てを自動化 。

UNIX/Linux/Windowsなど [編集]

仮想化OS [編集]

仮想化OS(仮想マシンモニタ)は、一つの計算機資源を複数の計算機資源としてハードウェア的に利用したり、物理的資源を区分けして特定のワークロードがシステム全体を独占させない目的(パーティション)の為に作られたもので、VMwareXenOracle VM(ベースはXen)、Hyper-Vなどがある。
一台のコンピュータを複数のコンピュータとして、ハードウェアレベルで使うことができる。一台のコンピュータ上で特にオペレーティングシステムの変更なしに、複数のゲストオペレーティングシステムを稼働させたりする。稼働させる複数のゲストオペレーティングシステムは、全く別の種類のオペレーティングシステムであることも可能である。
元々仮想マシンモニタはメインフレームにおいてその資源を各ワークロードの負荷に応じて動的に分割し、システム全体の利用効率を上げるために用いられた。計算機が高性能化した現在では、小規模なWebサイトホスティングのような軽い処理を一般的なサーバでも仮想マシンモニタを用いて並列に実行し、資源の有効活用することが行われている。
→ ハイパーバイザも参照

OSの機能 [編集]

UNIXLinuxOS/2Windows等におけるプロセスとは、メモリ管理ユニットによって、仮想化されたメモリ空間でネイティブコードを実行するハードウエアによる仮想機械(VM)とも呼べる。この場合、仮想化された機械を管理するソフトウエア(ハイパーバイザ)は、通常はカーネルである。

CPU [編集]

1985年 インテル80386で採用された仮想86モードは、複数のx86の仮想機械を提供する。これはOSが仮想機械を実装する事を支援するものであり、当モードはOS/2 2.0 や Windows 3.0などのDOS互換環境(仮想DOSマシン)で使用された。
SPARCPOWERIA-64なども、それぞれOSによる仮想化を支援する命令セットを含んでいる。

言語環境による仮想機械 [編集]

SmalltalkPascalJavaJava仮想マシン.NET FrameworkCLRPerlの次期実装Parrotなどがある。
ソフトウェアによる仮想CPUバイトコードを実行させる形式が一般的である。バイトコードの実行方法にはインタプリタ方式や実行前に全バイトコードをネイティブに変換するコンパイル方式もあるが、性能の観点から現在はジャストインタイムコンパイル方式が主流である。
これらの仮想機械の目的は、物理命令セットアーキテクチャと、論理命令セットアーキテクチャの分離にあり、一度コンパイルされたプログラムは物理命令セットアーキテクチャが何であれ、仮想機械によって実行する事ができる。またJavaのようにハードウエアやオペレーティングシステムを抽象化し、オペレーティングシステムを含むコンピュータアーキテクチャ自体を隠蔽し、あらゆるシステムで動作するプログラムの設計を可能とする事を目的とした物もある。
x86アーキテクチャにおけるx86-64のように、物理命令セットアーキテクチャはプロセッサの進化に伴い変更される。適切に設計された論理命令セットアーキテクチャは、これらの物理命令セットアーキテクチャの進化の恩恵を受けつつ後方互換性を維持できるので、既存プログラムの保守コストが低減される。
また、論理命令セットアーキテクチャを固定することで、コンパイラに対して複数の物理命令セットアーキテクチャに対応したコードジェネレータを都度開発しなくて済む。また、非常に複雑で多岐にわたる物理命令セットではなく、その言語や環境にあわせて洗練された命令セットに対応したコードジェネレータを一回だけ設計すれば良く、コンパイラ開発における負担を大いに軽減する。
なお、言語による仮想機械をハードウェア化したものとして以下がある。
  • Pascalのp-codeインタプリタはウェスタン・デジタル MCP-1600チップセットが作られた
  • Javaでは、サン・マイクロシステムズがJavaバイトコードをネイティブに実行するプロセッサを製作する計画を発表したが、実際にはそのサブセット的実装にとどまった。
  • ARMアーキテクチャの中にはJazelleと呼ばれるJavaバイトコード実行モードに切り換える事ができるものがあり、Java仮想マシンの裾野を広げている。

0 件のコメント:

コメントを投稿