魔王の憂鬱 -13ページ目

魔王の憂鬱

情報通信っぽいことを、分かりやすく述べているつもりです。

まだセキが止まらない・・


あまりにもコンピュータやプログラムの知識がないことが思い知らされ、

ブログのタイトル通り、少し憂鬱な気分に陥ってしまいました。


まぁ、知らないことは仕方がありませんので、

ひたすら勉強するのみです。


で、

どうせなら、私が勉強した内容を、ここで展開しようかなと思いました。

人に教えることで、自分の中に知識としてしっかりと残すことができるのです。



本日の内容は『コンパイルについて』です。


コンパイルというのは、人間の書いたプログラムコードを、

コンピュータの分かるようなマシン語というコードに置換することです。

コンパイルする装置を、コンパイラといいます。


使用する言語によって、コンパイルの方法も異なっております。

今回は、「C」と「java」に絞って、両者の違いについて述べたいと思います。



・C

C言語は「コンパイラ言語」と呼ばれており、

プログラムコードをマシン語に、一括してコンパイルします。


・java

javaは「インタプリタ言語」と呼ばれております。

インタプリタというものは、プログラムを一括ではなく

1行ずつ解釈しながら実行するというものです。

javaは、コンパイラによって「中間言語」という独自の言語に一旦置換し、

「中間言語」をインタプリタによって実行するという処理を行っております。



javaはなんて面倒くさいことをしているんだと思いますよね。

その辺りは後で話すとしまして、先に両者の違いについて掘り下げます。



コンパイラ言語は、一括してソースを変換します。

例えば、プログラムソースの最後の最後にエラーが合った場合、

『ダメですよー』なんて言われて、コンパイルは失敗します。

ただ、処理速度はインタプリタ言語に比べると早いです。


といいますのも、

インタプリタ言語というものは1行ずつソースを実行する訳ですが、

実行にあたって、ソースの1行1行を解釈する処理が入ります。

これにより、コンパイラ言語より処理速度は遅くなります。



現時点では処理速度の面でコンパイラ言語の方が有利ですね。

インタプリタのメリットはないのでしょうか。



実は、コンパイラ言語に関して、コンパイルされたソースは、

コンパイルされたハードウェアやOS(windows, linuxなど)でしか実行されないのです。


(今更ですが、、「ラ」と「ル」に気をつけて読み進めてくださいね。)


それに比べまして、インタプリタ言語は、

各OSに対応するインタプリタさえあれば、同じように実行することができます。

このように、異なるハードウェアやOSに対してもあまり処理が必要ないことを

『移植性が高い/互換性が高い』と表現します。

つまり、インタプリタ言語は、移植性/互換性が高いのです。



ここまでで、コンパイラとインタプリタについて述べましたが、

そろそろjavaに戻りましょう。


javaは、プログラムソース→中間言語をコンパイラ、

中間言語→実行をインタプリタで行うものでしたね。

中間言語はjava独自のものです。


つまり、javaの中間言語を実行させるインタプリタというものが必要で、

javaには各OSに対応したインタプリタがあるということです。


・・これ、ネットでダウンロードできるんですよ。

「java VM」または「JVM」というものですが、今回は省略します。

実は、この辺りに関しても勉強中ではあります。もしかしたら今後解説するかも?


話を戻しまして・・、

実行速度&移植性と、javaは両者をいいとこどりしたものだと分かります。

ただ、最近のコンピュータは高性能ですので、

プログラムの規模にもよりますが、絶望的な程の速度の差はないかと思われます。



プログラムの規模やその目的によるというのが結論で、

コンパイラ・インタプリタのどちらが良いかというのはよく分かりませんでした。

中には、javaのように併用しているものもあります。



こんな感じですかね。

今回はコンパイルについて、2つの方法をご紹介しました。

(併用も含めれば3つ?まぁ、大別して2つということにします。)

知っておいて損はないかと思います。それではまた。

2週ぶりです。


さて、新天地での業務が始まりました。

周りの環境が一変し、まずは慣れるのに苦労してます。

私の様子を見たある方曰く、『ネコの皮を10枚くらい被っているように見えた』そうです。

んー、普段そんなにノビノビしていたっけなー;


業務内容も若干変わりまして、

現在、Excelのマクロについて勉強しているところです。


マクロというのは、Excelにおけるプログラミングだと思っていただければ結構です。

マクロを使うことで、簡単なことでしたら文字色や太さの変更など、

Excelの上部にあるツールバーと同じ機能を作成することができます。


まだ詳しく分かっておりませんが、

Excel上にボタンを配置し、それを押下することで、

入力した値に基づいてファイルを作成したり、データ計算を出力したりもできるらしいです。


マクロは必ずしもよい動作のみを行うものではないらしく、

ウイルスのような動作を起こすプログラミングを記述をすることもできるらしい。


まだ基礎の基礎しか勉強していませんが、

なにかしら役に立ちそうなマクロが作成できれば、

公開できる範囲でご紹介したいと思います。


今週もあまり情報技術的なことをお話できず、すみません。

環境慣れ&気管支炎が治るまでご勘弁を。

11月末で、現在携わっているプロジェクトが一段落します。

来月より、新しい環境・新しい仕事が始まります。


冬用のスーツを買いました。

髪を切りました。

こたつを出しました。


暦の上では、12月より冬となります。

気分を一新し、次の仕事も頑張りたいと思っております・・が!


11月が あと2日残っております。

ここで気を抜いてはいけません。


引継ぎ・片付けなど、まだ作業は残っております。

これは11月最終日になりそうだなー。



今回は「こたつ」つながりで「ハロゲン」とかけて、何かお話しようかと考えておりましたが、

化学の話についていけずに断念。


もうハロゲンとか、ウロ覚えになってしまっていて、

周期表で「Hr」を(ハロゲンの元素記号だと思い込んで)探していました。




そんな元素記号は周期表に存在しませんでした。




途中から恥ずかしくなってきたので、このネタはボツになりました。

こういう日もあります。