ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
インストール
ブラウザよりも高速アクセス!
 

スタックマシン

索引 スタックマシン

タックマシン(stack machine)とは、メモリがスタックの形式になっている計算モデルを意味する。 スタックマシンを実装あるいはシミュレートしている実在のコンピュータもスタックマシンと呼ぶ。 加えて、スタックマシンは「0オペランド」命令セットのマシンも意味する。0オペランドマシンでは、命令は暗黙のうちにスタックのトップおよびトップ近傍にある値を使って演算を行い、結果はやはりスタックに積む。 スタックマシン(0オペランド命令セット)がアキュムレータマシン(1オペランド命令セット)やレジスタマシン(2オペランド命令セット、3オペランド命令セット)に比較して優れているのは、0オペランド命令セットで書かれたプログラムのコード密度が他の命令セットで書かれた同じプログラムに比較して一般に高い点である。 コールスタックを使って入れ子になったサブルーチン呼び出しの局所変数群を管理する方式のコンピュータをスタックマシンとは呼ばない(普通は)。.

83 関係: 仮想機械ミニコンピュータマイクロコントローラマイクロコンピュータチャールズ・ムーアチューリングマシンハードウェアマルチスレッディングバロース B5000バイトコードラッチ回路レジスタ (コンピュータ)レジスタマシンレジスタ・リネーミングレジスタファイルレジスタ割り付けトランスピュータプリフェッチプッシュダウン・オートマトンヒューレット・パッカードディジタル・イクイップメント・コーポレーションニクラウス・ヴィルト分岐予測呼出規約命令パイプライン命令セットアルファベット (計算機科学)アウト・オブ・オーダー実行アキュムレータ (コンピュータ)インタプリタオペレーティングシステムオペコードオートマトンキャッシュメモリコンパイラコンパイラ最適化コンピュータコンテキストスイッチコールスタックコード生成シミュレーションスレッデッドコードスタックタンデムコンピューターズサン・マイクロシステムズサブルーチン共通中間言語共通部分式除去割り込みCDC 6600C言語...CPython組み込みシステムDalvik仮想マシン遅延スロット計算機科学関数電卓逆ポーランド記法ForthHP 3000ICカードJavaJava仮想マシンLIFOMC6800MC68000MopsPascalPコードマシンPDP-11PostScriptRISCSECDマシンStreaming SIMD ExtensionsSun RayTomasuloのアルゴリズムUCSD p-SystemVAXX64X86X87構文解析有限オートマトン.NET Framework インデックスを展開 (33 もっと) »

仮想機械

仮想機械(かそうきかい、仮想マシン、バーチャルマシン、virtual machine、VM)とは、コンピュータの動作をエミュレートするソフトウェアやフレームワークである。また、エミュレートされた仮想のコンピュータそのものも仮想機械という。仮想機械によって、1つのコンピュータ上で複数のコンピュータやOSを動作させたり、別のアーキテクチャ用のソフトウェアを動作させることができる。.

新しい!!: スタックマシンと仮想機械 · 続きを見る »

ミニコンピュータ

ミニコンピュータ (mini computer) は、コンピュータの種類の一つ。略称として「ミニコン」とも呼ばれた。.

新しい!!: スタックマシンとミニコンピュータ · 続きを見る »

マイクロコントローラ

マイクロコントローラ(microcontroller)は、コンピュータシステムをひとつの集積回路に組み込んだものである。.

新しい!!: スタックマシンとマイクロコントローラ · 続きを見る »

マイクロコンピュータ

マイクロコンピュータ(英語:microcomputer)、略してマイコンはCPUとしてマイクロプロセッサを使用したコンピュータである。マイクロコンピュータは当時のメインフレームやミニコンピュータと比較して物理的に小さかった。入出力のためのキーボードとスクリーンを装備した多くのマイクロコンピュータは、現代の一般的な感覚におけるパーソナルコンピュータに近い。 なおマイコンという呼び方は1970年代から1980年代にかけて一般的であったが、同様な製品を現在はパソコンと呼ぶ。.

新しい!!: スタックマシンとマイクロコンピュータ · 続きを見る »

チャールズ・ムーア

チャールズ・H・ムーア(Charles H. Moore、1938年 - 、アメリカ人)は、プログラミング言語Forthの設計・開発者。愛称としてチャック・ムーアとも呼ばれる。.

新しい!!: スタックマシンとチャールズ・ムーア · 続きを見る »

チューリングマシン

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

新しい!!: スタックマシンとチューリングマシン · 続きを見る »

ハードウェアマルチスレッディング

ハードウェアマルチスレッディング(Hardware multithreading)は、プロセッサのマイクロアーキテクチャにおいて複数のスレッドの実行をハードウェアで提供することである。.

新しい!!: スタックマシンとハードウェアマルチスレッディング · 続きを見る »

バロース B5000

バロース B5000は、バロースが1961年にリリースした大型コンピュータの名称。当時バロースは、大型・中型・小型でそれぞれ全く異なるアーキテクチャを採用し、のコンセプトからそれぞれ命令セットを特定の高水準言語向けに最適化するという戦略をとった。大型システムの設計部門はスタックマシン型命令セットを採用し、命令の密度を高めると共にB5000の命令語は12ビット、後継のB6500では8ビットだった。データワード長を48ビットとした。B5000は ALGOL 60 向けに最適化されており、単純なコンパイラでコンパイル可能とした。後継にはB5500がある。その後、B6500/B6700 やその後継機がリリースされた。なお、中型システムはCOBOLに最適化されており、小型システムはコントロールストアが書き換え可能で命令セットを置換可能とされた。 1880年代に創業したバロースはコンピュータ業界では最古参だったが、1950年代末の同社の主力製品はまだ電気機械式の Sensimatic などだった。IBM、NCR、UNIVACといったライバル企業は既に大型コンピュータを生産し始めていた。遅れて参入することになったバロースは、当時の最新のアイデアに基づく全く新たな設計を採用するという戦略をとった。B5000のアーキテクチャは長続きしなかったが、それをベースとしてB6500が生まれている。そのアーキテクチャはユニシスの ClearPath Libra ファミリに受け継がれており、B6700からサポートしているMCPというオペレーティングシステムがほぼそのまま動作している。第三の大型システムであるB8500は商業的には成功しなかった。.

新しい!!: スタックマシンとバロース B5000 · 続きを見る »

バイトコード

バイトコード (bytecode) は、仮想マシンによる実行のために設計された、実行可能なプログラムのバイナリ表現である。ソフトウェアによって処理されるため、大抵は実機の機械語より抽象度の高い中間コードになっている。プログラミング言語の実装において、特定のハードウェアへの依存度を下げ、またインタプリタの実装を容易にするために用いられる。コンパイラの中間コードとして用いられることもある。 バイトコードという名前は命令の構成がバイト指向であること、すなわち命令長がバイト可変長であったり、命令中のフィールドの区切りがバイト区切りに合っているといったことから来ている。特にJavaの場合オペコードが1バイトである。しかし、仮想マシンの機械語をバイトコードと呼ぶことがJavaで広く一般的になったことから、前述のようなバイト指向でなくともバイトコードと呼んでいることも多い。バイト単位でなくビット単位の場合は、ビットコードとも呼ばれる。ワード指向のためにワードコードという語を使っている例も見られる。 バイトコードで記述されたプログラムは通常、バイトコードインタプリタによって解釈・実行される。バイトコードインタプリタは機械語を解釈・実行するCPUとの類似性からバーチャルマシンとも呼ばれる。.

新しい!!: スタックマシンとバイトコード · 続きを見る »

ラッチ回路

ラッチ回路(ラッチかいろ)は、双安定マルチバイブレータの一種で、1ビットの情報を保持できる状態を有する電子回路である。.

新しい!!: スタックマシンとラッチ回路 · 続きを見る »

レジスタ (コンピュータ)

レジスタ(register)はコンピュータのプロセッサなどが内蔵する記憶回路で、制御装置や演算装置や実行ユニットに直結した、操作に要する速度が最速の、比較的少量のものを指す。.

新しい!!: スタックマシンとレジスタ (コンピュータ) · 続きを見る »

レジスタマシン

レジスタマシン(英: Register machine)とは、数理論理学や理論計算機科学で使われる汎用計算模型の一種であり、チューリングマシンと似たような使われ方をされる。レジスタマシンのモデルは全てチューリング等価である。 また、スタックマシンの対として、オペランドがレジスタである機械を指してもレジスタマシンと言う。実機ではほとんどにあてはまるのでわざわざ言わないが、仮想機械では、たとえばLua 5の仮想機械を指して使われる。.

新しい!!: スタックマシンとレジスタマシン · 続きを見る »

レジスタ・リネーミング

レジスタ・リネーミング(register renaming)とは、コンピュータのプログラム内でレジスタを再利用しているために不必要な順序性が生じているのを、より多くの実在するレジスタを利用して再利用されているレジスタに割り当て、依存を無くす技術である。.

新しい!!: スタックマシンとレジスタ・リネーミング · 続きを見る »

レジスタファイル

レジスタファイル(Register file)は、コンピュータの中央演算装置(CPU)にレジスタを多数集積したものである。 現代的な集積回路によるレジスタファイルは、高速なSRAMに複数のポートを持たせる形で実装されている。通常のマルチポートの SRAM は同じポートで読み書きするのに対して、このような RAM は専用の読み書きポートを持つ点で異なる。 CPU の命令セットアーキテクチャは、メモリとチップ上の機能ユニットとでデータを橋渡しするレジスタを定義するが、単純な CPU では「アーキテクチャ上のレジスタ」が CPU 内の物理的なレジスタに1:1で対応する。一方より複雑な CPU はレジスタ・リネーミングを用いて物理的なレジスタとアーキテクチャ上のレジスタの対応関係が実行時に動的に変化する。レジスタファイルは命令セットアーキテクチャの一部で、プログラマから見える存在であり、プログラマからは透過的に存在しており見えないキャッシュメモリとは異なる。.

新しい!!: スタックマシンとレジスタファイル · 続きを見る »

レジスタ割り付け

レジスタ割り付け(レジスタわりつけ、Register allocation)は、プログラム内の多数の変数を少数のCPUレジスタに多重化するコンパイラ最適化技法のひとつである。その目標は、プログラムの実行速度を最大化すべく、なるべく多くのオペランドをレジスタに保持するようにすることである。レジスタ割り付けは基本的なブロックについて行う場合(ローカルレジスタ割り付け)と関数やプロシージャ全体について行う場合(グローバルレジスタ割り付け)がある。レジスタ割り当てとも呼ぶ。 プログラムは、多数の様々なデータを処理することが多い。しかし、CPUの多くはデータを保持するのに使えるレジスタ数は限られている。機械語のオペランドとしてメモリを指定できる場合でも、なるべくレジスタを使った方が高速化される。従って、処理に必要なデータを RAMとレジスタの間で入れ替えてやる必要がある。この操作を spill(スピル、あふれ)と呼ぶ。 レジスタの spill は、マシンが持っているレジスタ数以上の変数が同時に必要とされる場合に発生する。一般にメモリはレジスタよりも遅いため、spill にはコストがかかる。.

新しい!!: スタックマシンとレジスタ割り付け · 続きを見る »

トランスピュータ

トランスピュータ (transputer) は、イギリスのブリストルにある半導体企業が1980年代に設計したマイクロプロセッサアーキテクチャである。並列コンピューティング向けにメモリとシリアル通信リンクを内蔵している。 1980年代後半の一時期、トランスピュータは次世代の新たなコンピュータの始まりであると多くの人々が考えた。インモスとトランスピュータはこの期待には応えられなかったが、トランスピュータのアーキテクチャはコンピュータアーキテクチャの様々なアイデアを生み出すきっかけとなり、そのうちのいくつかは現代のシステムで違った形で採用されている。.

新しい!!: スタックマシンとトランスピュータ · 続きを見る »

プリフェッチ

プリフェッチ(prefetch)、事前読込み(じぜんよみこみ)は、コンピュータで、将来に利用が予測されるデータを予め、より高速なメモリに読み込んでおき、性能の向上を図る動作である。 例として次のようなものがある。.

新しい!!: スタックマシンとプリフェッチ · 続きを見る »

プッシュダウン・オートマトン

プッシュダウン・オートマトン(Pushdown Automaton)は、オートマトンの一種であり、文脈自由言語を認識する抽象機械である。 ある意味では、プッシュダウン・オートマトンは有限オートマトンと無限の容量のスタックを組み合せたシステムである。.

新しい!!: スタックマシンとプッシュダウン・オートマトン · 続きを見る »

ヒューレット・パッカード

創業場所に転用した、パロアルトにある旧パッカード家の車庫(en:Packard's garage)。2007年にアメリカ合衆国の史跡に指定された。 ヒューレット・パッカード (Hewlett-Packard Company) は、かつて存在した、主にコンピュータやプリンターなどコンピュータ関連製品の開発・製造・販売・サポートを行うアメリカ合衆国の企業である。2015年11月1日をもって、二つの独立した公開会社であるHP Inc.及びヒューレット・パッカード・エンタープライズに分割された。HP(エイチピー)の略称で呼ばれることが多い。本項でもHPと記す部分がある。スローガンは「invent」。 本体の会社分割を受けて、従来の日本法人の日本ヒューレット・パッカード株式会社はヒューレット・パッカード・エンタープライズの日本法人となり、HP Inc.の日本法人として日本HPが分離・設立された。.

新しい!!: スタックマシンとヒューレット・パッカード · 続きを見る »

ディジタル・イクイップメント・コーポレーション

ディジタル・イクイップメント・コーポレーション (Digital Equipment Corporation) は、かつて存在した、アメリカ合衆国を代表するコンピュータ企業のひとつである。1957年、ケン・オルセンによってマサチューセッツ州メイナードに設立された。通称 DEC(デック)ディジタル・イクイップメント・コーポレーション自身が "DEC" を使った例: PDP11 Processor Handbook (1973): page 8, "DEC, PDP, UNIBUS are registered trademarks of Digital Equipment Corporation;" page 1-4, "Digital Equipment Corporation (DEC) designs and manufactures many of the peripheral devices offered with PDP-11's.

新しい!!: スタックマシンとディジタル・イクイップメント・コーポレーション · 続きを見る »

ニクラウス・ヴィルト

ニクラウス・ヴィルト (Niklaus Wirth, 1934年2月15日 -)はスイスの計算機科学者。プログラミング言語Pascal、Modula-2などの開発や、ソフトウェア工学分野の開拓的研究で知られる。.

新しい!!: スタックマシンとニクラウス・ヴィルト · 続きを見る »

分岐予測

ンピュータ・アーキテクチャにおける分岐予測(ぶんきよそく、Branch Prediction、ブランチプレディクション)とは、プログラム実行の流れの中で条件分岐命令が分岐するかしないかを予測することにより、命令パイプラインの効果を可能な限り維持し、性能を高めるためのCPU内の機能である。.

新しい!!: スタックマシンと分岐予測 · 続きを見る »

呼出規約

呼出規約(よびだしきやく)ないし呼出慣例(よびだしかんれい)(calling convention)は、コンピュータの命令セットアーキテクチャごとに取り決められるABIの一部で、サブルーチンが呼出される際に従わねばならない制限などの標準である。名前修飾について、データを渡す「実引数」、戻るべきアドレスである「リターンアドレス」、データを戻す「返戻値」などを、スタックなどに対してどのように格納するのか、また各レジスタを、呼び出し側とサブルーチンのどちらの側が保存するか、等といった取決めの集まりである。言語が同じでも、分割コンパイルされリンカでリンクされる相互のプロシージャ間では、呼出し呼出されるならば同一の呼出規約に従っていなければならない。一方で、違う言語の間でも、同一の呼出規約を経由して相互にプロシージャを呼出すこともできる。.

新しい!!: スタックマシンと呼出規約 · 続きを見る »

命令パイプライン

命令パイプライン(Instruction pipeline)は、コンピュータなどのデジタル電子機器で命令スループット(単位時間当たりに実行できる命令数)を向上させる設計技法の1つで、命令レベルの並列性を高める1技法。 命令パイプラインのあるプロセッサは、命令の処理を独立して実行できる工程(ステージ)に分割する。各工程は、前の工程の出力を自身の入力とし、自身の出力を次の工程の入力とするように相互接続されている。このような構成で各工程を並列化し、全体としての処理時間を大幅に削減する。.

新しい!!: スタックマシンと命令パイプライン · 続きを見る »

命令セット

命令セット(めいれいせっと、instruction set)は、コンピュータのハードウェアに対して命令を伝えるための言葉の語彙。.

新しい!!: スタックマシンと命令セット · 続きを見る »

アルファベット (計算機科学)

形式言語とオートマトンの理論において、アルファベット (英: alphabet) または字母とは、文字や数字などといったような「記号」の有限の集合のこと。有限の文字列は、アルファベットからなる文字の有限の並びである。特に、からなるアルファベットはバイナリアルファベットと呼ばれる。また、二進列 (binary string)は、バイナリアルファベットの並びである。また、うまく処理することで、無限の文字の並びも考えることが可能である。 アルファベットΣが与えられたとき、Σ*はアルファベットΣからなる有限の文字列全てを意味する。ここでの*はクリーネ閉包を意味する演算子である。また、\Sigma^\infty (or occasionally, \Sigma^\N or \Sigma^\omega)は、アルファベットΣからなる無限の文字列全てを意味する。 例えばバイナリアルファベットからはのような文字列が生成できる(εは空文字列を意味する)。.

新しい!!: スタックマシンとアルファベット (計算機科学) · 続きを見る »

アウト・オブ・オーダー実行

アウト・オブ・オーダー実行(-じっこう、out-of-order execution)とは、高性能プロセッサにおいてクロックあたりの命令実行数(IPC値)を増やし性能を上げるための手法の1つで、機械語プログラム中の命令の並び順に依らず、データなどの依存関係から見て処理可能な命令について逐次開始・実行・完了させるものである。頭文字で'OoO'あるいは'O-o-O'とも書かれる。「順序を守らない実行」の意である。 プロセッサの設計と実装において、命令レベルの並列性(Instruction-level parallelism; ILP)を高めることは1つの目標でありスーパースケーラにより1サイクルあたり2命令を越えることが可能になったが、フォンノイマンアーキテクチャの前提である逐次実行が、並列化を施す上での障壁となる。アウト・オブ・オーダー実行(以下、OoO)は、結果(意味)に影響を与えないことを保証しながら可能な限り順序に従わずどんどん実行することにより、複数命令の同時実行の可能性を広げる最適化手法の1つである。 アウト・オブ・オーダー実行に対して、順序通り実行することを、イン・オーダー実行と言う。.

新しい!!: スタックマシンとアウト・オブ・オーダー実行 · 続きを見る »

アキュムレータ (コンピュータ)

アキュムレータ(Accumulator)は、コンピュータにおいて、演算装置による演算結果を累積する、すなわち総和を得るといったような計算に使うレジスタや変数のことである。特にプロセッサにあるそのようにして使える唯一のレジスタを指すことがあるがその意味では、ジャーゴンファイルのaccumulatorの項の冒頭に "Archaic term for a register." とあるように、基本的には古語である。 しかし、現代のプロセッサでもx86プロセッサにはアキュムレータマシン(後述)風のところがある。AXレジスタ(8ビットプロセッサ時代のAレジスタに由来する。32ビットではEAX)がアキュムレータ的に扱われており、初期の命令セットでは一部の命令(代表的なものはMULとDIV)のソースの一方およびデスティネーションが暗黙でAXとDXに固定されている、AXを対象とする命令には短縮形がある、などのように、AXレジスタにアキュムレータとしての特別扱いがあった。後に拡張されるに従い、アセンブリ言語レベルでは任意の命令に任意のオペランドが指定できるようになりこの特徴は見えなくなった。しかし、機械語レベルでは後方互換性を保っているのでこの特徴は残っている。また、AXレジスタは関数の返り値を格納するレジスタとして使われるなど「よく使われるレジスタ」であり、そういった意味でこの語が使われることもある。.

新しい!!: スタックマシンとアキュムレータ (コンピュータ) · 続きを見る »

インタプリタ

インタプリタ(interpreter)とは、プログラミング言語で書かれたソースコードないし中間表現を逐次解釈しながらするプログラムのこと。.

新しい!!: スタックマシンとインタプリタ · 続きを見る »

オペレーティングシステム

ペレーティングシステム(Operating System、OS、オーエス)とは、コンピュータのオペレーション(操作・運用・運転)のために、ソフトウェアの中でも基本的、中核的位置づけのシステムソフトウェアである。通常、OSメーカーが組み上げたコンピュータプログラムの集合として、作成され提供されている。 オペレーティングシステムは通常、ユーザーやアプリケーションプログラムとハードウェアの中間に位置し、ユーザーやアプリケーションプログラムに対して標準的なインターフェースを提供すると同時に、ハードウェアなどの各リソースに対して効率的な管理を行う。現代のオペレーティングシステムの主な機能は、ファイルシステムなどの補助記憶装置管理、仮想記憶などのメモリ管理、マルチタスクなどのプロセス管理、更にはGUIなどのユーザインタフェース、TCP/IPなどのネットワーク、などがある。オペレーティングシステムは、パーソナルコンピュータからスーパーコンピュータまでの各種のコンピュータや、更にはスマートフォンやゲーム機などを含む各種の組み込みシステムで、内部的に使用されている。 製品としてのOSには、デスクトップ環境やウィンドウシステムなど、あるいはデータベース管理システム (DBMS) などのミドルウェア、ファイル管理ソフトウェアやエディタや各種設定ツールなどのユーティリティ、基本的なアプリケーションソフトウェア(ウェブブラウザや時計などのアクセサリ)が、マーケティング上の理由などから一緒に含められていることもある。 OSの中で、タスク管理やメモリ管理など特に中核的な機能の部分をカーネル、カーネル以外の部分(シェルなど)をユーザランドと呼ぶ事もある。 現代の主なOSには、Microsoft Windows、Windows Phone、IBM z/OS、Android、macOS(OS X)、iOS、Linux、FreeBSD などがある。.

新しい!!: スタックマシンとオペレーティングシステム · 続きを見る »

オペコード

ペコード (operation code, opcode) とは、機械語の1個の命令の部分で、実行する操作 (operation) の種類を指定する部分のこと、およびそのコード(符号)のことである。数式における演算子に相当する。命令のもうひとつの主要部分は、操作される対象を指定するオペランド(被演算子)である。.

新しい!!: スタックマシンとオペコード · 続きを見る »

オートマトン

ートマトン (単数形: automaton, 複数形: オートマタ(automata )) とは、自動人形などとも呼ばれる「オートマタ」と同じ語であるが、計算理論において、計算モデルに関して有限オートマトンなどの総称として使われる。また特に「オートマトン理論」と呼ばれる分野では、計算機械のうち計算可能性の点でチューリングマシンよりも制限されているものを特に指して言うこともある。.

新しい!!: スタックマシンとオートマトン · 続きを見る »

キャッシュメモリ

ャッシュメモリ は、CPUなど処理装置がデータや命令などの情報を取得/更新する際に主記憶装置やバスなどの遅延/低帯域を隠蔽し、処理装置と記憶装置の性能差を埋めるために用いる高速小容量メモリのことである。略してキャッシュとも呼ぶ。コンピュータは以前から記憶装置や伝送路の性能が処理装置の性能に追いつけず、この差が全体性能に対するボトルネックとされてきた(ノイマンズ・ボトルネック)。そしてムーアの法則に基づく処理装置の加速度的な高性能化により現在ではますますこの差が拡大されている。キャッシュメモリは、記憶階層の観点からこれを解消しようとするものである。 主に、主記憶装置とCPUなど処理装置との間に構成される。この場合、処理装置がアクセスしたいデータやそのアドレス、状態、設定など属性情報をコピーし保持することで、本来アクセスすべき記憶装置に代わってデータを入出力する。通常はキャッシュメモリが自動的にデータ保存や主記憶装置の代替を行うため、基本的にCPUのプログラムなど処理装置側がキャッシュメモリを意識する必要はない。 キャッシュの一般的な概念はキャッシュ (コンピュータシステム)を参照のこと。.

新しい!!: スタックマシンとキャッシュメモリ · 続きを見る »

コンパイラ

ンパイラ(英:compiler)とは、コンピュータ・プログラミング言語の処理系(言語処理系)の一種で、高水準言語によるソースコードから、機械語に(あるいは、元のプログラムよりも低い水準のコードに)変換するプログラムである。.

新しい!!: スタックマシンとコンパイラ · 続きを見る »

コンパイラ最適化

ンパイラ最適化(こんぱいらさいてきか、Compiler optimization)の記事では、コンピュータ・プログラムの最適化に関する話題のうち、もっぱらコンパイラに関係するものに関して説明する。最も一般的な要求はプログラムの実行時間を最小化することであり、その次に使用するメモリ量を最小化することである。また、携帯可能なコンピュータが増えるにつれて、消費電力を最小化するという最適化も生まれてきた。 一部のコード最適化問題はNP完全問題であることが示されている。実際には、プログラマがコンパイラによる最適化の完了を待てる時間の上限なども考慮してコンパイラ最適化を実装する(最適化はCPU時間とメモリを多大に使用する)。かつては、コンピュータのメモリ実装量も実行できる最適化を制限する要因だった。 コンパイラメーカによっては、「コンパイラの最適化の能力が売り上げや評判に大きく影響する」と信じている場合があり、そういう信念に従って「最適化コンパイラ」と銘打つことがある。少なくとも、同程度にバグが無いコンパイラ同士であれば、という前提の範囲内なら、最適化の能力が高いほうが魅力的と言えるであろう。.

新しい!!: スタックマシンとコンパイラ最適化 · 続きを見る »

コンピュータ

ンピュータ(Computer)とは、自動計算機、とくに計算開始後は人手を介さずに計算終了まで動作する電子式汎用計算機。実際の対象は文字の置き換えなど数値計算に限らず、情報処理やコンピューティングと呼ばれる幅広い分野で応用される。現代ではプログラム内蔵方式のディジタルコンピュータを指す場合が多く、特にパーソナルコンピュータやメインフレーム、スーパーコンピュータなどを含めた汎用的なシステムを指すことが多いが、ディジタルコンピュータは特定の機能を実現するために機械や装置等に組み込まれる組み込みシステムとしても広く用いられる。電卓・機械式計算機・アナログ計算機については各項を参照。.

新しい!!: スタックマシンとコンピュータ · 続きを見る »

コンテキストスイッチ

ンテキストスイッチ (context switch) とは、複数のプロセスが1つのCPUを共有できるように、CPUの状態(コンテキスト (情報工学))を保存したり復元したりする過程のことである。コンテキストスイッチはマルチタスクオペレーティングシステムに不可欠な機能である。通常コンテキストスイッチは多くの計算機処理を必要とするため、オペレーティングシステムの設計においてはコンテキストスイッチを最適化することが重要である。.

新しい!!: スタックマシンとコンテキストスイッチ · 続きを見る »

コールスタック

ールスタック (Call Stack)は、プログラムに実行中にサブルーチンに関する情報を格納するスタックである。実行中のサブルーチンとは、呼び出されたが処理を完了していないサブルーチンを意味する。実行スタック (Execution Stack)、制御スタック (Control Stack)、関数スタック (Function Stack)などとも呼ばれる。また、単に「スタック」と言ったときにコールスタックを指していることが多い。コールスタックを正しく保つことは多くのソフトウェアが正常動作するのに重要であるが、その詳細は高水準言語からは透過的である。.

新しい!!: スタックマシンとコールスタック · 続きを見る »

コード生成

ード生成(Code Generation)とは、コンパイルの最終段階であり、ソースコードの意味が実現された目的コードを生成する過程である。「何らかの目的コード」が具体的には、機械語である場合もあれば、アセンブリ言語である場合もあれば、バイトコードや、場合によっては「ソースコード側が比較すれば高水準であるのに対して低水準な側であると言える言語(例えばC言語など)」ということもある。同程度の水準の言語間の変換を指すトランスパイルなどという語も近年はできた。.

新しい!!: スタックマシンとコード生成 · 続きを見る »

シミュレーション

ミュレーション()は、何らかのシステムの挙動を、それとほぼ同じ法則に支配される他のシステムやコンピュータなどによって模擬すること広辞苑第6版。simulationには「模擬実験」や「模擬訓練」という意味もある。なお「シミュレイション」と表記することもまれにある。.

新しい!!: スタックマシンとシミュレーション · 続きを見る »

スレッデッドコード

レッデッドコード(英: )は、プログラミング言語処理系におけるコード生成手法のひとつで、呼出すべきサブルーチンのアドレスを羅列する、というものである。「内部インタプリタ」と呼ばれる極小のインタプリタで順次呼出したり、サブルーチン・スレッディング方式と言われるコンパイル手法の場合は機械語のサブルーチンコール命令の羅列になっているので、先頭にジャンプ(ないし呼出し)してそのまま実行する。 スレッデッドコードは、他のコード生成技法や他の呼出規約よりもコード密度が高いが、若干実行速度が遅くなる(通常、1命令多くなる)。しかし、プログラムが小さくなるのでCPUのキャッシュに完全に収まる可能性が高くなり、キャッシュミスが起きにくくなって性能が向上する可能性が高い。 スレッデッドコードは、Forth、多くのBASICの実装、一部のCOBOLの実装、初期のB言語、小型ミニコンピュータ向けなどのプログラミング言語での実装技法としてよく知られている。.

新しい!!: スタックマシンとスレッデッドコード · 続きを見る »

スタック

タックは、コンピュータで用いられる基本的なデータ構造の1つで、データを後入れ先出し(LIFO: Last In First Out; FILO: First In Last Out)の構造で保持するものである。抽象データ型としてのそれを指すこともあれば、その具象を指すこともある。 特にその具象としては、割込みやサブルーチンを支援するために極めて有用であることから、1970年代以降に新しく設計された、ある規模以上のコンピュータは、スタックポインタによるコールスタックをメモリ上に持っていることが多い。.

新しい!!: スタックマシンとスタック · 続きを見る »

タンデムコンピューターズ

タンデムのロゴ入りマグカップ タンデムコンピューターズ (Tandem Computers, Inc.) は、ATMネットワーク、銀行、株式市場その他のトランザクション処理を主とする用途向けに無停止コンピュータ(フォールトトレラント・コンピュータ)を製造していた企業である。無停止コンピュータは稼働時間をなるべく長くし、データ損失をゼロにすることを要求される用途で活躍する。1974年創業で、1997年まで独立企業として存続していた。現在はヒューレット・パッカードのサーバ部門に吸収されている。.

新しい!!: スタックマシンとタンデムコンピューターズ · 続きを見る »

サン・マイクロシステムズ

ン・マイクロシステムズ本社 サン・マイクロシステムズ(Sun Microsystems)は、アメリカ合衆国カリフォルニア州サンタクララに本社を置いていたコンピュータの製造・ソフトウェア開発・ITサービス企業である。2010年1月27日にオラクルにより吸収合併され、独立企業・法人としては消滅した。.

新しい!!: スタックマシンとサン・マイクロシステムズ · 続きを見る »

サブルーチン

ブルーチン(subroutine)は、コンピュータプログラミングにおいて、プログラム中で意味や内容がまとまっている作業をひとつの手続きとしたものである。繰り返し利用されるルーチン作業をモジュールとしてまとめたもので、呼び出す側の「主」となるもの(メインルーチン)と対比して「サブルーチン」と呼ばれる。サブプログラム (subprogram) と呼ばれることもある。また、「サブ」をつけずに「ルーチン」と呼ぶこともある。 プログラムのソース中で、繰り返し現れる作業をサブルーチン化することで、可読性や保守性を高く保つことができる。繰り返し現れる作業でなくても、意味的なまとまりを示すためにサブルーチン化することもある。また、キャッシュのような階層的メモリの設計を持つコンピュータ(現在のパソコンやワークステーションなどほぼすべて)では、よく使われるサブルーチンがキャッシュに格納されることで高速な動作を期待できる。.

新しい!!: スタックマシンとサブルーチン · 続きを見る »

共通中間言語

共通中間言語(きょうつうちゅうかんげんご、Common Intermediate Language、略称: CIL("sil" や "kil" と発音される))は、共通言語基盤 (Common Language Infrastructure、CLI) で定義された最も低水準な人間が解読可能なプログラミング言語であり、.NET FrameworkやMonoにより使用される。CLI互換な実行環境をターゲットとしている言語はCILにコンパイルされる。そのCILはバイトコードスタイルフォーマットであるオブジェクトコードにより組み立てられている。CILはオブジェクト指向なアセンブリ言語であり、完全なスタックベースである。そのバイトコードはネイティブコードに翻訳されるか、仮想機械により実行される。.NET言語がベータリリースである間、CILはMicrosoft Intermediate Language (MSIL) と呼ばれていた。C#およびCLIの標準化により、現在ではバイトコードは公式にCILと呼ばれる。.

新しい!!: スタックマシンと共通中間言語 · 続きを見る »

共通部分式除去

共通部分式除去(きょうつうぶぶんしきじょきょ、Common subexpression elimination, CSE)は、計算機科学におけるコンパイラ最適化方法の一つで、同じ式 (すべて同じ値に評価される) の出現を探し出し、計算結果を格納する一つの変数に置き換える価値があるかどうかの解析を行うものである。 下記の例では、 コードが下記のように記述されたとして解釈できるよう変更すると、 (プログラムの実行が速くなるため)利点がある。 最適化プログラムはコストと利点の解析を行い、tmpを格納するコストが複数回計算を行うコストより低いかどうかを計算する。実際には、どの値がどのレジスタに格納されるかといった要素も重要である。 上記のような単純な場合には、プログラマはコードを記述する際に重複した式を手動で除去してしまうことが多い。CSE の入力としてもっとも重要なものはコンパイラが出力する中間コードである。例えば配列のインデックス計算などで生成されるもので、開発者が介在して手動で除去することができない。また、言語の特徴によって重複した式が多数作られる場合もある。たとえばC言語のマクロでは、マクロの展開により元のコードに現れない共通部分式が生成される。 CSE を実行する利点は大きく、広く用いられる最適化手法である。 CSE ではコンパイラが値を一時的に格納する変数の数に関して十分賢いものである必要がある。膨大な一時変数を作成するとレジスタが枯渇し、メモリを使用する必要を生じる。単純な演算結果を必要に応じて再計算するより時間がかかってしまう場合もある。 コンパイラ開発者は二種類の CSE を区別している.

新しい!!: スタックマシンと共通部分式除去 · 続きを見る »

割り込み

割り込み(わりこみ)とは、サービスの提供を受けるために待っている人の行列などの途中に強引に押し入ること。.

新しい!!: スタックマシンと割り込み · 続きを見る »

CDC 6600

CDC 6600 CDC 6600は、1964年から製造された、コントロール・データ・コーポレーション (CDC) の汎用コンピュータ。一般に世界で初めて成功したスーパーコンピュータと言われており、当時の最速のマシンの三倍程度の性能を誇った。1964年にIBM 7030から世界最高速の地位を奪い、1969年に後継機 CDC 7600 にその地位を譲った。.

新しい!!: スタックマシンとCDC 6600 · 続きを見る »

C言語

C言語(シーげんご)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発したプログラミング言語である。英語圏では単に C と呼んでおり、日本でも文書や文脈によっては同様に C と呼ぶことがある。.

新しい!!: スタックマシンとC言語 · 続きを見る »

CPython

CPython はPython プログラミング言語の最も広く用いられている標準の実装である。CPython は C言語で記述されている。CPython 以外に、製品としての品質をもつ Python 実装はJava で記述された Jython、共通言語ランタイム 用に記述された IronPython の2つがあり、またいくつかの実験的な実装もある。Classic Python というバクロニムが、'C' の別の意味として提案されている。 CPython はバイトコードインタプリタである。C を含むいくつかの言語での外部関数インターフェイスを持っており、Python 以外の言語の言語バインディングを明示的に書く場合に使用される。.

新しい!!: スタックマシンとCPython · 続きを見る »

組み込みシステム

組み込みシステム(くみこみシステム、英: Embedded system)とは、特定の機能を実現するために家電製品や機械等に組み込まれるコンピュータシステムのこと。.

新しい!!: スタックマシンと組み込みシステム · 続きを見る »

Dalvik仮想マシン

Dalvik仮想マシン(ダルビックかそうマシン)は、Androidプラットフォームで採用されていたレジスタベースの仮想マシン。およびGoogle社のエンジニアによって設計・開発されていた。Android 5.0よりAndroid Runtime(ART)に置き換えられた。.

新しい!!: スタックマシンとDalvik仮想マシン · 続きを見る »

遅延スロット

遅延スロット(ちえんスロット)またはディレイスロット(Delay slot)は、直前の命令が効力を発揮する前に実行される命令のスロット(位置)を指す。最も典型的な形態としては、RISCやDSPアーキテクチャでの分岐命令の直後の位置の命令がある。この命令は分岐が実際に行われる前に実行される。従って、その命令は(その場所が遅延スロットであることを理解していないと)無意味な位置にあるように見える。アセンブラは一般に自動的な命令の並べ替えを行い、コンパイラやプログラマが遅延スロットを気にせずにコードを書けるようにしている。.

新しい!!: スタックマシンと遅延スロット · 続きを見る »

計算機科学

計算機科学(けいさんきかがく、computer science、コンピュータ科学)とは、情報と計算の理論的基礎、及びそのコンピュータ上への実装と応用に関する研究分野である。計算機科学には様々な下位領域がある。コンピュータグラフィックスのように特定の処理に集中する領域もあれば、計算理論のように数学的な理論に関する領域もある。またある領域は計算の実装を試みることに集中している。例えば、プログラミング言語理論は計算を記述する手法に関する学問領域であり、プログラミングは特定のプログラミング言語を使って問題を解決する領域である。.

新しい!!: スタックマシンと計算機科学 · 続きを見る »

関数電卓

FX-77。このような太陽電池を使った1行表示の関数電卓は1980年代から登場した。 カシオFX-991ES (2005) はドットマトリクス表示になっている。 TI-84 Plus。典型的なグラフ電卓 関数電卓(かんすうでんたく)は、科学・工学・数学などに関わる機能を持った電卓である。教育にもよく使われている。日本語では、様々な関数の計算が可能なことからこのように呼ばれるが、英語では scientific calculator という呼称が一般的である。 欧米の高等教育分野ではグラフ電卓に取って代わられている。グラフ電卓は関数電卓およびプログラム電卓としての機能を備え、さらに入力データなどに基づいてグラフ(関数のグラフないし統計図表、チャート)を描画できる。関数電卓は金融市場向けの電卓ともオーバーラップする部分がある。 主なメーカーとしては、ヒューレット・パッカード、テキサス・インスツルメンツ、カシオ計算機、シャープ、キヤノンがある。 関数電卓の出現により、数表(や計算尺の初等関数の尺の機能)は、主要な役割を終えた。.

新しい!!: スタックマシンと関数電卓 · 続きを見る »

逆ポーランド記法

逆ポーランド記法(ぎゃくポーランドきほう、)は、数式やプログラムの記法の一種。演算子を被演算子の後にすることから、後置記法 (Postfix Notation) とも言う。 その他の記法として、演算子を被演算子の中間に記述する中置記法、前に記述する前置記法(ポーランド記法)がある。 逆ポーランド記法でも、演算子早出し逆ポーランド記法 ERP(early-operator reverse Polish notation)と、演算子遅出し(late-operator)逆ポーランド記法 LRP の分類があり、特に演算子早出し逆ポーランド記法は「その記号の配列順を些かも崩さずに和文に移せる」という特徴がある。 名称の由来は、演算子と被演算子の順序がポーランド記法の逆になっていることによる(「ポーランド記法」自体の由来についてはポーランド記法の記事を参照のこと)。.

新しい!!: スタックマシンと逆ポーランド記法 · 続きを見る »

Forth

Forth(フォース)は、スタック指向のプログラミング言語およびそのプログラミング環境である。Forth はしばしば、かつての習慣に従ってすべて大文字で綴られることもあるが、頭字語ではない。.

新しい!!: スタックマシンとForth · 続きを見る »

HP 3000

HP 3000シリーズは、ヒューレット・パッカード社が1973年に困難な開発を経てリリースしたミニコンピュータファミリである。最初の機種は性能問題から一旦回収された。このシリーズは最初にタイムシェアリング機能を搭載したオペレーティングシステム(OS)を搭載したミニコンピュータとなることを意図していた。信頼性が高く強力であったため、オフィスコンピュータ的な使われ方が主流であった。初期の機種は大きな筐体であったが、後の機種は机の下に収まる程度となった。 製品寿命はDECのVAXよりも長かった。2001年11月、後継である e3000 シリーズのサポート終了を5年後とすることが発表された。製品の新規販売は2003年までで、サポート終了までの移行期間は今のところ 2008年12月31日までとされている(当初、2006年末とされていたが延長された)。.

新しい!!: スタックマシンとHP 3000 · 続きを見る »

ICカード

ICカード(アイシーカード、; )とは、情報(データ)の記録や演算をするために集積回路 を組み込んだカードのことである。国際的にはスマートカード やチップカード とも呼ばれ、日本では、特に演算処理機能を持つものをスマートカードと呼ぶ。 カード内にRAMやROM、EEPROMといった半導体メモリを組み込むことにより、情報量が従来の磁気ストライプカードと比べて数十倍から数千倍になる。さらに、CPUやコプロセッサなどを内蔵することで、カード内部で情報処理が可能になるという特徴がある。.

新しい!!: スタックマシンとICカード · 続きを見る »

Java

Java(ジャバ)は、狭義ではプログラミング言語Javaを指す。広義では言語仕様以外にも、仕様が与えられているJavaクラスライブラリやJava仮想マシン、さらにはJDKやJREなどの公式のものをはじめとする、場合によってはサードパーティのものなどを含め曖昧にJavaプラットフォームと総称されるようなものなどのエコシステムなどを指すこともある。構文についてはJavaの文法の記事を参照。.

新しい!!: スタックマシンとJava · 続きを見る »

Java仮想マシン

ネイティブコードに変換されて実行される。Java APIとJVMの両者でJava実行環境 (JRE) を構成する。 Java仮想マシン (Java virtual machine、Java VM、JVM) は、Javaバイトコードとして定義された命令セットを実行するスタック型の仮想マシン。APIやいくつかのツールとセットでJava実行環境 (JRE) としてリリースされている。この環境を移植することで、さまざまな環境でJavaのプログラムを実行することができる。.

新しい!!: スタックマシンとJava仮想マシン · 続きを見る »

LIFO

LIFO(Last In, First Out, 後入れ先出し)。FILO(First In, Last Out)は同義語。 古いデータほど、長く残るデータ格納方式。 最初に入れたデータは、最後まで格納されており、それがなくなれば、格納場所は空になる。 プロセッサのスタックに、多く採用されている。.

新しい!!: スタックマシンとLIFO · 続きを見る »

MC6800

Motorola MC6800 MC6800(通称「6800」)は1974年にモトローラ社(現在はフリースケール・セミコンダクタに移管)が開発した8ビットマイクロプロセッサである。.

新しい!!: スタックマシンとMC6800 · 続きを見る »

MC68000

MC68000(エムシーろくまんはっせん)、68000は米・モトローラ(現NXPセミコンダクターズ)が開発したMPU(MPUはマイクロプロセッサを指すのにモトローラが使った語でマイクロプロセッシングユニットの略)である。略して68K(ろくはちケー)などとも。後継MPUも含めた同一アーキテクチャのシリーズを総称するときは、680x0と呼称される。モトローラ自体は周辺LSIを含めてM68000ファミリと呼称した。MC型番は量産ロットで、量産先行品はXC型番となる。.

新しい!!: スタックマシンとMC68000 · 続きを見る »

Mops

Mops (Mike's object oriented programming system、モップス) とは、 Forth 言語をベースにした、Macintosh向けのオブジェクト指向開発環境。.

新しい!!: スタックマシンとMops · 続きを見る »

Pascal

Pascal(パスカル)は、ニクラウス・ヴィルトの設計(デザイン)によるコンピュータ・プログラミング言語である。ALGOL(直接的にはその一派生である、ヴィルトが関与したALGOL W)などの影響があるが、個人の設計であることに由来する簡素だがよく整った言語仕様(構文と意味)を持つ。用途の中に教育を意識しており、構造化された制御構造など、その当時「良きプログラミングの慣習」と考えられていたことの影響もある。一方で批判者からは、あくまでも教育用に過ぎない言語だ、といったような評もあることにはあったが、PascalコンパイラをPascalで書ける(いわゆる言語処理系のブートストラップ)ことをはじめ、Pascalで書かれた#実用プログラム例は多くある。名前は、哲学者・数学者・科学者で、機械式計算機を製作するなど技術者でもあったブレーズ・パスカルにあやかったものである。.

新しい!!: スタックマシンとPascal · 続きを見る »

Pコードマシン

pコードマシンとは、プロセッサの一種であるが、ハードウェアではなくソフトウェアで、すなわちエミュレータや仮想機械のようなインタプリタ型のプログラムで実装されることを目的としたものである。この用語は、そのような仕様一般を指すこともあるが、多くの仕様はそれぞれ個々の名称を持っている。特にUCSD Pascalの p-Machine を指すことが多い。「p」の意味については、Pascal処理系の場合はPascalの頭文字ともされるが、他言語の場合はpseudo(を参照)やportableなどとされる。 このコンセプトは1966年ごろ、BCPLのやニクラウス・ヴィルトののPとして実装されたのが最初であるが、pコード (p-code) と呼ばれるようになったのは1970年代初期であった。pコードを生成する初期のコンパイラとしては、1973年、Nori、Ammann、Jensen、Hageli、Jacobi が開発した Pascal-P コンパイラと、ヴィルトが1975年に開発した Pascal-S コンパイラがある。 ソースコードからコンパイラのコード生成によってpコードが生成され、そのpコードはpコードマシンのエミュレータ、言い換えればインタプリタによって解釈実行される。商業的に十分意味があるとみて、pコードを直接実行するハードウェアが実装された例もある(例えば、Pascal MicroEngine)。.

新しい!!: スタックマシンとPコードマシン · 続きを見る »

PDP-11

PDP-11 は、ディジタル・イクイップメント・コーポレーション(DEC)が1970年代から1980年代に販売した16ビットミニコンピュータシリーズ。PDP-11 は DECのPDPシリーズのPDP-8コンピュータの主にリアルタイムシステムの後継であるが、両シリーズは10年間以上並存した。革新的機能をいくつか持ち、従来よりもプログラミングが容易になっていた。ミッドレンジのミニコンピュータとしての後継は32ビットのVAXである。 その設計上の特徴は、モトローラのMC68000などのマイクロプロセッサの設計に影響を及ぼしている。またPDP-11上のオペレーティングシステム (OS) の設計は他のOS、例えばCP/MやMS-DOSの設計に影響を及ぼしている。最初の公式にUNIXと名付けられたバージョンのOSは、1970年に PDP-11/20 上で動作した。PDP-11のプログラミング上の低レベルな特徴とC言語の言語要素の類似は非常によく言われてはいるが、意図的にそのように設計したわけではない。たとえば、C言語の ++ や -- は、PDP-11より古い、PDP-7に実装したB言語に由来していて、ハードウェアの持っていた機能からの影響もあるだろうが、いくつかの特徴はハードウェアからというよりもトンプソンのオリジナルであろうとリッチーが書き残している(:en:Increment and decrement operators#Historyを参照)。 DECtape装置が見える.

新しい!!: スタックマシンとPDP-11 · 続きを見る »

PostScript

PostScript(ポストスクリプト)は、アドビシステムズが開発している、1984年に発表したページ記述言語。 スタック指向型のプログラミング言語で、様々な計算・処理と共に描画命令を実行することができる。事前にデータをスタックに格納し、後の命令がデータを処理するというモデルで実行される。そのために記述法が逆ポーランド記法で一貫しており、名前は「追伸」の英語「post script」に後置記法といった意味を掛けている。.

新しい!!: スタックマシンとPostScript · 続きを見る »

RISC

RISC(りすく、Reduced Instruction Set Computer、縮小命令セットコンピュータ)は、コンピュータの命令セットアーキテクチャ(ISA)の設計手法の一つで、命令の種類を減らし、回路を単純化して演算速度の向上を図るものである。なお、RISCが提唱されたときに、従来の設計手法に基づくアーキテクチャは対義語としてCISCと呼ばれるようになった。 RISCを採用したプロセッサ (CPU) をRISCプロセッサと呼ぶ。RISCプロセッサの例として、ARM、MIPS、POWER、SPARCなどが知られる。.

新しい!!: スタックマシンとRISC · 続きを見る »

SECDマシン

SECDマシンとは、関数型言語のコンパイラのターゲット(目的機械)を意図し、後に大きな影響を与えた抽象機械である。SECD は Stack(スタック)、Environment(環境)、Code(コード)、Dump(ダンプ)の略であり、それぞれ仮想機械にあるレジスタの名称となっている。これらのレジスタはメモリ上の連結リストを指している。 Peter J. Landinの考案によるもので、1964年のComputer Journal誌が初出である。ラムダ計算式を評価するものだが、Landin の発表した説明は非常に抽象的で、(操作的意味論のように)実装にかなりの自由度が与えられていた。SECDマシンはより詳細化された形態で説明されることが多く、例えば Peter Henderson の Lispkit Lisp コンパイラは SECDマシンをベースとして1980年に登場している。以降、いくつかの実験的コンパイラが SECDマシンをターゲットとして使用してきた。また、ISWIMを提案した "The Next 700 Programming Languages" でも参考文献として挙げられている。 1989年、カルガリー大学の研究者がSECDマシンをハードウェアで実装する研究を行った。.

新しい!!: スタックマシンとSECDマシン · 続きを見る »

Streaming SIMD Extensions

トリーミングSIMD拡張命令 (Streaming SIMD Extensions, SSE) は、インテルが開発したCPUのSIMD拡張命令セット、およびその拡張版の総称である。.

新しい!!: スタックマシンとStreaming SIMD Extensions · 続きを見る »

Sun Ray

Sun Ray 1本体 Sun Ray 1が起動しているところ。接続先はJava Desktop Systemが表示されている Sun Ray(さんれい)とはオラクル(以前はサン・マイクロシステムズ)が発売しているシンクライアントシリーズないしソリューションとしての総称。.

新しい!!: スタックマシンとSun Ray · 続きを見る »

Tomasuloのアルゴリズム

Tomasulo のアルゴリズムとは、1967 年にIBMのRobert Tomasuloによって考案されたコンピュータハードウェアのためのアルゴリズムで、連続した複数の命令が互いの依存関係が解けるまで実行できないような状況で、順序を入れ替えることにより実行できるようにする (アウト・オブ・オーダー実行)ためのものである。このアルゴリズムは、IBM System/360 Model 91 の浮動小数点演算ユニットで最初に実装された。 このアルゴリズムは レジスタ・リネーミングを用いるという点で、CDC 6600のScoreboardingとは異なる。Scoreboardingは、書き込み後の書き込み (WAW) と 読み込み後の書き込み (WAR) によるハザードを、命令の実行を一時停止させることで解決するが、レジスタリネーミングでは命令を連続して発行し続けることが可能である。また、Tomasuloのアルゴリズムは計算結果を必要とするすべての Reservation Station に対してブロードキャストを行うcommon data bus (CDB) と呼ばれる仕組みを用いる。これによって、Scoreboardingを用いた場合には停止してしまうような命令列が、より多く並列実行可能になる。 Robert Tomasuloは、1997年このアルゴリズムによりエッカート・モークリー賞を受賞した。.

新しい!!: スタックマシンとTomasuloのアルゴリズム · 続きを見る »

UCSD p-System

UCSD p-System または UCSD Pascal System とは、UCSD Pascal に基づいた移植性の高いオペレーティングシステムである。1978年、カリフォルニア大学サンディエゴ校(UCSD)で開発された。.

新しい!!: スタックマシンとUCSD p-System · 続きを見る »

VAX

VAX (バックス) は、1970年代中ごろディジタル・イクイップメント・コーポレーション (DEC) が開発し販売した32ビットのミニコンピュータのシリーズ、及び同シリーズの命令セットアーキテクチャ (ISA) を指すこともある。前述のように32ビットアーキテクチャだが、同時に16ビット時代の最も人気のあったモデルであるPDP-11の後継ないし代替を意識した互換命令などを持っている点では、PDP-11の拡張という面もあるアーキテチャでもある。 直交性の高い命令セット(機械語)とページング方式の仮想記憶が特徴である。VAXには、キュー挿入/削除命令や多項式計算命令などといった複雑な処理をする命令があり、豊富なアドレッシングモードとの組み合わせ-->といった特徴がある。 後の64ビット化では、RISCマイクロプロセッサのAlphaがデザインされた。OSのVMSはOpenVMSという名称となっている。.

新しい!!: スタックマシンとVAX · 続きを見る »

X64

x64またはx86-64とは、x86アーキテクチャを64ビットに拡張した命令セットアーキテクチャ。 実際には、AMDが発表したAMD64命令セット、続けてインテルが採用したIntel 64命令セット(かつてIA-32eまたはEM64Tと呼ばれていた)などを含む、各社のAMD64互換命令セットの総称である。x86命令セットと互換性を持っていることから、広義にはx86にx64を含む場合がある。 なお、インテルはIntel 64の他にIA-64の名前で64ビット命令セットアーキテクチャを開発・展開しているが、これはx64命令セット、x86命令セットのいずれとも互換性がない。.

新しい!!: スタックマシンとX64 · 続きを見る »

X86

x86(エックスはちろく)は、Intel 8086、およびその後方互換性を持つマイクロプロセッサの命令セットアーキテクチャの総称。16ビットの8086で登場し、32ビット拡張の80386(後にIA-32と命名)、64ビット拡張のx64、広義には更にAMDなどの互換プロセッサを含む。 なおインテルのIA-64は全く異なる。.

新しい!!: スタックマシンとX86 · 続きを見る »

X87

x87はx86アーキテクチャー命令セットのうち浮動小数点数関係のサブセットのことである。もともとはx86系CPUと協調して動作するオプションの浮動小数点数コプロセッサでサポートされる8086命令セットの拡張機能であった。これらのマイクロチップは後ろに"87"という名前が付いていた。これはNPX(Numeric Processor eXtension)としても知られる。基本命令セットに対する他の拡張と同様、x87命令は作業プログラムの構築を厳重には必要とせず、共通の数値処理のハードウェアおよびマイクロコードの実装を提供し、これらの処理を機械語ルーチンで合わせるよりもはるかに高速に行うことができる。x87命令セットは加算、減算、比較の基本的な浮動小数点演算だけでなく、タンジェント関数やその逆関数などのより複雑な数値演算を含む。 Intel 80486以降のほとんどのx86プロセッサーはこれらのx87命令をメインCPUに含んでいるが、この用語は今でも命令セットの一部を指すのに用いられることがある。PCにおいてx87命令が標準になる前、コンパイラやプログラマは浮動小数点演算を実行するためにかなり遅いライブラリコールを使用していた。この手法は(低価格の)組み込みシステムでは依然一般的である。.

新しい!!: スタックマシンとX87 · 続きを見る »

構文解析

構文解析(こうぶんかいせき、syntactic analysis あるいは parse)とは、文章、具体的にはマークアップなどの注記の入っていないベタの文字列を、自然言語であれば形態素に切分け、さらにその間の関連(修飾-被修飾など)といったような、統語論的(構文論的)な関係を図式化するなどして明確にする(解析する)手続きである。自然言語については自然言語処理における要点のひとつであり、プログラミング言語など形式言語の場合は、形式文法に従い構文木を得る。構文解析を行う機構を構文解析器(parser)と呼ぶ。.

新しい!!: スタックマシンと構文解析 · 続きを見る »

有限オートマトン

有限オートマトン(finite automaton)または有限状態機械(finite state machine, FSM)とは、有限個の状態と遷移と動作の組み合わせからなる数学的に抽象化された「ふるまいのモデル」である。デジタル回路やプログラムの設計で使われることがあり、ある一連の状態をとったときどのように論理が流れるかを調べることができる。有限個の「状態」のうち1つの状態をとる。ある時点では1つの状態しかとらず、それをその時点の「現在状態」と呼ぶ。何らかのイベントや条件によってある状態から別の状態へと移行し、それを「遷移」と呼ぶ。それぞれの現在状態から遷移しうる状態と、遷移のきっかけとなる条件を列挙することで定義される。 有限オートマトンは様々な問題に応用でき、半導体設計の自動化、通信プロトコル設計、構文解析などの工学面での応用がある。生物学や人工知能研究では状態機械(群)を使って神経系をモデル化し、言語学では自然言語の文法をモデル化したりする。.

新しい!!: スタックマシンと有限オートマトン · 続きを見る »

.NET Framework

Microsoft.NET Framework(マイクロソフト ドットネット フレームワーク)は、マイクロソフトが開発したアプリケーション開発・実行環境である。 Windowsアプリケーションだけでなく、XML WebサービスやウェブアプリケーションなどWebベースのアプリケーションなども包括した環境となっている。一般に.NETという場合、.NET全体の環境を指す。.

新しい!!: スタックマシンと.NET Framework · 続きを見る »

ここにリダイレクトされます:

スタックモデル

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »