言語プロセッサ
Pythonはインタープリタ言語らしい。インタープリタとコンパイラの違いが分からなくなったので、ちょっとまとめた。(出典:『パソコン用語辞典』など) なんだか、手間がかかってしょうがないので、まとまってる本をどかっと一冊暗記する、みたいな慣れた手順が踏みたくなってきた。だけどそういう事をカリキュラムで強制されるのが大嫌いなんだけど、どうすればいいだろう。山川の世界史みたいなやつが欲しい。取り組み方の手順がとても文系で、Pythonというおもちゃ自体を実際に触る方にはあんまり気が向いてないのもおもしろい。
人間が既述したプログラム文(ソースコード)を、コンピューターが解釈して実行できるように翻訳する仕組みの一種。インタープリタがソースコードを一行ずつ翻訳し、その命令をコンピューターが逐次実行する。こうしたインタープリタ型プログラミング言語にはBASICやJavaScriptがある。これに対して、ソースコードをコンピュータが実行できる形にまとめて翻訳する仕組みのことをコンパイラーと呼ぶ。
インタープリタ言語
Python とか。
プログラミング言語で記述されたプログラムを、CPUが理解できる機械語に一括変換するソフトウェア。変換することをコンパイルするという。通常、C++やFORTRANなどプログラミング言語のパッケージソフトという場合は、コンパイラーを含めたその言語の開発ツールセットを指す。
変換したプログラムは機械語となり、変換時に指定した特定のCPUで実行可能な形式になる。なお、変換方式には一括変換するコンパイラーの他に、一行ずつ変換して実行するインタプリタ―がある。
コンパイラーをセットに持つ言語がおそらく大半を占める。
アセンブリ言語で書かれたプログラムを、CPUが実行できる機械語に変換するソフトのこと。アセンブリ言語は機械語とほぼ1対1に対応する短い英単語(LOAD, ADDなど)と、アドレスやデータなどの数値を組み合わせた命令を並べたもの。英単語部分はニーモニックと呼ぶ。アセンブリ言語で記述したプログラムはサイズが小さく、実行速度も速い。機械語をアセンブリ言語に変換するソフトを逆アセンブラーという。
アセンブリ(言語)
CPUが直接、解釈して実行できる命令。16ビットや32ビットといった一定長のビット列が機械語の一命令となる。命令の種類はCPUによって異なることが多い。
通常、プログラムを開発するときには、C言語などプログラマーが理解しやすい構文規則を備えたプログラミング言語で記述する。完成したプログラムは、コンパイラーと呼ばれる変換ソフトを利用することで、CPUが実行できる機械語になる。なお、プログラミング言語の中でアセンブリ言語は、機械語とほぼ1対1に対応する内容となっており
そしてそれらの総称が、
言語プロセッサ
あるプログラミング言語を、別のプログラミング言語に翻訳するソフトウェア。
Q.
1バイトが8ビットで固定なのかどうかが不明。64ビットCPUは64ビットで1バイトなのかどうか
コンパイルという動詞はインタープリタ言語についても使うのかどうか→使う。または、解釈と言う。
きかいご機械語 【 machine language 】
マシン語
マイクロプロセッサが直接解釈・実行できる言語。数字の列で表現され、人間が簡単に理解できるような形式にはなっていない。
マシン語を直接入力してプログラミングを行うこともできるが、通常、マシン語のプログラムを作成する場合はマシン語の命令と一対一に対応したアセンブリ言語(ニーモニック)を使う。ニーモニックは、例えば、値のコピーに「mov」という単語を用いるなど、意味を類推しやすいアルファベットの並びになっている。
プログラミング言語は、より機械が解釈しやすい言語を低水準(低レベル)、人間が解釈しやすい言語を高水準(高レベル)というが、マシン語はもっとも低水準の言語である。
マシン語は直接プロセッサが実行するコードであるため、コンピュータのあらゆる機能を利用することができ、また、実行速度を向上させやすい。このため、ハードウェアを制御するデバイスドライバや、OSの基盤となる部分などではアセンブリ言語による開発が行われることが多い。
その反面、マシン語は複雑な、あるいは大規模なプログラムの開発には向かないため、アプリケーションソフトの多くは高水準言語によって開発され、コンパイラやインタプリタなどを使ってコンピュータが自動的にマシン語に変換して実行するようになっている。
機械語とは 〔 マシン語 〕 【 machine language 】 - 意味/解説/説明/定義 : IT用語辞典
そして、『本物のプログラマ』のこのくだりを思い出した。
PROGRAMMING TOOLS
プログラミングツール--------------------
本物のプログラマは、どんなプログラミングツールを使うのだろう? 理論的には、本物のプログラマはその手になるプログラムを、コンピュータの前面パネルから直接入力して動かすことができる。コンピュータが前面パネルを備えていた頃、これは時おり、一般的に行なわれていたのだ。典型的な本物のプログラマはブートストラップローダの16進コードを丸ごと憶えていて、プログラムエラーでシステムが破壊されるたびにトグルスイッチで入力したのだ。(その頃は、メモリはメモリだった -- スイッチを切っても、どこかへいったりはしなかった。今日では、メモリは忘れてほしくないことを忘れてしまうか、あるいは忘れてほしいものまで長いあいだ抱え込んでしまうかのどちらかだ.) シーモア・クレイこそは伝説の人物だ。スーパーコンピュータ クレイ I と、コントロールデータ社のほとんどのコンピュータの発明者である彼は、実際に CDC7600 用の最初のオペレーティングシステムを、電源を入れたあと前面パネルのトグルスイッチからメモリへ直接入力したのだ。シーモア、言うまでもなく、彼こそ本物のプログラマだ。
私の好きな本物のプログラマに、テキサスインスツルメンツのシステムプログラマがいる。ある日、重要な仕事を保存している最中にシステムがクラッシュしたというユーザから、長距離電話を受けた。ジムは電話で損傷を修復することができた。彼はまずユーザに指示して、ディスクI/Oのインストラクションコードをトグルスイッチから入力させて、システムテーブルを16進で修復し、レジスタの内容を電話での会話だけで読みとることができたのだ。教訓:本物のプログラマはふつうキーパンチャーとラインプリンタをツールとして使うが、緊急時には前面パネルと電話でこなしてしまう。