【第124回】
ソースコードとペーパークラフト
(05/09/05)
窓の杜高校、超パソコン部の部室。
あらあら、めも理ちゃん。今日は何かブツブツ言っています。
一体、何をつぶやいているのでしょうか?
お好み焼きソース
|
フランス料理の話なのか、それともお好み焼きの話なのか。
|
|
どうしたんですか、めも理ちゃん。何かあったのですか?
|
|
ああ、窓太いいところに来たわ。ねえ、“ソースコード”って何?
ソースってつくから料理の話だと思うんだけど、コードがいまいち謎なのよね。
|
|
えー、ソースコードは、お料理のソースとは関係ないですよ。
|
|
えっ、そうなの? それじゃあソースコードって、一体何なの?
|
|
そうですね。ペーパークラフトの型紙のようなものですよ。
|
|
ペーパークラフト? うーん、よく分からないわね。
|
|
そうですか。それでは少し、説明することにしましょう。
|
ソースコード
|
めも理と窓太の4コマまんが 「ソースコード」 |
|
さて、めも理ちゃんに質問です。
ペーパークラフトを作ったことはありますか?
|
|
小さい頃に作ったことがあるわよ。
ペーパークラフトの部品が印刷された型紙を切って、のりづけすれば完成するのよね。窓の杜でもよく紹介されているわね。
|
|
実はパソコンでも、このペーパークラフトの型紙と完成品のような関係になっているものがあるのです。
|
|
そうなの? それは、何なの?
|
|
ソースコードとアプリケーションです。
|
|
ソースコードとアプリケーション?
|
|
型紙があれば、めも理ちゃんがペーパークラフトを作れるように、ソースコードがあれば、アプリケーションを作れるのです。
そしてソースコードというのは、“プログラム言語”で書かれたテキストファイルになっています。
|
|
プログラム言語って何?
|
|
プログラム言語は、人間が理解できる文章としてプログラムを書いていくための言葉と規則のことです。
英語とか、フランス語などは人間向けの言語ですよね。プログラム言語は、コンピューター向けの言語と思っておけばよいです。
昔説明した、Javaなどのことですよ。
|
|
そういえば、教えてもらったわね。
それじゃあ、ソースコードがあれば、何もしなくてもアプリケーションができあがるの?
|
|
そういうわけではありません。
型紙があっても、めも理ちゃんが紙を切ったりのりづけしたりしないとペーパークラフトが完成しないように、ソースコードをアプリケーションに完成させるには、組み立てる人が必要です。
それが、“コンパイラー”というツールです。
|
|
コンパイラー?
|
|
コンパイラーというのは、『ソースコードからアプリケーションを作ること』を仕事とするツールのことです。
ペーパークラフトの型紙や組み立て説明書に日本語で指示が書いてあったら日本人向け、英語だとアメリカやイギリス人向け、フランス語だとフランス人向けとなりますよね。コンパイラーも、ソースコードに書かれたプログラム言語の種類ごとに対応するコンパイラーが存在しているのです。
言いかえれば、各コンパイラーは対応するプログラム言語で書かれたソースコードからのみ、アプリケーションを作ることができます。ですから、ソースコードに書かれているプログラム言語に、きちんと対応したコンパイラーを選ぶ必要があります。
|
|
へー、コンパイラーね。そういった、アプリケーションを作るツールがあるんだ。
|
|
そうです。
そしてインターネット上には、ペーパークラフトの型紙にあたるソースコードの形式でソフトが配布されていることもあります。
また、アプリケーションにソースコードが同梱されていることもあります。
|
|
へー。でも、なぜそういうことをするの?
|
|
これは、そのソフトの利用条件が関係している場合があります。
ライセンスによっては、自分でソースコードを改変して別のアプリケーションを作成できることもあります。
またアプリケーション使用中に問題が起こった場合、ユーザー自身がソースコードを直接確認し、不具合を修正できるように、ソースコードが同梱されている場合もあります。
そのほか、特定のプログラム言語を普及させるためにソースコードを配布していることもあります。
ソースコードは、開発者の考え方や方針によって、配布されていたり配布されていなかったりします。
|
|
ふーん。いろんな理由や方針があるのね。
ソースコードの世界も、なかなか奥が深そうね。
|
|
ええ、深いと思いますよ。
また、プログラム言語のなかには、ソースコードをアプリケーションに変換しないで、ソースコードのまま実行できる場合もあります。
|
|
それはどういった場合なの?
|
|
これは、“インタープリター型言語”と呼ばれる種類のプログラム言語の場合です。
この形式の言語でソースコードが書かれている場合は、ソースコードをアプリケーションという形に完成させる必要がなく、専用ツールを利用することでアプリケーションの状態にせずプログラムを実行できます。
型紙から使い捨てのペーパークラフトを作って、使い終わったら捨てるようなものです。
|
|
へー、プログラム言語にもいろいろと種類があるのね。少し教えてよ。
|
|
コンパイラーを必要とするプログラム言語の代表例としては、C、C++、Javaなどがあります。
インタープリター型言語としては、Javaスクリプト、Perl、BASICなどがよく知られていますね。
|
|
うーん、聞いてはみたけど、私の知らない用語ばかりだわ。
なんだか、ディープな世界に足を踏み入れてしまったようね。
|
ペーパークラフト
|
ペーパークラフトの話を聞いたから、実際にペーパークラフトの型紙を印刷してみたわよ!
|
|
へー、どんなペーパークラフトができるんですか?
|
|
できてからのお楽しみよ!
|
|
できましたか?
|
|
うーん、間違って関係ない場所を切ったり、変なところをのりづけしてしまったわ。
|
|
はぁ、めも理ちゃんは壊れたコンパイラーのようなものですね。
|
|
何、それ?
|
|
不器用なめも理ちゃんでは、ペーパークラフトは作れないと言っているのです。
|
|
むきーっ、じゃあ窓太が作りなさいよ!
|
|
えー! トホホ、なぜ私がめも理ちゃんのためにペーパークラフトを作らないといけないんですか。
|
今回出てきた用語の解説
【ソースコード】 アプリケーションのもとになるファイル。実態はプログラム言語で書かれたテキストファイル。各プログラム言語に対応したコンパイラーを利用することで、アプリケーションの実行ファイルを作成できる。インタープリター型言語で書かれている場合、実行ファイルを作成せずに、ソースコードを専用ツールに読み込ませてプログラムを実行する。
【プログラム言語】 人間が理解できる文章としてプログラムを書いていくための言葉とその規則。C、C++、Javaなどさまざまな種類のプログラム言語が存在する。
【コンパイラー】 ソースコードからアプリケーション実行ファイルを作成するツール。ソースコードのプログラム言語ごとに、それぞれ異なるコンパイラーを使い分ける必要がある。
【インタープリター型言語】 プログラム言語の1種。コンパイラーを利用して事前に実行ファイルを作成するのではなく、アプリケーションを実行するときに、専用のアプリケーションでソースコードを毎回読み込み、その場でソースコードに書かれた処理を実行する方式。
(クロノス・クラウン:柳井 政和)
|