問題タブ [von-neumann]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
421 参照

architecture - コンピュータの種類

最近どこかで、コンピューターの種類に関連するものを読んだことがあります。

読書は、チューリングマシンのような「アーキテクチャ」モデルに適合する Lisp と Emacs に関連していました。

一方、それは C であり、「他の」アーキテクチャ モデルは名前を覚えていない誰かにちなんで名付けられましたが、最も成功したタイプのコンピューターとして名付けられました。 +などなど)。

チューリングマシンでない場合、そのタイプのコンピューターの名前は何ですか (私の知る限り、物理モデルではなく抽象的なモデルです)。

バイト!

0 投票する
2 に答える
699 参照

lambda - フォンノイマンマシンとラムダ

「副作用は良いことなのか?」という質問に対するブライアンの主張の前提は次のとおりです。は興味深い:

コンピューターは、ラムダでうまく機能するように設計されているのではなく、エフェクトでうまく機能するように設計された von-Neumann マシンです。

アプローチの並置に混乱しています。私はそれらを白黒として見ることができません。次の証明値は何ですか:

コンピューターは、効果をうまく処理するように設計された von-Neumann マシンです [1]。

最後の部分は私を混乱させます:

ラムダでうまく動作するように設計されているのではなく[2]

ラムダは関数型プログラミングのシンボルとして使用されますか? それとも、関数型プログラミングの婉曲表現ですか? 本当のメッセージは何ですか?

前提の[1]と[2]の部分はどのような意味で正しいのでしょうか。返信に隠された前提は何ですか? 誰かが元の前提を正当化できますか? フォンノイマンマシンとラムダは実際にどのように機能するのですか?

0 投票する
5 に答える
27817 参照

computer-science - チューリングマシンとフォンノイマンマシン

バックグラウンド

Von-Neumannアーキテクチャは、命令とデータがメモリに格納され、マシンが内部状態を変更することによって動作するストアドプログラムコンピュータを記述します。つまり、命令は一部のデータを操作し、データを変更します。したがって、本質的に、システムには状態が維持されます。

チューリングマシンのアーキテクチャは、テープ上のシンボルを操作することによって機能します。つまり、スロットの数が無限のテープが存在し、任意の時点で、チューリングマシンは特定のスロットにあります。そのスロットで読み取られたシンボルに基づいて、マシンはシンボルを変更して別のスロットに移動できます。これはすべて決定論的です。


質問

  1. これら2つのモデルの間に何か関係はありますか?フォンノイマンモデルはチューリングモデルに基づいているか、チューリングモデルに触発されましたか?

  2. チューリングモデルはフォンニューマンモデルのスーパーセットであると言えますか?

  3. 関数型プログラミングはチューリングモデルに適合しますか?もしそうなら、どのように?関数型プログラミングはフォンノイマンモデルにはうまく役立たないと思います。

0 投票する
4 に答える
1822 参照

assembly - 元のチューリングマシンでの操作に相当するアセンブリ言語は何でしょうか?

元のチューリングマシンの定義を次のように使用する場合:

...正方形にマークされた無限のテープの形で得られる無限のメモリ容量。それぞれに記号を印刷できます。いつでもマシンには1つのシンボルがあります。これはスキャンされたシンボルと呼ばれます。マシンはスキャンされたシンボルを変更でき、その動作はそのシンボルによって部分的に決定されますが、他の場所のテープ上のシンボルはマシンの動作に影響を与えません。ただし、テープはマシン内を前後に移動できます。これは、マシンの基本的な操作の1つです。したがって、テープ上のシンボルには、最終的にイニングが含まれる可能性があります。(1948年のTuring、p.61)

これらの操作を、アセンブラ/バイナリ命令を解釈できるプロセッサで実行される操作にマップする場合、どの操作がマップされますか?

(私は、この質問に固有のチューリングマシンからフォンノイマンマシンへのジャンプを知っています)

0 投票する
7 に答える
4019 参照

microcontroller - 現在、ハーバードアーキテクチャ以外のマイクロコントローラーはありますか?

私はAtmelATMEGAおよびATTINYシリーズのマイクロコントローラーを使用して気に入っており、それらは非常に優れていると思います。私があまり好きではないことの1つは、それら(およびMicrochip PIC uCファミリも)がすべてハーバードマシンであるという事実です。つまり、RAMから使用または実行するために外部メモリを実際に配置することはできず、フラッシュのみです。

この設計には明らかな利点がありますが、AVRまたはPICを使用してFORTHのようなことを行うことは技術的に非常に困難です。(少なくとも1つの実装があることは知っていますが、通常のFORTHのようには機能せず、フラッシュがかなり急速に消耗します)

FORTHはもともと、多くの柔軟性が必要なインタラクティブな機械制御タイプのシステム用に作成されたため、Z80や6809などがマイクロコントローラーとして使用され、制御プログラムが実行されたり、RAMやその他のストレージデバイスが使用されていました。

フォンノイマンマシンであるAVR/PICと同様の複雑さ(できればDIPパッケージで利用可能)の現在のデバイスを知っている人はいますか?

0 投票する
3 に答える
2221 参照

cpu - フォン・ノイマン建築の図式に関するいくつかの疑問

代替テキスト

上記のフォン ノイマン アーキテクチャの図 [ウィキペディアから引用] を理解できず、それが正しいかどうかさえわかりません。私が持っているいくつかの明白な疑問 -

ALU はどのようにメモリと通信できますか? それがCUの仕事じゃないの?

アキュムレータはどのように ALU の一部ですか?

そして、アキュムレータの仕事とは正確には何ですか?

0 投票する
3 に答える
586 参照

memory-management - CS 入門 - ストアド プログラムの概念 - 概念が理解できない

私は本当にフォンノイマンアーキテクチャを理解しようとしましたが、理解できないことが1つあります.このコマンドまたはデータである場合、ユーザーはコンピューターのメモリ内の数値をどのように知ることができますか?

「ストアドプログラムの概念」があることは知っていますが、何も理解していません...

誰かが私にそれを2つの文で説明できますか?

thnx!

0 投票する
1 に答える
3684 参照

arrays - IAS 命令セットを使用して 2 つの配列の数値を加算する方法は?

IAS 命令セットを使用して、2 つの配列をループし、一方の各要素をもう一方の要素に追加して、結果を 3 番目の配列に格納するプログラムを作成する必要があります。したがって、たとえば、A(1) + B(1) を取得して C(1) に格納し、次に A(2) + B(2) を取得して C(2) に格納する必要があります。 A(20) + B(20) が C(20) に格納されます。しかし、IASでカウンター制御ループを作成する方法がわかりません...とにかく...これが私がやったことです..しかし、うまくいきません:)

助けてくれてありがとう:)

0 投票する
2 に答える
881 参照

self-modifying - 自己変更コードのユースケース?

フォン ノイマン アーキテクチャでは、プログラムとデータの両方がメモリに保存されるため、プログラムはそれ自体を変更できます。これはプログラマにとって有用ですか?いくつか例を挙げていただけますか?

0 投票する
1 に答える
1413 参照

cpu - フォンノイマンアーキテクチャ、これはまだ適用可能ですか

Wikipedia のVon Neumann Architectureに関する記事を読むと、次のように書かれています。

この用語の意味は進化して、命令フェッチとデータ操作が共通のバスを共有しているため、同時に実行できないストアド プログラム コンピュータを意味するようになりました。これは、フォン ノイマン ボトルネックと呼ばれ、多くの場合、システムのパフォーマンスを制限します。

ここでは、フォン ノイマン アーキテクチャの用語が、命令フェッチとデータ操作が同じバスを必要とするという事実のために同時に発生できないという考えを指すようになったと述べています。

私の質問は、これは現代のコンピューターシステムでもまだ当てはまるのでしょうか? 命令をフェッチしてデータ操作を行うためのバスはまだ 1 つしかないのでしょうか (これは主にデータの読み取り/書き込みであると推測されます)。