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

スタック

索引 スタック

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

69 関係: ALGOLApplication Binary Interface力まかせ探索両端キュー主記憶装置幅優先探索交換法則後入先出法マイクロコントローラネスティングバロース B5000バッファオーバーランバックトラッキングランダウの記号レジスタマシンプログラミング言語プロセッサヒューリスティクスヒューレット・パッカードヒープ領域データデータ構造分枝限定法命令 (コンピュータ)アルゴリズムアドレッシングモードキュー (コンピュータ)クロスワードパズルコンピュータコンピュータチェスコールスタックシフトレジスタスタックマシンサブルーチン再帰割り込み (コンピュータ)C言語高水準言語関数電卓配列連結リスト逆ポーランド記法FIFOForthIEEEIntel 4004Intel 8087Java仮想マシンLIFOLISP...LuaMC68000Mind (プログラミング言語)PA-RISCPコードマシンPDP-11PIC (コントローラ)PostScriptX86X87抽象データ型探索機械語深さ優先探索木構造 (データ構造)文脈依存言語文脈自由言語日本語プログラミング言語1988年 インデックスを展開 (19 もっと) »

ALGOL

ALGOL(アルゴル)は、命令型プログラミング言語ファミリーの1つファミリー名は大文字/小文字をまじえて表記される場合 と、全て大文字で表記される場合 (ALGOL 68) がある。本項目では ALGOL で統一する。。名前「ALGOL」は「アルゴリズム言語」を意味する英語「algorithmic language」に由来する。1950年代中ごろに開発され、多くの言語に影響を及ぼし、ACMや教科書や学術論文などでアルゴリズム記述のデファクトスタンダードとして30年以上使われた。現代の多くの言語が「ALGOL系」あるいは「ALGOL風」(algol-like) とされているという意味で、ほぼ同世代の高水準言語である FORTRAN、LISP、COBOL に比べて最も成功したと言うこともできる。FORTRANで明らかとなった問題を防ぐよう設計され、BCPL、B、Pascal、Simula、Cといった様々なプログラミング言語に影響を与えた。ALGOLはLisp以外としては「begin と end で囲む」という構文によるブロック構造を導入し、制御構造を自在に入れ子(ネスト)にできる初の広まった言語となったFORTRANにはそのような構造は無い。COBOLではピリオドで全ての入れ子が終端するという仕様だったため(現在はend-ifなどを使う)、入れ子で書ける論理に制限があり、酷いバグの原因にもなりやすかった。。また構文の形式的定義を真剣に検討した最初のプログラミング言語でもあり、"Algol 60 Report" で導入されたバッカス・ナウア記法は、その後のコンピュータ言語等の構文の形式的定義を示す手法として(プログラミング言語だけに限られず)定番の記法となっている。.

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

Application Binary Interface

Application Binary Interface(アプリケーション・バイナリー・インタフェース、ABI)とは、アプリケーション(ユーザ)プログラムとシステム(OSやライブラリ)との間の、バイナリレベルのインタフェースである。また、アプリケーション相互間や、それらの部品(プラグイン等)とのバイナリインタフェースもある。 ABIはアプリケーションプログラミングインタフェース (API) とは異なる。APIはソースコードとライブラリ間のインタフェースを定義したものであり、同じAPIをサポートしたシステム間では同じソースコードをコンパイルして利用できる。一方、ABIはオブジェクトコードレベルのインタフェースであり、互換ABIをサポートするシステム間では同じ実行ファイルを変更無しで動作させることができる。.

新しい!!: スタックとApplication Binary Interface · 続きを見る »

力まかせ探索

力まかせ探索(ちからまかせたんさく、Brute-force search)またはしらみつぶし探索(Exhaustive search)は、単純だが非常に汎用的な計算機科学の問題解決法であり、全ての可能性のある解の候補を体系的に数えあげ、それぞれの解候補が問題の解となるかをチェックする方法である。 バックトラッキングと混同されやすいが、バックトラッキングでは解候補の大部分を明示的に探索することなく捨てることができる。例えば、エイト・クイーンは、8個のクイーンをチェスボード上で互いに取り合えない状態で配置するものである。力まかせ探索では 64! / 56!.

新しい!!: スタックと力まかせ探索 · 続きを見る »

両端キュー

両端キュー(りょうたんキュー、double-ended queue)またはデック(deque)は、計算機科学における抽象データ型の1つで、先頭または末尾で要素を追加・削除できるキューである。head-tail linked list とも。.

新しい!!: スタックと両端キュー · 続きを見る »

主記憶装置

主記憶装置(しゅきおくそうち)は、記憶装置の分類で、「補助記憶装置」が一般に外部バスなど比較的CPUから離れていて大容量だが遅い記憶装置を指すのに対し、コンピュータのメインバスなどに直接接続されている記憶装置で、レイテンシやスループットは速いが比較すると小容量である。特に、CPUが入出力命令によって外部のインタフェースを操作するのではなく、「ロード・ストア命令」や、さらには通常の加算などの命令において直接読み書きできる対象であるものを指す。メインメモリ、一次記憶装置とも。.

新しい!!: スタックと主記憶装置 · 続きを見る »

幅優先探索

ドイツの都市間の接続を示した例 フランクフルトから幅優先検索を行った場合にできる木構造 幅優先探索(はばゆうせんたんさく、breadth first search)はグラフ理論(Graph theory)において木構造(tree structure)やグラフ(graph)の探索に用いられるアルゴリズム。アルゴリズムは根ノードで始まり隣接した全てのノードを探索する。それからこれらの最も近いノードのそれぞれに対して同様のことを繰り返して探索対象ノードをみつける。「横型探索」とも言われる。 幅優先探索は解を探すために、グラフの全てのノードを網羅的に展開・検査する。最良優先探索とは異なり、ノード探索にヒューリスティクスを使わずに、グラフ全体を目的のノードがみつかるまで、目的のノードに接近しているかどうかなどは考慮せず探索する。.

新しい!!: スタックと幅優先探索 · 続きを見る »

交換法則

交換法則(こうかんほうそく、Commutative property) は数学における法則の一つ。可換則(かかんそく)や交換律(こうかんりつ)ともいう。.

新しい!!: スタックと交換法則 · 続きを見る »

後入先出法

後入先出法(あといれさきだしほう)とは、後に取得したものから順に払出されると仮定して、棚卸資産の取得原価を払出原価と期末原価に配分する方法である。英語では、LIFO(Last In, First Out)という。対義語は先入先出法(FIFO)。 後入先出法は2010年4月1日以後開始する事業年度から廃止すると、2008年9月26日 企業会計基準委員会が発表した。(改正企業会計基準第9号『棚卸資産の評価に関する会計基準』より) なお、原価計算における材料の消費価格の計算を定めた『原価計算基準』11(3)においては後入先出法が廃止されていないので、企業の内部資料として使用する限りにおいてはこの方法を使うことも可能である。.

新しい!!: スタックと後入先出法 · 続きを見る »

マイクロコントローラ

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

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

ネスティング

構造化プログラミングにおけるネスティング(Nesting)、ネスト、入れ子とは、プログラムの構造が再帰的に繰り返されて記述されること。このような構造をネスト構造(Nested structure)、入れ子構造と呼ぶ。この記事ではC言語風の擬似コードを用いるが、ネスティングの概念はC言語に限らない。また、名前空間などC言語にない機能についても記述している。.

新しい!!: スタックとネスティング · 続きを見る »

バロース 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 · 続きを見る »

バッファオーバーラン

バッファオーバーラン(buffer overrun)、バッファオーバーフロー(buffer overflow)とは、コンピュータのプログラムにおける、設計者が意図していないメモリ領域の破壊が起こされるバグのひとつ、またはそれにより引き起こされた現象を言う。 バッファオーバーランはコンピュータセキュリティ上の深刻なセキュリティホールとなりうるため、バッファオーバーランが起こる可能性のあるコンピュータプログラムはすぐに修正する必要がある。 バッファオーバーランは、現在もっとも重大なセキュリティホールのひとつと考えられている。あるプログラムでバッファオーバーランの脆弱性が発見されると、一般に高い優先度で修正作業が行われ、更新バージョンのプログラムや修正パッチの公開・配布などが行われる。.

新しい!!: スタックとバッファオーバーラン · 続きを見る »

バックトラッキング

バックトラッキング (backtracking)は、制約充足問題の解を探索する戦略の一種で、力まかせ探索を改良したもの。「バックトラック」という用語は、アメリカの数学者デリック・ヘンリー・リーマー (Derrick Henry Lehmer)が1950年代に作った造語である。.

新しい!!: スタックとバックトラッキング · 続きを見る »

ランダウの記号

ランダウの記号(ランダウのきごう、Landau symbol)は、関数の極限における値の変化度合いに、おおよその評価を与えるための記法である。 ランダウの漸近記法 (asymptotic notation)、ランダウ記法 (Landau notation) あるいは主要な記号として O (オーもしくはオミクロン Ο。数字の0ではない)を用いることから(ランダウの)O-記法、ランダウのオミクロンなどともいう。 記号 O は「程度」の意味のオーダー(Order)から。 なおここでいうランダウはエドムント・ランダウの事であり、『理論物理学教程』の著者であるレフ・ランダウとは別人である。 ランダウの記号は数学や計算機科学をはじめとした様々な分野で用いられる。.

新しい!!: スタックとランダウの記号 · 続きを見る »

レジスタマシン

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

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

プログラミング言語

プログラミング言語(プログラミングげんご、programming language)とは、コンピュータプログラムを記述するための形式言語である。なお、コンピュータ以外にもプログラマブルなものがあることを考慮するならば、この記事で扱っている内容については、「コンピュータプログラミング言語」(computer programming language)に限定されている。.

新しい!!: スタックとプログラミング言語 · 続きを見る »

プロセッサ

プロセッサ は、コンピュータシステムの中で、ソフトウェアプログラムに記述された命令セット(データの転送、計算、加工、制御、管理など)を実行する(=プロセス)ためのハードウェアであり、演算装置、命令や情報を格納するレジスタ、周辺回路などから構成される。内蔵されるある程度の規模の記憶装置までを含めることもある。プロセッサー、プロセサ、プロセッシングユニット、処理装置(しょりそうち)ともいう。「プロセッサ」は処理装置の総称で、システムの中心的な処理を担うものを「CPU()」(この呼称はマイクロプロセッサより古くからある)、集積回路に実装したものをマイクロプロセッサ、またメーカーによっては(モトローラなど)「MPU()」と呼んでいる。 プロセッサの構成要素の分類として、比較的古い分類としては、演算装置と制御装置に分けることがある。また、理論的な議論では、厳密には記憶装置であるレジスタすなわち論理回路の用語で言うところの順序回路の部分を除いた、組み合わせ論理の部分のみを指すことがある(状態機械モデルと相性が悪い)。の分類としては、実行すべき命令を決め、全体を制御するユニットと、命令を実行する実行ユニットとに分けることがある。.

新しい!!: スタックとプロセッサ · 続きを見る »

ヒューリスティクス

ヒューリスティック(heuristic, Heuristik)とは、必ず正しい答えを導けるわけではないが、ある程度のレベルで正解に近い解を得ることができる方法である。ヒューリスティックスでは、答えの精度が保証されない代わりに、回答に至るまでの時間が少ないという特徴がある。主に計算機科学と心理学の分野で使用される言葉であり、どちらの分野での用法も根本的な意味は同じであるが、指示対象が異なる。すなわち、計算機科学ではプログラミングの方法を指すが、心理学では人間の思考方法を指すものとして使われる。なお、論理学では仮説形成法と呼ばれている。.

新しい!!: スタックとヒューリスティクス · 続きを見る »

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

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

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

ヒープ領域

ヒープ領域(heap memory)はコンピュータープログラミングにおいて、動的に確保可能なメモリの領域。ヒープ (heap) とは、『山積み』という言葉の中の『山』をさす英単語である。 データ構造のヒープと直接的な関係があるかどうかは、ヒープ領域の構造の設計、保守にデータ構造のヒープの技術を使うかどうかに依る(あらゆるデータ構造とヒープ領域の関係について「直接的な関係があるかどうかは、ヒープ領域の構造の設計、保守にそのデータ構造の技術を使うかどうかに依る」ということが言えるので、データ構造のヒープについても、こう主張することが絶対的な間違いだとは言い切れない)。 ヒープ領域は、2種類のラベルを持つ双方向リストによって構成されている。初期状態では、リストはひとつの「未使用」ノードが全体を占めていて、メモリ確保関数(C言語のmalloc, C++のnew等)によって、「未使用」ノードから必要な分を切り取って「使用中」ノードと「未使用」ノードに分ける。確保したメモリが不要になった場合には、メモリ解放関数(C言語のfree, C++のdelete等)によってノードのラベルを「未使用」に書き換える。解放のつど、あるいはカウンタによって一定水準に達した時、連続した個々の「未使用」ノードを結合し、大きな「未使用」ノードに還元する。「未使用」ノードが不足した場合には、オペレーティングシステムに領域拡大を要求しヒープ領域を拡大するか、飛び飛びの未使用領域を連続な未使用領域に統合する。これをごみ集め(garbage collection)という。 ヒープ領域により、変数を動的に確保できる利点がある。欠点としては領域の確認・確保の時間にばらつきがあり処理時間の見積もりが困難になることと、領域の確保と解放の繰り返しによりヒープ上にどこからも参照しない領域が発生することがある。この領域を塵(garbage)という。 「未使用ノード」と「使用中」ノードが混在、つまり塵によりヒープの未使用領域がバラバラに分断された状態をフラグメンテーション状態と呼ぶ。.

新しい!!: スタックとヒープ領域 · 続きを見る »

データ

データ(data)とは、事実や資料をさす言葉。言語的には複数形であるため、厳密には複数の事象や数値の集まりのことを指し、単数形は datum(データム)である。.

新しい!!: スタックとデータ · 続きを見る »

データ構造

データ構造(データこうぞう、data structure)は、計算機科学において、データの集まりをコンピュータの中で効果的に扱うため、一定の形式に系統立てて格納するときの形式のことである。 ソフトウェア開発において、データ構造についてどのような設計を行うかは、プログラム(アルゴリズム)の効率に大きく影響する。そのため、さまざまなデータ構造が考え出されている。 多くのプログラムの設計において、データ構造の選択は主要な問題である。これは大規模システムの構築において、実装の困難さや質、最終的なパフォーマンスはベストのデータ構造を選択したかどうかに大きく依存してきたという経験の結果である。多くの場合、データ構造が決まれば、利用するアルゴリズムは比較的自明に決まる。しかし場合によっては、順番が逆になる。つまり、与えられた仕事をこなす最適なアルゴリズムを使うために、そのアルゴリズムが前提としている特定のデータ構造が選択される。いずれにしても適切なデータ構造の選択は極めて重要である。 この洞察は、多くの定式化された設計手法やプログラミング言語において、データ構造がアルゴリズムよりもキーとなる構成要素となっていることに現れている。大半の言語は異なるアプリケーションにおいてデータ構造を安全に再利用できるよう、実装の詳細をインターフェイスの背後に隠蔽するような、モジュール化のしくみを備えている。C++やJavaといったオブジェクト指向プログラミング言語はクラスをこの目的に用いている。 データ構造は専門的なプログラミングにとって非常に重要なので、C++におけるSTLや、Java API、および.NET Frameworkのようなプログラミング言語の標準ライブラリや環境において多くのデータ構造がサポートされている。 データ構造が実装を表すのかインターフェースを表すのかについてはいくらか議論がある。どのように見えるかは相対的な問題なのかもしれない。データ構造は2つの関数の間にあるインターフェイスとして見ることもできるし、データ型に基づいて構成されたストレージにアクセスする方法を実装したものとして見ることもできる。.

新しい!!: スタックとデータ構造 · 続きを見る »

分枝限定法

分枝限定法(ぶんしげんていほう、branch and bound, BB)は、各種最適化問題(特に離散最適化と組合せ最適化)の最適解を求める汎用アルゴリズムである。分枝操作(branching operation)と限定操作(bounding operation)から構成される。全ての解候補を体系的に列挙するもので、最適化された量の上限と下限の概算を使って、最適でない候補は「ひとまとめに」捨てられる。 1960年、A.

新しい!!: スタックと分枝限定法 · 続きを見る »

命令 (コンピュータ)

ンピュータにおいて、命令(めいれい)とはCPUが処理する操作のこと。通常、命令操作部と複数のオペランドからなる。あるいは操作者がコンピュータに入力する簡易な書式による指示の総称として用いられることもある。.

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

アルゴリズム

フローチャートはアルゴリズムの視覚的表現としてよく使われる。これはランプがつかない時のフローチャート。 アルゴリズム(algorithm )とは、数学、コンピューティング、言語学、あるいは関連する分野において、問題を解くための手順を定式化した形で表現したものを言う。算法と訳されることもある。 「問題」はその「解」を持っているが、アルゴリズムは正しくその解を得るための具体的手順および根拠を与える。さらに多くの場合において効率性が重要となる。 コンピュータにアルゴリズムをソフトウェア的に実装するものがコンピュータプログラムである。人間より速く大量に計算ができるのがコンピュータの強みであるが、その計算が正しく効率的であるためには、正しく効率的なアルゴリズムに基づいたものでなければならない。.

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

アドレッシングモード

アドレッシングモード(Addressing Mode)は、CPUの命令セットアーキテクチャ(ISA)の一部を構成する。プロセッサの命令には操作対象をオペランドで指定するものがあり、その指定方法の詳細がアドレッシングモードと呼ばれるものである。したがって、広義のアドレッシングモードにはレジスタを指定する場合も、値が命令のオペランドとして直接与えられている場合も含まれるが、狭義のアドレッシングモードはオペランドとして使用すべきメモリ領域を指定するものとみなされる。 プログラミングの観点から言えば、アドレッシングモードが重視されるのはコンパイラ開発やアセンブリ言語でプログラミングする場合である。.

新しい!!: スタックとアドレッシングモード · 続きを見る »

キュー (コンピュータ)

ュー(queue)、あるいは待ち行列はコンピュータの基本的なデータ構造の一つ。データを先入れ先出しのリスト構造で保持するものである。キューからデータを取り出すときには、先に入れられたデータから順に取り出される。キューにデータを入れることをエンキュー、取り出すことをデキューという。 プリンタへの出力処理や、ウィンドウシステムのメッセージハンドラ、プロセスの管理など、データを入力された順番通りに処理する必要がある処理に用いられる。 キューの変形として、先頭と末尾の両端から入出力を行えるものを両端キューという。 キューとは逆に後入れ先出しのリスト構造を持つデータバッファをスタックと呼ぶ。.

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

クロスワードパズル

ワードの枠 クロスワードパズル(単にクロスワードとも表記される)は、「カギ」と呼ばれる文章によるヒントを元に、タテヨコに交差したマスに言葉を当てはめてすべての白マスを埋めるパズル。通常、四角形であり、文字の入る白マスと入らない黒マスから成り、白マスにはカギを配置するための数字が振られている。日本語のクロスワードパズルの解にはカタカナを用いることが多い。.

新しい!!: スタックとクロスワードパズル · 続きを見る »

コンピュータ

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

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

コンピュータチェス

ンピュータチェスは、コンピュータが指すチェスのことである。 コンピュータの黎明期からコンピュータにチェスをさせるという試みは行なわれ、コンピュータの歴史と、コンピュータチェスの歴史は並行して歩んできた。黎明期には、人間を相手にチェスのゲームを行うことを念頭に置いて開発されていたが、現在では複数の対局からなる番勝負において世界チャンピオンに無敗で勝利するなど人間はほぼコンピュータに勝てなくなり、事実上チャンピオンとなっている。一方で、コンピュータ同士の対局も盛んに行われるようになっている。.

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

コールスタック

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

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

シフトレジスタ

フトレジスタ(Shift register)には アナログシフトレジスタとディジタルシフトレジスタがあるが単にシフトレジスタという場合殆どの場合デジタルのそれを指すのでここではデジタルシフトレジスタについて述べる。 複数のフリップフロップをカスケード接続したデジタル回路であり、データがその回路内を移動(シフト)していくよう構成したもの。.

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

スタックマシン

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

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

サブルーチン

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

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

再帰

再帰(さいき)は、あるものについて記述する際に、記述しているものそれ自身への参照が、その記述中にあらわれることをいう。定義において、再帰があらわれているものを再帰的定義という。 主に英語のrecursionとその派生語の訳にあてられる。他にrecurrenceの訳(回帰#物理学及び再帰性を参照のこと)や、reflexiveの訳として「再帰」が使われることがある。数学的帰納法との原理的な共通性から、recursionの訳として数学では「帰納」を使うことがある。.

新しい!!: スタックと再帰 · 続きを見る »

割り込み (コンピュータ)

割り込み(わりこみ)とは、コンピュータがその周辺機器などから受け取る要求の一種である。現在の多くのCPUは、割り込みを処理するための機能を備えている。.

新しい!!: スタックと割り込み (コンピュータ) · 続きを見る »

C言語

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

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

高水準言語

水準言語(high-level programming language: こうすいじゅんげんご、高級言語とも)とは、記述の抽象度が高いプログラミング言語のことである。対義語は機械語やアセンブリ言語を指す「低水準言語」である。「高級言語」の対は「低級言語」である。.

新しい!!: スタックと高水準言語 · 続きを見る »

関数電卓

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

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

配列

この記事では、コンピュータ・プログラムにおいて配列(はいれつ、array)と呼ばれているデータ構造およびデータ型について説明する。計算科学方面ではベクトルという場合もある。また、リストも参照。一般に、添え字で個々の要素を区別する。.

新しい!!: スタックと配列 · 続きを見る »

連結リスト

連結リスト(れんけつリスト、Linked list)は、最も基本的なデータ構造の1つであり、他のデータ構造の実装に使われる。リンクリスト、リンクトリストとも表記される。 一連のノードが、任意のデータフィールド群を持ち、1つか2つの参照(リンク)により次(および前)のノードを指している。連結リストの主な利点は、リスト上のノードを様々な順番で検索可能な点である。連結リストは自己参照型のデータ型であり、同じデータ型の別のノードへのリンク(またはポインタ)を含んでいる。連結リストは場所が分かっていれば、ノードの挿入や削除を定数時間で行うことができる(場所を探すのにかかる時間はリスト上の順番の条件などにも依存するし、後述する片方向リストなのか双方向リストなのかにも依存する)。連結リストにはいくつかの種類があり、片方向リスト、双方向リスト、線形リスト、循環リストなどがある。 連結リストは多くのプログラミング言語で実装可能である。LISP や Scheme 、Prologといった言語は組み込みでこのデータ構造を持っていて、連結リストにアクセスするための操作も組み込まれている。手続き型やオブジェクト指向型の言語(C言語、C++、Java)では、連結リストを作るには mutable(更新可能)な参照を必要とする。.

新しい!!: スタックと連結リスト · 続きを見る »

逆ポーランド記法

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

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

FIFO

FIFO(ファイフォ、フィフォ、フィーフォー)はFirst In, First Outを表す頭字語である。先入れ先出しと訳されることがある。 この言葉はキューの動作原理を表すものであり、キューに入っているどんな要素の組に対しても、先に入ったものを先に処理して出し、後に入ってきたものは先に入ったものより後から処理して出す、というように、出入りにおいて順序が保存されることを意味している(厳密には出入りのみを定義しており、処理順ではない)。日本語の俗な慣用表現では「ところてん式」も同じものを指す。 たとえば優先度付きキューはキューの一種であるが、FIFOではない。優先順位によって順序が入れ替わるからである。待ち行列理論における、FIFOキューについての厳密な定義もある。 FIFOは、いくつかの異なる文脈で用いられる。すなわち一般概念のこともあれば、特定の実装のこともある。以下ではそれぞれを解説するが、これが全てではない。たとえばもっとくだけた感じで、同時通訳のような情報の処理方法をFIFOと呼ぶこともある。.

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

Forth

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

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

IEEE

IEEE(アイ・トリプル・イー、The Institute of Electrical and Electronics Engineers, Inc.)は、アメリカ合衆国に本部を持つ電気工学・電子工学技術の学会である。.

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

Intel 4004

4004 4004(よんまるまるよん、と読まれることが多い)は、米国インテル社によって開発された1チップのマイクロプロセッサであり、軍用のMP944、組み込み用のTI製TMS-1000等とほぼ同時期の、世界最初期のマイクロプロセッサのひとつである。周辺ファミリICを含めてMCS-4 Micro Computer Set、あるいは略し単にMCS-4とも呼ぶ。 1971年発表、4ビットマイクロプロセッサである。クロック周波数は、500kHzから741kHzである。回路構成はクロック同期設計で、pMOSプロセスで3mm×4mmのチップ(ダイ)の上に2,300個のトランジスタを集積、10μm (0.01mm) ピッチのプロセス・ルールで製造された。当時のICとして標準的な16ピンDIPのパッケージに収納するため、物理的に4ビット幅のバスを、アドレスとデータで時分割で使用している。.

新しい!!: スタックとIntel 4004 · 続きを見る »

Intel 8087

Intel 8087は、インテルの16ビットCPU、i8086およびi8088のために用意されていた数値演算コプロセッサ。インテル製としては初の数値演算コプロセッサである。8087を装着することによって、プログラムの処理内容にもよるが、20%~500%の性能改善が期待できた。 8086は数値演算に関して、整数演算命令しか備えていないため、8086だけで浮動小数点演算を行うには別途ライブラリを用意する必要があった。8087を8086の搭載されたコンピュータに装着すると、IEEE 754形式の浮動小数点計算の命令をあたかもひとつのCPUで実行しているかのように使うことができるようになる。8087は8086と共通のバス接続され、8086の実行する命令を常時監視する。8086では無効命令(ESC) となる浮動小数点計算の命令を検出すると、8086側で発生する適切なアドレスモードにより追加OPコードおよびオペランドを自身内部にロードし、浮動小数点命令を処理する。8087によって新たに利用できる命令はFADD(加算命令)やFMUL(乗算命令)など60個。 8087などのインテル製の数値演算コプロセッサ(x87)は、AX~DXのようにプログラマが随時指定できる汎用レジスタではなく、8レベルの80ビット浮動小数点レジスタスタックを持ち、演算命令はスタックトップの1つまたは複数の値を対象として、結果もスタックトップに残し、ロード・ストアも原則的にスタックトップに対して行うスタックマシンである。 同社が8087を設計した当時、将来の浮動小数点形式の標準となることを目指していた。実際、IEEE 754のx86向け実装の標準となることができた(厳密にはIEEE 754と8087/80287の実装の間には非互換部分が存在する)。8087を使うと、32もしくは64ビットの浮動小数点データ型を利用でき、内部演算には長大で複雑な演算の誤差を少なくするために80ビットのデータ型を使っていた。その他、80ビット(17文字)のBCDデータ型と16、32、64ビットの整数型を利用できた。 1980年に発表された8087は、80287、80387DX (80387SX)、80487SXへと発展していった(ただし80487は実質的に80486DXと等価であり、実装されると80486を停止させすべての処理を80487が行うため、コプロセッサと呼ぶのは正しくない)。1980年代に「x87」といえばこの拡張コプロセッサシリーズを差し、さらに「x87命令」といえばこのコプロに搭載された浮動小数点演算などの命令を指した。しかし80486DXやそれ以降のPentiumなどではCPUコア内にコプロセッサが内蔵されるようになったため(命令は外部プロセッサ時代と共通)、現在ではそれら内蔵の演算ユニットを指して「x87」と言うことがある。Pentium以降のCPUでも内蔵されてはいるが、AMD64アーキテクチャでは浮動小数点演算にx87ではなくSSE/SSE2が基本命令として使われるようになった。x87の存在を前提に書かれたプログラムの互換性維持のため、CPUメーカによるx87命令のサポートは続いている。 日本電気 (NEC) のPC-9801,PC-100(京セラOEM)やIBM PCなど、8086を搭載したコンピュータには、8087を挿すことができるソケットが用意されていた。.

新しい!!: スタックとIntel 8087 · 続きを見る »

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 · 続きを見る »

LISP

LISPは、プログラミング言語である。 によって記述される。-->前置記法などが特徴である。 1958年にはじめて設計されたLISPは、現在広範囲に使用されている高水準プログラミング言語の中でもFORTRANに次いで2番目に古い。ただし、FORTRANと同様に、現在のLISPは初期のものから非常に大きく変化している。 これまでに多数の方言が存在してきたが、今日最も広く知られるLISP方言は、Common LispとSchemeである。 元々、LISPは、アロンゾ・チャーチのラムダ計算表記法に影響を受け、コンピュータープログラムのための実用的かつ数学的な表記法として作られた。そして、すぐに人工知能研究に好まれるプログラミング言語になった。最初期のプログラミング言語として、LISPは計算機科学にて、木構造、ガベージコレクション、動的型付け、条件分岐、高階関数、再帰、セルフホスティング、コンパイラを含む多くのアイディアを切り開いた。 LISPの名前は、「list processor」に由来している。リストはLISPの主要なデータ構造であり、LISPソースコードはそれ自体がリストからできている。その結果、LISPプログラムはソースコードをデータとして操作することができ、プログラマーは、マクロ・システムで新しい構文やLISP埋め込みの新しいDSLを作成できる。 コードとデータの互換性は、LISPにそのすぐに認識できる構文を与える。すべてのプログラム・コードはS式または入れ子のリストとして書かれる。関数呼び出しまたは構文は先頭が関数または演算子の名前で、その続きが引数であるリストとして書かれる。具体的には、3つの引数を取る関数fは、(f arg1 arg2 arg3)として呼び出される。.

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

Lua

Lua(ルア)は、リオデジャネイロ・カトリカ大学の、主としてDepartment of Computer Science(コンピュータ科学科)and・or Computer Graphics Technology Group (Tecgraf) に属する、Roberto Ierusalimschy, Waldemar Celes, Luiz Henrique de Figueiredo らによって設計開発されたスクリプト言語およびその処理系の実装である。 手続き型言語として、また、プロトタイプベースのオブジェクト指向言語としても利用することができ、関数型言語、データ駆動型としての要素も併せ持っている。 Luaという名前は、ポルトガル語の月に由来する。.

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

MC68000

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

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

Mind (プログラミング言語)

Mind(マインド)は、Forthの影響を受けた、(プログラミング言語としては)日本語っぽい自然な見掛け(と主張されている)が特徴であるプログラミング言語で、いわゆる日本語プログラミング言語のひとつである。しかしあくまで「プログラミング言語としては日本語っぽい」ということであり、(時折誤解されているが)自然言語プログラミング(w:Natural language programming)言語ではない。 Forthのワードに相当する「単語」の他、全ての識別子に、日本語の文字(かな・漢字・他)が使える。Forthと同様に逆ポーランド記法ベースであるが、逆ポーランド記法と日本語の語順の類似性を活用している。 開発者は現在スクリプツ・ラボの片桐明で、MS-DOS時代には同社の前身のリギーコーポレーションが販売していた。MS-DOS版は今はフリーウェア扱いになっている。2013年現在、Windows版(商用。評価版ダウンロードあり)とUNIX版(GPL)があり、スクリプツ・ラボが販売・提供している。他に、第三者によりUNIX版をB-right/V(超漢字)で動くようにしたものがある。 また、2012年4月から、2013年現在、Android版の実験が進められている。.

新しい!!: スタックとMind (プログラミング言語) · 続きを見る »

PA-RISC

PA-RISC(ぴーえーりすく)は、ヒューレット・パッカード社 (HP) のSystems & VLSI Technology Operationが開発したマイクロプロセッサ アーキテクチャである。 その名前にも含まれているようにRISCアーキテクチャの実装であり、PAはPrecision Architecture(精密なアーキテクチャ)の略である。また、HP/PAつまりHewlett Packard Precision Architectureと呼ばれることもある。 1986年2月26日、PA-RISCの最初の実装であるTS1を採用した HP 3000 Series 930 と HP 9000 Model 840 が発表された。 HPとインテルは Itanium(IA-64 ISA)を共同開発し、PA-RISCはItaniumに取って代わられた。2008年末にはPA-RISCベースの HP 9000 システムの販売を終了したが、サポートは2013年まで継続予定である。.

新しい!!: スタックとPA-RISC · 続きを見る »

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 · 続きを見る »

PIC (コントローラ)

PIC(ピック)とは、Peripheral Interface Controller(ペリフェラル インターフェイス コントローラ)の略称であり、マイクロチップ・テクノロジー社 (Microchip Technology Inc.) が製造しているマイクロコントローラ(制御用IC)製品群の総称である。.

新しい!!: スタックとPIC (コントローラ) · 続きを見る »

PostScript

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

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

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 · 続きを見る »

抽象データ型

抽象データ型(ちゅうしょうデータがた、abstract data type、ADT)とは、データ構造とそれを直接操作する手続きをまとめてデータ型の定義とすることでデータ抽象を実現する手法またはそのひとまとまりとして定義されたデータ型を言う。通常のデータ型であれば変数宣言で変数に束縛されるものは値であるが、抽象データ型の世界において値に相当するものはデータ構造とその操作のまとまりである。 抽象データ型を用いない場合、データ構造またはデータの操作手続きのアルゴリズムの変更を行うとソースコード中にその変更部分が散在してしまい規模によっては修正困難となるが、データとその操作がひとまとめに記載されることになる抽象データ型においては、型の定義における実装部分を変更するだけで修正が完了する。.

新しい!!: スタックと抽象データ型 · 続きを見る »

探索

探索(たんさく、search)とは、特定の制約条件を満たす物を見つけ出す行動のこと。何か問題を解くに当たって、有効な解析的な解法を用いることのできない場合は、試行錯誤によって解を得る場合もある。一部のアルゴリズムは、元々、機械学習と並んで人工知能の分野のアルゴリズムであるが、現在はその他の分野にも応用されている。類義語として検索(search)も参照。.

新しい!!: スタックと探索 · 続きを見る »

機械語

機械語(きかいご)またはマシン語(Machine code、machine language)とは、コンピュータのプロセッサが直接解釈実行可能な一連の命令群のデータそのもの(を、コンピュータ・プログラミング言語とみなしたもの)である。.

新しい!!: スタックと機械語 · 続きを見る »

深さ優先探索

深さ優先探索のイメージ 深さ優先探索(ふかさゆうせんたんさく、depth-first search, DFS、バックトラック法ともいう)は、木やグラフを探索するためのアルゴリズムである。アルゴリズムは根から(グラフの場合はどのノードを根にするか決定する)始まり、バックトラックするまで可能な限り探索を行う。「縦型探索」とも呼ばれる。.

新しい!!: スタックと深さ優先探索 · 続きを見る »

木構造 (データ構造)

親子構造 木構造(きこうぞう)とは、グラフ理論の木の構造をしたデータ構造のこと。.

新しい!!: スタックと木構造 (データ構造) · 続きを見る »

文脈依存言語

文脈依存言語(ぶんみゃくいそんげんご、Context-sensitive Language)は、文脈依存文法で定義される形式言語である。これはチョムスキー階層の四つの文法のひとつであるが、理論的にも実用的にも最も使われることが少ない文法でもある。.

新しい!!: スタックと文脈依存言語 · 続きを見る »

文脈自由言語

文脈自由言語(ぶんみゃくじゆうげんご)とは、次のような再帰的な生成規則をもつ文脈自由文法によって、与えられた言語の長さ n に対して O(n3) の時間で認識される形式言語。プッシュダウン・オートマトンで受理可能な言語と等価である。.

新しい!!: スタックと文脈自由言語 · 続きを見る »

日本語プログラミング言語

日本語プログラミング言語(にほんごプログラミングげんご)は、日本語風のプログラミング言語である。ソースコードを日本語の文字(仮名や漢字)で記述したり、文法に日本語風の語順・規則を採用していたりする。なお、この記事で扱う言語のほとんどは、あくまで通常のプログラミング言語と同様の(形式言語としての)ベースがあるものであり、形式言語ではない自然言語によるプログラミング(w:Natural language programming)の一種としての「日本語によるプログラミング」ではない。.

新しい!!: スタックと日本語プログラミング言語 · 続きを見る »

1988年

この項目では、国際的な視点に基づいた1988年について記載する。.

新しい!!: スタックと1988年 · 続きを見る »

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

スタック構造

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