アセンブリ言語と制御構造間の類似点
アセンブリ言語と制御構造は(ユニオンペディアに)共通で23ものを持っています: ALGOL、チューリング完全、ループ (プログラミング)、レジスタ (コンピュータ)、プロセッサ、ドナルド・クヌース、インライン展開、クラス (コンピュータ)、コンパイラ最適化、コンピュータ、サブルーチン、割り込み (コンピュータ)、BASIC、C言語、識別子、自己書き換えコード、FORTRAN、LISP、PL/I、System/360、抽象化 (計算機科学)、構造化プログラミング、機械語。
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" で導入されたバッカス・ナウア記法は、その後のコンピュータ言語等の構文の形式的定義を示す手法として(プログラミング言語だけに限られず)定番の記法となっている。.
チューリング完全
計算理論において、ある計算のメカニズムが万能チューリングマシンと同じ計算能力をもつとき、その計算モデルはチューリング完全(チューリングかんぜん、Turing-complete)あるいは計算完備であるという。 チャーチ=チューリングのテーゼによれば「計算可能関数」は、それを計算しようとする計算モデルがチューリング完全であれば計算できる。 一般的なプログラミング言語の背景にある計算モデルの多くはチューリング完全である。一見単純な機能しか持たない言語がチューリング完全な例としては、Lazy K、Brainfuckなどがある。究極的に単純な計算モデルとしては「がチューリング完全であると証明されている。 チューリング完全かどうかという事は、計算可能性理論の問題である。計算複雑性の分野の問題である時間や記憶容量の消費量については考えない。表計算における数式の処理などで、繰り返し処理を「どうやっても実現できなければ」それはチューリング完全ではない。 コンピュータ言語のうち、少なくともチューリング完全でなければプログラミング言語とは呼ばれない。逆にチューリング完全であるにも関わらず慣例的にプログラミング言語とは呼ばれないものもある。.
アセンブリ言語とチューリング完全 · チューリング完全と制御構造 ·
ループ (プログラミング)
この記事では、コンピュータプログラムにおけるループ (loop) について説明する。ループとは、特定の条件下において特定の処理を繰り返すこと、あるいはそのように作られた制御構造のことを言う。日本語の名詞として「繰り返し」とも。特定の条件が成立している限り、特定の処理を繰り返し何度でも実行する。逆に言えば、条件が成立しなくなったときに、処理を中止する。 ループの、特別な形あるいは最も一般的な形として、無条件に繰り返す無限ループがある。詳細は無限ループの記事を参照。 ループは、繰り返しを継続するかどうかを判断するための条件式(反復条件)を持つ。反復条件がループ構造の始まりに置かれる場合、そのようなループ構造のことを前判定ループと呼ぶ。一方、反復条件がループ構造の後ろに置かれる場合、これを後判定ループと呼ぶ。しかし結局のところ以上のような分類は、プログラミング言語の発展の初期に、まず最初にどちらか片方だけが作られ、後から別のものが追加されたという歴史的由来に過ぎず、ループの「内側」のどこかに「ループの脱出」がある、という構造に一般化できるので前判定後判定という分類は本質ではない(実際に、たとえばVisual Basicの「Do...Loop 文」は、どの場合にも対応するよう対称的に作られている)。単にその「内側のどこか」が、その前端か後端にある場合が多い、というだけである。 むしろ、ループの先頭で何らかのデータをファイルから読み込んで計算を開始し、その途中で、繰り返しのその回を打ち切り次の繰り返しに進む、あるいは繰り返しを終わる、といったこともよくあり(ダイクストラは、最後が途中で終わる場合を「n+1/2回の反復」と名づけた)、さらには入れ子になった内側のループの中から外側のループを終わる、というような処理にどう対応するか、が思案のしどころである。 なお。.
アセンブリ言語とループ (プログラミング) · ループ (プログラミング)と制御構造 ·
レジスタ (コンピュータ)
レジスタ(register)はコンピュータのプロセッサなどが内蔵する記憶回路で、制御装置や演算装置や実行ユニットに直結した、操作に要する速度が最速の、比較的少量のものを指す。.
アセンブリ言語とレジスタ (コンピュータ) · レジスタ (コンピュータ)と制御構造 ·
プロセッサ
プロセッサ は、コンピュータシステムの中で、ソフトウェアプログラムに記述された命令セット(データの転送、計算、加工、制御、管理など)を実行する(=プロセス)ためのハードウェアであり、演算装置、命令や情報を格納するレジスタ、周辺回路などから構成される。内蔵されるある程度の規模の記憶装置までを含めることもある。プロセッサー、プロセサ、プロセッシングユニット、処理装置(しょりそうち)ともいう。「プロセッサ」は処理装置の総称で、システムの中心的な処理を担うものを「CPU()」(この呼称はマイクロプロセッサより古くからある)、集積回路に実装したものをマイクロプロセッサ、またメーカーによっては(モトローラなど)「MPU()」と呼んでいる。 プロセッサの構成要素の分類として、比較的古い分類としては、演算装置と制御装置に分けることがある。また、理論的な議論では、厳密には記憶装置であるレジスタすなわち論理回路の用語で言うところの順序回路の部分を除いた、組み合わせ論理の部分のみを指すことがある(状態機械モデルと相性が悪い)。の分類としては、実行すべき命令を決め、全体を制御するユニットと、命令を実行する実行ユニットとに分けることがある。.
ドナルド・クヌース
ドナルド・エルビン・クヌース(Donald Ervin Knuth, 1938年1月10日 -)は数学者、計算機科学者。スタンフォード大学名誉教授。 クヌースによるアルゴリズムに関する著作 The Art of Computer Programming のシリーズはプログラミングに携わるものの間では有名である。アルゴリズム解析と呼ばれる分野を開拓し、計算理論の発展に多大な貢献をしている。その過程で漸近記法で計算量を表すことを一般化させた。 理論計算機科学への貢献とは別に、コンピュータによる組版システム TeX とフォント設計システム METAFONT の開発者でもあり、Computer Modern という書体ファミリも開発した。 作家であり学者であるクヌースは、文芸的プログラミングのコンセプトを生み出し、そのためのプログラミングシステム WEB / CWEB を開発。また、MIX / MMIX 命令セットアーキテクチャを設計。.
アセンブリ言語とドナルド・クヌース · ドナルド・クヌースと制御構造 ·
インライン展開
インライン展開(inline expansion または inlining)とは、コンパイラによる最適化手法の1つで、関数を呼び出す側に呼び出される関数のコードを展開し、関数への制御転送をしないようにする手法。これにより関数呼び出しに伴うオーバーヘッドを削減する。特に小さくて頻繁に呼ばれる関数では効果的であり、呼び出し側にそのコードを展開することで定数畳み込みなどのさらなる最適化を施せる可能性が生じる。問題点はバイナリコードが一般に肥大化する結果を招く点であり、参照の局所性を損なうほどだったり、リソースの限界を超えると性能がかえって悪化することになる。 関数型言語の世界では、インライン展開をβ変換とも呼び、関数型言語の理論的基盤となっているラムダ計算の用語としてよく使われる。.
アセンブリ言語とインライン展開 · インライン展開と制御構造 ·
クラス (コンピュータ)
ラス()は、クラスベースのオブジェクト指向においてオブジェクトの設計図にあたるもの。抽象データ型の一つ。クラスから生成したオブジェクトのことをインスタンスという。 クラスには、インスタンスの保持するデータ(メンバ変数、フィールド(UMLでは「属性」ともいう))と操作(メソッド、メンバ関数)が記述される。 クラスは、継承・ポリモーフィズム・カプセル化などの、オブジェクト指向プログラミングにおける重要な概念を実現する強力な手段である。.
アセンブリ言語とクラス (コンピュータ) · クラス (コンピュータ)と制御構造 ·
コンパイラ最適化
ンパイラ最適化(こんぱいらさいてきか、Compiler optimization)の記事では、コンピュータ・プログラムの最適化に関する話題のうち、もっぱらコンパイラに関係するものに関して説明する。最も一般的な要求はプログラムの実行時間を最小化することであり、その次に使用するメモリ量を最小化することである。また、携帯可能なコンピュータが増えるにつれて、消費電力を最小化するという最適化も生まれてきた。 一部のコード最適化問題はNP完全問題であることが示されている。実際には、プログラマがコンパイラによる最適化の完了を待てる時間の上限なども考慮してコンパイラ最適化を実装する(最適化はCPU時間とメモリを多大に使用する)。かつては、コンピュータのメモリ実装量も実行できる最適化を制限する要因だった。 コンパイラメーカによっては、「コンパイラの最適化の能力が売り上げや評判に大きく影響する」と信じている場合があり、そういう信念に従って「最適化コンパイラ」と銘打つことがある。少なくとも、同程度にバグが無いコンパイラ同士であれば、という前提の範囲内なら、最適化の能力が高いほうが魅力的と言えるであろう。.
アセンブリ言語とコンパイラ最適化 · コンパイラ最適化と制御構造 ·
コンピュータ
ンピュータ(Computer)とは、自動計算機、とくに計算開始後は人手を介さずに計算終了まで動作する電子式汎用計算機。実際の対象は文字の置き換えなど数値計算に限らず、情報処理やコンピューティングと呼ばれる幅広い分野で応用される。現代ではプログラム内蔵方式のディジタルコンピュータを指す場合が多く、特にパーソナルコンピュータやメインフレーム、スーパーコンピュータなどを含めた汎用的なシステムを指すことが多いが、ディジタルコンピュータは特定の機能を実現するために機械や装置等に組み込まれる組み込みシステムとしても広く用いられる。電卓・機械式計算機・アナログ計算機については各項を参照。.
アセンブリ言語とコンピュータ · コンピュータと制御構造 ·
サブルーチン
ブルーチン(subroutine)は、コンピュータプログラミングにおいて、プログラム中で意味や内容がまとまっている作業をひとつの手続きとしたものである。繰り返し利用されるルーチン作業をモジュールとしてまとめたもので、呼び出す側の「主」となるもの(メインルーチン)と対比して「サブルーチン」と呼ばれる。サブプログラム (subprogram) と呼ばれることもある。また、「サブ」をつけずに「ルーチン」と呼ぶこともある。 プログラムのソース中で、繰り返し現れる作業をサブルーチン化することで、可読性や保守性を高く保つことができる。繰り返し現れる作業でなくても、意味的なまとまりを示すためにサブルーチン化することもある。また、キャッシュのような階層的メモリの設計を持つコンピュータ(現在のパソコンやワークステーションなどほぼすべて)では、よく使われるサブルーチンがキャッシュに格納されることで高速な動作を期待できる。.
アセンブリ言語とサブルーチン · サブルーチンと制御構造 ·
割り込み (コンピュータ)
割り込み(わりこみ)とは、コンピュータがその周辺機器などから受け取る要求の一種である。現在の多くのCPUは、割り込みを処理するための機能を備えている。.
アセンブリ言語と割り込み (コンピュータ) · 制御構造と割り込み (コンピュータ) ·
BASIC
BASIC(ベーシック)は手続き型プログラミング言語のひとつ。 名前は「beginner's all-purpose symbolic instruction code」(「初心者向け汎用記号命令コード」を意味する)のバクロニムである。.
C言語
C言語(シーげんご)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発したプログラミング言語である。英語圏では単に C と呼んでおり、日本でも文書や文脈によっては同様に C と呼ぶことがある。.
C言語とアセンブリ言語 · C言語と制御構造 ·
識別子
識別子(しきべつし、identifier)とは、ある実体の集合の中で、特定の元を他の元から曖昧さ無く区別することを可能とする、その実体に関連する属性の集合のことをいう。ほぼすべての情報処理システムで何らかの識別子が使われており、識別子を利用することで機械的な処理が可能になる。.
アセンブリ言語と識別子 · 制御構造と識別子 ·
自己書き換えコード
自己書き換えコード(じこかきかえコード、self-modifying code)とは、目的を問わず実行時に自分自身の命令を書き換えるコードを指す。 自己書き換えコードはアセンブリ言語を使用すると簡単に記述できる(CPUのキャッシュを考慮する必要がある)。 また、SNOBOL4やLISPのようなインタプリタ型の高級言語でもサポートされている。また、COBOLには ALTER という命令が存在していた。 コンパイラで実装するのは難しいが、CLIPPERとSPITBOLではその試みが行われている。 バッチスクリプトも自己書き換えコードを頻繁に使用する。 再構成可能コンピューティングは、言ってみれば「自己書き換えハードウェア」である。 再構成可能コンピューティングはソフトウェアとハードウェアの境界を曖昧にする概念である。.
アセンブリ言語と自己書き換えコード · 制御構造と自己書き換えコード ·
FORTRAN
FORTRAN(フォートラン)は、1954年にIBMのジョン・バッカスによって考案された、コンピューターにおいて広く使われた世界最初の高級言語である。.
FORTRANとアセンブリ言語 · FORTRANと制御構造 ·
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)として呼び出される。.
PL/I
PL/I(ピーエルワン)は、汎用プログラミング言語の一つ。名前は英語の「programming language one」に由来する。 PL/Iは科学技術用、工業用、商業用などにデザインされた命令型プログラミング言語である。1964年に生まれ、教育機関、商用、工業で使用されてきた。2015年現在も使われている。 PL/Iの主要な用途はデータ処理で、再帰および構造化プログラミングに対応する。言語の構文は英語に似ており、検証や操作が可能な幅広い機能のセットを持ち、複合的なデータ型を記述することに適している。.
System/360
フォルクスワーゲンで使われているSystem/360 System/360(S/360、システム/360、システムさんろくまる)は、IBMが1964年4月7日(日本では翌4月8日)に発表したメインフレーム コンピュータのシリーズである。1965年から1977年まで出荷された。あらゆる用途をカバーするファミリを形成し、小型から大型まで、商用から科学技術計算まで使われた。コンピュータ・アーキテクチャの確立により、IBMは互換性のある設計で様々な価格のシステムをリリースすることができた。最上位機種以外は命令セットをマイクロプログラム方式で実装しており、8ビットのバイト単位のアドレス指定、十進数計算、浮動小数点数計算などを備えている。.
System/360とアセンブリ言語 · System/360と制御構造 ·
抽象化 (計算機科学)
抽象化(ちゅうしょうか、Abstraction)は、計算機科学において詳細を捨象し、一度に注目すべき概念を減らすことおよびその仕組みである。 この概念は数学における「抽象化」からのアナロジーである。数学での抽象化技法の起源は数学的定義である。例えば、コンピュータでも数学でも、数はプログラミング言語上の概念であり、数学上の概念でもある。数の計算概念は数学の概念に基づいているため、実装の詳細はハードウェアとソフトウェアに依存したとしても、それが制約とはならない。 大まかに言えば、抽象化は制御抽象化とデータ抽象化に分けられる。制御抽象化は動作の抽象化であり、データ抽象化はデータ構造の抽象化である。例えば、構造化プログラミングでの制御抽象化とは、サブプログラムや定式化された制御フローの使用を意味する。データ抽象化とは、本来ビット列であるデータを意味のある方法で扱うことを意味する。例えば、データ型の背景にある動機は抽象化である。オブジェクト指向プログラミングはデータとコードを同時に抽象化する試みと見ることもできる。.
アセンブリ言語と抽象化 (計算機科学) · 制御構造と抽象化 (計算機科学) ·
構造化プログラミング
構造化プログラミング(こうぞうかプログラミング、structured programming)は、1960年代後半にエドガー・ダイクストラらによって提唱された、構造化されたプログラムの構成要素(制御構造)の利用や、 p.49)-->段階的詳細化などを特徴とするプログラミング手法である。.
アセンブリ言語と構造化プログラミング · 制御構造と構造化プログラミング ·
機械語
機械語(きかいご)またはマシン語(Machine code、machine language)とは、コンピュータのプロセッサが直接解釈実行可能な一連の命令群のデータそのもの(を、コンピュータ・プログラミング言語とみなしたもの)である。.
アセンブリ言語と機械語 · 制御構造と機械語 ·
上記のリストは以下の質問に答えます
- 何アセンブリ言語と制御構造ことは共通しています
- 何がアセンブリ言語と制御構造間の類似点があります
アセンブリ言語と制御構造の間の比較
制御構造が110を有しているアセンブリ言語は、197の関係を有しています。 彼らは一般的な23で持っているように、ジャカード指数は7.49%です = 23 / (197 + 110)。
参考文献
この記事では、アセンブリ言語と制御構造との関係を示しています。情報が抽出された各記事にアクセスするには、次のURLをご覧ください: