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

操車場アルゴリズム

索引 操車場アルゴリズム

操車場アルゴリズム(そうしゃじょうアルゴリズム)は、なんらかの中置記法に属する構文に従った順序で記号(トークン)が並んでいる、数式等の記号列を解析(構文解析)する、スタックベースのアルゴリズムである。その出力を出力順にそのまま並べれば逆ポーランド記法 (RPN) になるし、あるいは抽象構文木を構築したり、数値と四則演算等の算術式のようなものであればその場で直接計算結果を得てしまってもよい。エドガー・ダイクストラが考案したもので、鉄道(車輛)の入れ替えとして説明したことから、操車場という名称がつけられた。初出は、Centrum Wiskunde(オランダ国立数学研究所)のレポート MR 34/61 である(1961年)。 データフローとして見ると、このアルゴリズムには、入力と出力の2つの記号の列(ストリーム)があり、その他に1つ、演算子を保持するスタック(LIFO)として使われる列がある(この3本の列と、それぞれに向かう流れを列車と線路にたとえたわけである)。入力から記号を順次読み出し、その記号とスタックトップの記号に応じて、入力の記号を直接出力に送るか、スタックに積むか、入力を一旦そのままホールドしてスタックトップを取り出して出力に送るか、という動作をする。 操車場アルゴリズムを後に一般化したのがである。.

18 関係: 字句解析定数畳み込み中置記法ポーランド記法デルタ線アルゴリズムインタプリタエドガー・ダイクストラキュー (コンピュータ)スタックセマフォ算術関数 (数学)逆ポーランド記法抽象構文木構文解析演算子の優先順位操車場 (鉄道)

字句解析

字句解析 (じくかいせき、Lexical Analysis) とは、広義の構文解析の前半の処理で、自然言語の文やプログラミング言語のソースコードなどの文字列を解析して、後半の狭義の構文解析で最小単位(終端記号)となっている「トークン」(字句)の並びを得る手続きである。字句解析を行うプログラムは字句解析器である。自然言語の字句解析については形態素解析を参照。.

新しい!!: 操車場アルゴリズムと字句解析 · 続きを見る »

定数畳み込み

定数畳み込み(ていすうたたみこみ、constant folding)および定数伝播(ていすうでんぱ、constant propagation)は、多くのコンパイラで使われている最適化技法である。定数伝播の進化したものを疎な条件分岐を考慮した定数伝播と呼び、定数伝播と同時にデッドコード削除も行って、より正確な伝播を行う。.

新しい!!: 操車場アルゴリズムと定数畳み込み · 続きを見る »

中置記法

中置記法(ちゅうちきほう、infix notation)とは、数式やプログラムを記述する方法(記法)の一種。演算子を操作対象の中間に記述することから、このように呼ばれる。 その他の記法として、演算子を操作対象の前(左)に記述する前置記法(ポーランド記法)、演算子を操作対象の後(右)に記述する後置記法(逆ポーランド記法)がある。 四則演算など初歩的な算術においては、もっぱら中置記法が多用されている。.

新しい!!: 操車場アルゴリズムと中置記法 · 続きを見る »

ポーランド記法

ポーランド記法(ポーランドきほう、Polish Notation)とは、数式やプログラムを記述する方法(記法)の一種。演算子(オペレータ)を被演算子(オペランド)の前(左)に記述することから、前置記法(ぜんちきほう、prefix notation)とも言う。 その他の記法として、演算子を被演算子の中間に記述する中置記法、後(右)に記述する後置記法(逆ポーランド記法)がある。 名称の由来は、ポーランド人の論理学者ヤン・ウカシェヴィチ (Jan Łukasiewicz) が考案したことによる。.

新しい!!: 操車場アルゴリズムとポーランド記法 · 続きを見る »

デルタ線

デルタ線(デルタせん)は、三角線(さんかくせん)とも言い、、転車台(ターンテーブル)の代わりに、各頂点の分岐の先で折り返して機関車などの車両や、特に、転車台と違い車両単位ではなく列車の編成ごと向きを変えることができる。また、3方向からの路線が集まる地点をこの配線とした場合、列車の進行方向を変えずにどの方向からどの方向へも直通できる。日本ではギリシャ文字のデルタ(Δ)に形が似ていることから付けられた名前で、英語ではwye(ワイ)という。.

新しい!!: 操車場アルゴリズムとデルタ線 · 続きを見る »

アルゴリズム

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

新しい!!: 操車場アルゴリズムとアルゴリズム · 続きを見る »

インタプリタ

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

新しい!!: 操車場アルゴリズムとインタプリタ · 続きを見る »

エドガー・ダイクストラ

ドガー・ダイクストラ(Edsger Wybe Dijkstra, 1930年5月11日 - 2002年8月6日)は、オランダ人の計算機科学者。1972年、プログラミング言語の基礎研究への貢献に対してチューリング賞を受賞。構造化プログラミングの提唱者。1984年から2002年に亡くなるまでテキサス大学オースティン校の計算機科学の Schlumberger Centennial Chair を務めた。 2002年の死の直前、プログラム計算のについての仕事に対して ACM PODC Influential Paper Award を授与された。この賞は翌年からダイクストラを称えてと呼ばれるようになった。 エズガー・ダイクストラと表記されることもある。オランダ語での発音は、IPA表記で で、エツハー・ウィベ・デイクストラに近い。.

新しい!!: 操車場アルゴリズムとエドガー・ダイクストラ · 続きを見る »

キュー (コンピュータ)

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

新しい!!: 操車場アルゴリズムとキュー (コンピュータ) · 続きを見る »

スタック

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

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

セマフォ

マフォ(semaphore)とは、計算機科学において、並列プログラミング環境での複数の実行単位(主にプロセス)が共有する資源にアクセスするのを制御する際の、単純だが便利な抽象化を提供する変数または抽象データ型である。 ある資源が何個使用可能かを示す記録と考えればわかりやすく、それにその資源を使用する際や解放する際にその記録を「安全に」(すなわち競合状態となることなく)書き換え、必要に応じて資源が使用可能になるまで待つ操作が結びついている。セマフォは競合状態を防ぐ便利なツールであるが、セマフォを使うことでプログラムにおける競合状態がなくなると保証するものではない。任意個の資源を扱うセマフォをカウンティングセマフォ、値が0と1に制限されている(ロック/アンロック、使用可能/使用不可の意味がある)セマフォをバイナリセマフォと呼ぶ。後者はミューテックスと同等の機能を持つ。 セマフォの概念はオランダ人計算機科学者エドガー・ダイクストラが考案した。今ではさまざまなオペレーティングシステムで採用されている。 「semaphore」の本来の語義は「視覚による通信・信号」全般を指し、腕木通信や、それから派生した鉄道の腕木信号(や自動車の方向指示器)、手旗信号などが含まれる。日本語でのセマフォは、本用途(コンピュータ、プログラミング関連)に限られる。 語源の腕木式信号機.

新しい!!: 操車場アルゴリズムとセマフォ · 続きを見る »

算術

算術 (さんじゅつ、arithmetic) は、数の概念や数の演算を扱い、その性質や計算規則、あるいは計算法などの論理的手続きを明らかにしようとする学問分野である。.

新しい!!: 操車場アルゴリズムと算術 · 続きを見る »

関数 (数学)

数学における関数(かんすう、、、、、函数とも)とは、かつては、ある変数に依存して決まる値あるいはその対応を表す式の事であった。この言葉はライプニッツによって導入された。その後定義が一般化されて行き、現代的には数の集合に値をとる写像の一種であると理解される。.

新しい!!: 操車場アルゴリズムと関数 (数学) · 続きを見る »

逆ポーランド記法

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

新しい!!: 操車場アルゴリズムと逆ポーランド記法 · 続きを見る »

抽象構文木

抽象構文木(abstract syntax tree、AST)とは、通常の構文木(具象構文木あるいは解析木とも言う)から、言語の意味に関係ない情報を取り除き、意味に関係ある情報のみを取り出した(抽象した)木構造のデータ構造である。 理論的には、有限なラベル付き有向木であり、分岐点に演算子、葉にそのオペランドを対応させたものである。つまり、葉は変数や定数に対応する。 抽象構文木は構文解析で構文木とデータ構造の中間的なものとして使用される。さらにコンパイラやインタプリタなど(プログラミング言語処理系)でのプログラムの中間表現として使われ、コンパイラ最適化やコード生成はその上で行われる。抽象構文木のとりうる構造は抽象構文で記述されている。 抽象構文木は(具象)構文木とは異なり、プログラムの意味に関係ない部分を省略する。そのような省略の例としては括弧の省略があげられる。抽象構文木では、オペランドのグループ化が自明な木構造とするのが普通であり、グループ化のための括弧などは意味的に不要である。 大多数のプログラミング言語のような文脈自由言語の構文解析で抽象構文木を作るのは簡単である。構文規則ごとに新たな節点を作成し、葉はその規則における記号に対応する。グループ化規則のような抽象構文木に関わらない規則は無視される。そのようにいきなり抽象構文木を生成することもあるし、完全な具象構文木を作り、その後そこから冗長な部分(プログラムの意味に関係しない部分)を除いて抽象構文木に変換することもある。 理論的な観点からは、たとえばソースコード上の位置(何行目の何カラム目など)といった具象の情報は言語処理系には不要であり、抽象構文木には無くてもよいのだが、実践的には、エラーを見つけた時にプログラマに親切なエラーメッセージを出力するためなど、重要な情報であり、時には処理系のフロントエンドではなくバックエンドでも必要なこともある。.

新しい!!: 操車場アルゴリズムと抽象構文木 · 続きを見る »

構文解析

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

新しい!!: 操車場アルゴリズムと構文解析 · 続きを見る »

演算子の優先順位

演算子の優先順位とは、数学およびコンピュータプログラミングにおいて、数式のどの部分から先に計算すべきかを明確化する規則である。 例えば、数学や多くのコンピュータ言語では乗法は加法より先に行われる。2 + 3 × 4 という式の計算結果は14になる。(と)、、 といった括弧には計算順序の混乱を防ぐ独自の規則が適用され、例えば先の式は 2 + (3 × 4) とも書けるが、括弧がなくとも乗法が優先されるという規則だけで式の値は一意に定まる。 代数学的記法が導入された際、乗法が加法より優先されるようになった。したがって、3 + 4 × 5.

新しい!!: 操車場アルゴリズムと演算子の優先順位 · 続きを見る »

操車場 (鉄道)

操車場(そうしゃじょう)とは、鉄道における停車場の一種で、貨物列車などの組成・入換などをおこなう場所である。英語では、作業場などに使われるひらけた土地といった意である ヤード という語が使われている。 日本においては、過去に主に貨車を扱う貨車操車場と主に客車を扱う客車操車場が存在したが、客車専門の操車場は少なく、機能的に駅などに付属しているものも多かったのに対し、貨車操車場は数の上でも多かった。以下では主に貨車操車場について述べる。.

新しい!!: 操車場アルゴリズムと操車場 (鉄道) · 続きを見る »

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