コンパイル言語とインタープリタ言語
コンパイラ言語とは?
コンパイル言語とは?
vi などでテキストのソースコードを書いた後に、機械語に変換するためにコンパイルします。(C言語、C++やJavaなど)
C言語で「hello world!」を標準出力するプログラムを作る。
2 コンパイルして hello という名前の実行ファイルを作成する。
3 コンパイルされた hello を実行する。
・ コンパイルされたプログラムは機械語に変換されます。プログラムを実行するとインタプリタ言語と比べて高速で処理をする事が出来ます。
・ ソースファイルと実行ファイルが分離しているので、ソースコードを見られない。解析されにくいという面もあります。
インタープリタ言語とは?
インタープリタ言語とは?
プログラム実行時にソースコードを1行ずつ解析して機械語に変換するインタプリタ型の言語です。(PHP言語、Ruby、JavaScriptやPythonなど)
PHP言語で「hello world!」を標準出力するプログラムを作る。
2 php hello.php を実行する。
・ コンパイルされたプログラムと比べて処理速度が遅いと言われています。
・ コンパイル作業をする手間が省けます。
・ 今のコンピュータは処理速度が速いので、大量の計算が必要ない限りスピードを気にしなくてもよくなっています。
Linux はコンパイル言語もインタープリタ言語も使えます
豊富なプログラミング環境が揃っている linux ですので、コンパイル言語のC言語やインタープリタ言語のPHP、Ruby、Perlなどいくつもの言語が無料で使えます。
linux にはシェルスクリプトとよばれるコマンドラインインタプリタ向けに書かれたスクリプト言語が標準で装備されています。
これは、プログラム開発というよりはコマンドラインから入力する一連の作業をつなぎ合わせてバッチ処理をさせたり、あらたにコマンドを作るような使い方をします。
UNIX/linux の基本思想に「スモール・イズ・ビューティフル」があります。
ひとつのプログラムには1つの事をやらせて、ツールを繋いで処理をさせるという発想があります。(フィルタ やパイプを使いこなす)
仕事の仕様が変わるたびにプログラムの変更が必要になるので、処理スピードより移植性を優先します。
linux プログラマは、人のソースを再利用したり不要な手作業を自動化したりと、ソフトウェアをテコとして使います。
カーニハン氏の「UNIXプログラミング環境 」は、プログラミング初心者はもちろんある程度の経験を積んだ方でも、UNIX の思想が伝わってくる読んでタメになる、楽しめる本です。