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

MIX (プログラミング)

索引 MIX (プログラミング)

MIX とは、ドナルド・クヌースが著書 The Art of Computer Programming (TAoCP) で使った仮想計算機である。1960年代に生まれた MIX は、今後の TAOCP の版では MMIX という新たな(仮想の)コンピュータアーキテクチャで置換される予定である。MIX と MMIX のソフトウェア実装(MIXware および MMIXware)はクヌースが開発しており、自由に利用可能となっている。クヌースの MIX/MMIX エミュレータからの派生版も存在する。GNU MDK がその一例で、フリーソフトウェアとして幅広いプラットフォーム上で動作する。 TAoCP 本文中の記述によれば、MIX は「世界初の多機種複合型コンピュータ」で、型番は MIX という綴りをローマ数字として解釈したものと同じ 1009 であると設定されている。この数は「MIX によく似ていて MIX を簡単にシミュレートできる実在のコンピュータ 16 種」の型番から取って平均した(mixした)ものであるとあるが、具体的にその機種を検討してみるとかなり恣意的であり、このラインナップについてはこじつけと見てよいであろう。.

20 関係: 十進法二進法バロースレジスタ (コンピュータ)ローマ数字ビット演算フリーソフトウェアドナルド・クヌースアキュムレータ (コンピュータ)アセンブリ言語サブルーチン自己書き換えコードIBM 650IBM 7070IBM 709Minivac 601MMIXPDPシリーズSystem/360The Art of Computer Programming

十進法

十進法(じっしんほう、decimal system)とは、10 を底(てい)とし、底およびその冪を基準にして数を表す方法である。.

新しい!!: MIX (プログラミング)と十進法 · 続きを見る »

二進法

二進法(にしんほう)とは、2 を底(てい、基(base)とも)とし、底の冪の和で数を表現する方法である。 英語でバイナリ (binary) という。binaryという語には「二進法」の他に「二個一組」「二個単位」といったような語義もある(例: バイナリ空間分割)。.

新しい!!: MIX (プログラミング)と二進法 · 続きを見る »

バロース

バロース社 は、アメリカ合衆国の計算機・コンピュータ企業。1886年、アメリカン・アリスモメータとして創業。1986年に同じくアメリカの企業であったスペリーを買収・合併し、ユニシスとなった。当初は機械式を製造から始まり、その後プログラム可能な帳簿作成機を製造、さらにコンピュータへと移行した。メインフレーム製造のかたわら、タイプライターやプリンターも製造していた。.

新しい!!: MIX (プログラミング)とバロース · 続きを見る »

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

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

新しい!!: MIX (プログラミング)とレジスタ (コンピュータ) · 続きを見る »

ローマ数字

ーマ数字(ローマすうじ)は、数を表す記号の一種である。ラテン文字の一部を用い、例えばアラビア数字における 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 をそれぞれ Ⅰ,Ⅱ,Ⅲ,Ⅳ,Ⅴ,Ⅵ,Ⅶ,Ⅷ,Ⅸ,Ⅹのように並べて表現する。I, V, X, L, C, D, M はそれぞれ 1, 5, 10, 50, 100, 500, 1000 を表す。i, v, x などと小文字で書くこともある。現代の一般的な表記法では、1 以上 4000 未満の数を表すことができる。 ローマ数字のことをギリシャ数字と呼ぶ例が見られるが、これは誤りである。.

新しい!!: MIX (プログラミング)とローマ数字 · 続きを見る »

ビット演算

ビット演算(ビットえんざん、bitwise operation: 直訳すると「ビット毎操作」)とは、固定長のワードなどといった「ビットのカタマリ」(コンピュータの数値表現なども参照)に対して、各のビット全てに対する論理演算をいっぺんに行う演算操作である。 実装の観点からは、現在一般的な二進法(ディジタル)式の電子式コンピュータでは、加減算ではビットあたり数個程度の論理ゲートに加え多少複雑なキャリー伝搬の処理が、乗除算では多段に渡る処理が必要であるのに対し、ビット演算は1個か高々2個の論理ゲートで行えるため、多くの場合、最短サイクルしか必要としない。そのことから、高性能なプログラムを実現するための機械語コーディングではビット演算の使いこなしは重要なテクニックである。 ビットマスクを利用したフラグ管理などに用いられるほか、Bitapアルゴリズムなど、各種のビット並列アルゴリズムの実装にも使われる。ビット並列アルゴリズムは特に、NEON(ARM)あるいはSSE/AVX(x86)などのSIMD拡張命令をサポートするCPUやGPUといった、容易に入手可能なハードウェアにおける高効率プログラミングの鍵である。.

新しい!!: MIX (プログラミング)とビット演算 · 続きを見る »

フリーソフトウェア

フリーソフトウェア (free software) とは、ソフトウェアのうち、フリーソフトウェア財団が提唱する自由ソフトウェアを指す。大半のフリーソフトウェアは無償(フリー)で配布されているが、定義に従えば、ここでいうフリーソフトウェアについて一次配布が無償である必要は必ずしもない。 フリーソフトウェア財団はフリーソフトウェアの定義を提示している。ソフトウェアライセンスについてはフリーソフトウェアライセンスを参照。 定義に照らして自由ではない、すなわち改造や再配布などに制限が掛かっていたり、ソースコードが開示されていない、無償で利用できるソフトウェアとは異なる概念であり、この場合はフリーウェアもしくは無料ソフトと呼ぶことが望ましいとフリーソフトウェア財団はしている。 逆に定義に従ったソフトウェアであれば、一次的な配布が有償であってもフリーソフトウェアと呼ぶことができる。ただし、前述したように配布が自由であるため、ほとんどのフリーソフトウェアは無償で配布されている。 また、現状強い影響力を持つ定義として、フリーソフトウェア財団の定義の他に、DebianフリーソフトウェアガイドラインとそれをベースにしたOpen Source Initiativeのオープンソースの定義がある。.

新しい!!: MIX (プログラミング)とフリーソフトウェア · 続きを見る »

ドナルド・クヌース

ドナルド・エルビン・クヌース(Donald Ervin Knuth, 1938年1月10日 -)は数学者、計算機科学者。スタンフォード大学名誉教授。 クヌースによるアルゴリズムに関する著作 The Art of Computer Programming のシリーズはプログラミングに携わるものの間では有名である。アルゴリズム解析と呼ばれる分野を開拓し、計算理論の発展に多大な貢献をしている。その過程で漸近記法で計算量を表すことを一般化させた。 理論計算機科学への貢献とは別に、コンピュータによる組版システム TeX とフォント設計システム METAFONT の開発者でもあり、Computer Modern という書体ファミリも開発した。 作家であり学者であるクヌースは、文芸的プログラミングのコンセプトを生み出し、そのためのプログラミングシステム WEB / CWEB を開発。また、MIX / MMIX 命令セットアーキテクチャを設計。.

新しい!!: MIX (プログラミング)とドナルド・クヌース · 続きを見る »

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

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

新しい!!: MIX (プログラミング)とアキュムレータ (コンピュータ) · 続きを見る »

アセンブリ言語

モトローラ MC6800 のアセンブリ言語のソースコード アセンブリ言語(アセンブリげんご、英: assembly language)とは、コンピュータ、マイクロコントローラ、その他のプログラム可能な機器を動作させるための機械語を人間にわかりやすい形で記述する、代表的な低水準言語である。なお、英語の assembly とは「組立」という意味である。.

新しい!!: MIX (プログラミング)とアセンブリ言語 · 続きを見る »

サブルーチン

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

新しい!!: MIX (プログラミング)とサブルーチン · 続きを見る »

自己書き換えコード

自己書き換えコード(じこかきかえコード、self-modifying code)とは、目的を問わず実行時に自分自身の命令を書き換えるコードを指す。 自己書き換えコードはアセンブリ言語を使用すると簡単に記述できる(CPUのキャッシュを考慮する必要がある)。 また、SNOBOL4やLISPのようなインタプリタ型の高級言語でもサポートされている。また、COBOLには ALTER という命令が存在していた。 コンパイラで実装するのは難しいが、CLIPPERとSPITBOLではその試みが行われている。 バッチスクリプトも自己書き換えコードを頻繁に使用する。 再構成可能コンピューティングは、言ってみれば「自己書き換えハードウェア」である。 再構成可能コンピューティングはソフトウェアとハードウェアの境界を曖昧にする概念である。.

新しい!!: MIX (プログラミング)と自己書き換えコード · 続きを見る »

IBM 650

テキサスA&M大学の IBM 650。 右にあるのが IBM 533 パンチカード・リーダ/パンチャー IBM 650 の前面パネル(1956年製造) 二五進法表示になっている。 IBM 650の前面パネルの裏側 ノルウェーの最初の IBM 650 (1959)。"EMMA" と呼ばれていた。CPU(右)、入出力装置(中央)、パンチカードソータ(左)。(オスロ、ノルウェー科学技術博物館) 650で使われていたタイプの真空管回路モジュール Bronx High School of Science での1960年の教室。IBM 650 の命令コード表が黒板の右上にある。 IBM 650(アイビーエムろくごーまる)はIBMの最初のコンピュータのひとつであり、世界初の大量生産されたコンピュータである。1953年に発表され、1954年の初出荷から生産終了の1962年までに2000システム以上が製造された。保守サポートは1969年に終了。.

新しい!!: MIX (プログラミング)とIBM 650 · 続きを見る »

IBM 7070

IBM7070は、1958年に発表された十進方式中間データ処理システムである。 IBM700/7000シリーズの一部であり、それまで真空管であった部分をトランジスタ化したIBM初のプログラム内蔵方式である。 「トランジスタ化した IBM 650」としてアップグレードパスを提供するよう設計されており、IBM 650やIBM 705の後継として期待されていたが、IBM 7070とIBM 650との命令において互換性を持つように設定されていなかったことや、古いプログラムを実行するためにシミュレータが必要なこと、IBM 705のグレードアップ版としても発売されたもののIBM 705の文字セットを完全に表すことができなかったことなど非互換性が多かったため、完全な互換性を持つIBM 7080への転換が推進された。 また、IBM 7070シリーズでは、5者択2符号を用いてコード化し、文字は2桁のコードを用いて表され、データは十進10桁で保存されており、CPUの速度は約27KIPSであった。 このシリーズでは後にIBM 7072(1960年)とIBM 7074(1961年)が発表されて、その後徐々にIBM System/360(1964年発表)に置き換えられていった。.

新しい!!: MIX (プログラミング)とIBM 7070 · 続きを見る »

IBM 709

IBM 709 の制御パネル(コンピュータ歴史博物館) IBM 709はIBMが1958年8月に発表した初期のコンピュータシステムのひとつ。IBM 704 の改良版である。IBM 709 では、入出力のオーバーラップ機能、間接アドレス指定、十進数命令などが追加されている。ワード長は36ビットで、アドレス空間は32Kワードであり、1秒間に42,000回の加減算または5000回の乗算が可能とされていた。 オプションのハードウェアエミュレータで IBM 704 のプログラムを実行することができた。これは初の商用エミュレータである。レジスタとよく使われる 704 命令が709のハードウェア上でエミュレートされた。複雑な 704 命令は 709 のソフトウェアでエミュレートされている。 709は真空管を使っている。709をトランジスタ化したのが IBM 7090 で、1959年11月に登場した。 バッチ処理OSの FORTRAN Assembly Program は、709向けに開発されたのが最初である。.

新しい!!: MIX (プログラミング)とIBM 709 · 続きを見る »

Minivac 601

Minivac 601 デジタル・コンピュータ・キット(Minivac 601 Digital Computer Kit)は、情報理論の先駆者であるクロード・シャノンがデジタル回路を使った教育用キットとして作り出した電気機械式デジタルコンピュータシステムである, Page 33, 1961-10, Popular Science。.

新しい!!: MIX (プログラミング)とMinivac 601 · 続きを見る »

MMIX

MMIX(エムミックス)は、ドナルド・クヌースがジョン・ヘネシー(MIPSプロセッサ設計者)や Dick Sites(Alphaプロセッサ設計者)の協力を得て設計した命令セット(命令セットアーキテクチャ、ISA)である。コンピュータプログラミングの「Art」を記している大著The Art of Computer Programming (TAoCP) において使用していた「MIX」の代替となるべく設計され、現代的な特徴を持つ。当命令セットを設計した後に執筆・改訂の TAoCP にて既に使用されている。 "MMIX" という綴りはローマ数字として解釈すると2009であり、前任のMIXの頭にMを付けたものであると同時に、2000年代のコンピュータ(プロセッサ)という意味を掛けているものと思われる(とはいえ、MIXの時の「実在のコンピュータ 16 種の型番から取って平均した」値の1009である、という主張にはかなりこじつけの気配があったのと同様、特に意味があるものではない)。.

新しい!!: MIX (プログラミング)とMMIX · 続きを見る »

PDPシリーズ

PDP-1 PDP-6 PDP-7 PDP-8/e PDP-11/40 PDP-12 PDP-15(一部) PDP-15用グラフィックス端末。ライトペンとペンタブレットが付属している。 PDPシリーズ(ピーディーピー・シリーズ)は、デジタル・イクイップメント・コーポレーション(DEC)社のコンピュータシリーズであり、1957年から1990年まで続いた。PDPは Programmed Data Processor の略である。PDPシリーズが登場した当時、コンピュータと言えば大きくて高価なメインフレームが一般的だった。PDPは、そのような大きなコンピュータが入り込めないミニコンピュータ市場を切り開いた。コンピュータを名乗らなかったのは、DECに資金提供していたベンチャーキャピタルがその言葉に警戒感を持っていたためである。 PDPマシンは基本的にワード長によってファミリに分けられる。例外は 16ビットのPDP-11で、アーキテクチャ的には最も複雑な 36ビットのPDP-6やPDP-10に類似している。.

新しい!!: MIX (プログラミング)とPDPシリーズ · 続きを見る »

System/360

フォルクスワーゲンで使われているSystem/360 System/360(S/360、システム/360、システムさんろくまる)は、IBMが1964年4月7日(日本では翌4月8日)に発表したメインフレーム コンピュータのシリーズである。1965年から1977年まで出荷された。あらゆる用途をカバーするファミリを形成し、小型から大型まで、商用から科学技術計算まで使われた。コンピュータ・アーキテクチャの確立により、IBMは互換性のある設計で様々な価格のシステムをリリースすることができた。最上位機種以外は命令セットをマイクロプログラム方式で実装しており、8ビットのバイト単位のアドレス指定、十進数計算、浮動小数点数計算などを備えている。.

新しい!!: MIX (プログラミング)とSystem/360 · 続きを見る »

The Art of Computer Programming

『』は、コンピュータプログラミングに関する書籍である。様々なアルゴリズムについて、その背景や歴史まで踏み込んだ徹底的な解説を行っている。著者のドナルド・クヌース は、自身のライフワークと位置づけている。 その全体構想から見れば現在も未完であるが、十分な業績としてみなされていることは、3巻初版までが刊行されていた1974年に受賞したチューリング賞の受賞理由に功績として本シリーズが含まれていることからも分かる。また、1976年に2巻の第2版の準備をしていた際に、初版のような鉛版による組版 (en:Hot metal typesetting) が行われなくなっていたために仕上がりに納得せず、組版システムの TeX を(当初は1978年のサバティカルが終わるまでには完全に仕上げるつもりで)作り始めてしまったことなど、逸話も多い。 現在3巻までと4巻の分冊が刊行されている。今後の計画についてはwebページで確認できるが、おおむね執筆開始当初の構想と変わっておらず、5巻は構文的 (syntactic) アルゴリズムについてで、9章が字句スキャナ、10章が(文字列)解析の技術、6巻は文脈自由文法の理論、7巻がコンパイラ技術となっている。ただし位置付けとして、5巻までの内容は central core of computer programming for sequential machines であるのに対し、6・7巻の内容は important but more specialized である、としている(またドラゴンブック等、この40年の間に書籍が充実した分野でもある)。 近年では、アスキーから日本語訳が出版されていた。2007年9月現在で3巻までと改訂版分冊1巻、4巻の分冊2,3が刊行されていた。その後、KADOKAWAドワンゴに在籍する元アスキーの編集者が担当する「アスキードワンゴ」レーベルにより、2015年6月の1巻再刊から再開され、2017年3月に4巻の最初のまとまった分冊である4A巻が刊行されている。 サイエンス社から出版されていた旧日本語訳版は、原著2巻相当分の4巻までしか出ていない。また、出版時期が古いためもあるが、専門用語について可能な限りカタカナ語を使わず訳すという少々冒険的な方針のために独特の用語が多用されており、和訳における専門用語の扱いにおける歴史的な一例にもなっている。.

新しい!!: MIX (プログラミング)とThe Art of Computer Programming · 続きを見る »

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