コンパイラへの第一歩
コマンドライン
皆さんは、コマンドラインを知っていますか? コマンドラインは、MS-DOSの時代によく使われたものです。現在、Windows XPにおいても、コマンドプロンプトを起動すればコマンドラインによるプログラムの実行を行うことができます。
コマンドプロンプトを実際に起動してみましょう。[スタートメニュー]-[すべてのプログラム]-[アクセサリ]-[コマンドプロンプト]より起動できます。
画面を見てみると、黒い画面の中で白いカーソルが点滅していて、普段、WindowsでのGUI操作に慣れた方にはあまり馴染みのない感じがするかもしれません。しかし、これから操作していく大切な画面なので、この雰囲気には今のうちに慣れておいてください。では、その白いカーソルから、次のコマンドを実行してみましょう。
dir /b
上記の画面とほぼ同様の表示がされたでしょうか(画面上、ローカル環境を示す箇所は隠させてもらいました)。環境によって表示されるテキストは違います。でも、コマンドラインを知るにはこれで十分です。
では、コマンドラインとはなんでしょうか。先ほどの「dir /b」のどの部分がコマンドラインなのでしょうか。
答えは、「dir /b」全体なのです。コマンドラインとは、コマンドを入力する行のことです。すなわち、先ほど入力した文字列全体がコマンドラインなのです。このコマンドラインにより、「dir」という名前の、コマンドプロンプトに内蔵されている実行ファイルを起動しているのです。
では、dirの後に書いている/bとは何でしょうか。さっき述べた実行ファイルの名前には書いてありません。では、これは何かといいますと、コマンドラインオプションといいます。そもそも「dir」は、指定したディレクトリの中にあるファイル情報の一覧を表示するコマンドです。それに「/b」という文字列を渡しているので、コマンドはこの文字列に対して適切な処理をします。これがコマンドラインオプションです。ちなみにdirに「/b」を指定すると、ディレクトリのファイルとフォルダ名のみを表示します。余計なものは表示しません。
なでしこからコマンドラインを操作する
なでしこからコマンドラインを操作する方法は簡単です。「コマンドライン」という名前の変数に、配列形式で格納されています。配列について知らない方もいると思いますが、とりあえず「コマンドライン¥1」と記述すると、1つ目の引数を受け取れることを機械的に覚えてしまってください。
ここでは、コマンドラインの引数で指定したファイルの中身を表示する例を紹介します。まず、プログラムは次のように記述します。
もし、コマンドライン¥1が空ならば、終わる。 コマンドライン¥1を開く。 それを表示。
中身の解説は後でしますので、今は続く処理を先に実行してしまいましょう。
- なでしこの実行形式を「コンソール」に変更します。[設定]-[なでしこ実行方式]-[コンソール]を選んでクリックします。
- ファイルを保存します。ファイルを保存するには、[ファイル]-[名前をつけて保存]を選択します。保存する前に「vefbl」フォルダを作っておきましょう。今回は、「My Document\samples\codezine」の直下に「vefbl」フォルダを作成しました。その中に、「build.nako」というファイル名で保存します。
- なでしこから、実行ファイルを作成します。[ファイル]-[実行ファイル作成]を選択してください。
- 立ち上がったダイアログボックスの[作成]ボタンをクリックし、先ほど作成した「vefbl」フォルダの中に、「build.exe」という名前で保存してください。
- 次は、エクスプローラから「build.exe」のできたフォルダを開きます。フォルダを開き、アドレスバーに表示されている文字列をコピーします。文字列を選択し、右クリックでメニューが開くので[コピー]を選択します。
- コマンドプロンプトに「cd 」を入力し、右クリックして[貼り付け]を選択し、[Enter]キーを押下してください(cdの後に半角スペースなどの空白が必要です)。




- 次のコマンドを打ち込んでください。すると、「build.nako」のファイルの内容が表示されます。
build build.nako
うまく動作しない場合
うまく動作しない場合は、「vefbl」フォルダのディレクトリ構成が次のようになっているかを確認してください。
build.exe dnako.dll plug-ins\nakofile.dll plug-ins\nakostr.dll
必ずしもこのような構成にする必要はないのですが、この4つのフォルダとファイルが最低限必要なものです。同じディレクトリの他のファイルは、できたら削除しないてください。
こうすればもっと便利
レジストリを操作して、簡単にコマンドラインの作業を行えるように設定を変更します。
HKEY_CLASSES_ROOT\Folder\shell\dos\command の 「(規定)」 に
「cmd.exe」を設定
もし、キーがなければ新規作成します。レジストリの操作に不安を覚える方もいらっしゃるでしょう。そこで、なでしこで同様のレジストリ操作をするプログラムを作成しました。以下のプログラムをコピーして、なでしこから実行してください。
「HKEY_CLASSES_ROOT\Folder\shell\dos」のレジストリ開いて、Hに代入。 Hで「」に「コマンドプロンプトから開く」をレジストリ書く。 Hのレジストリ閉じる。 「HKEY_CLASSES_ROOT\Folder\shell\dos\command」のレジストリ開いて、Hに代入。 Hで「」に「cmd.exe」をレジストリ書く。 Hのレジストリ閉じる。
上記のプログラムを実行すると、フォルダを右クリックした際に表示されるショートカットメニューに、[コマンドプロンプトから開く]が追加されます。
レジストリを操作するのが怖いという方は行わなくても結構ですが、その場合には、コマンドプロンプトを開くたびに、その都度「cd」コマンドを実行し、「vefbl」フォルダに移動することになります。本連載では、レジストリ操作を前提として進行していきます。
「エクスプローラから、直接、build.exeをダブルクリックして起動すればいいのでは?」と思う方もいるかもしれません。試しに「build.exe」をエクスプローラからダブルクリック起動してみてください。いかがでしょうか。黒いコマンドプロンプトの画面がぱっと開いて、すぐに閉じてしまいました。これでは表示の確認ができません。コマンドプロンプトから起動すれば、閉じないで表示を確認することができます。
このレジストリ操作の利点は、「cd」をその都度行わないでよいことなのですが、一つ欠点があります。「vefbl」フォルダを選択した状態で、先ほど作成した右クリックメニュー[コマンドプロンプトから開く]を選択してみてください。
無事にコマンドプロンプトが開きましたが、カレントディレクトリが一つ上の階層である「codezine」がカレントディレクトリとして起動しています。
右クリックしたフォルダ自体がカレントディレクトリになるように、筆者のほうでも調べてみたのですが、その点は分かりませんでした。そのため、大変申し訳ないのですが、当分の間は、
cd vefbl
を実行して「vefbl」フォルダに移動してから、コマンドラインの手続きをしてください。結局、その都度「cd」が必要になってしまいましたが、打ち込む内容は少なくてすみます。
改めてコマンドライン
改めて、コマンドラインから「build.exe」を実行してみましょう。簡単です。先ほどと同様に「vefbl」フォルダを右クリックし、[コマンドプロンプトから開く]を選択します。表示されたコマンドプロンプト画面で、「始めのコマンド」である「cd vefbl」を入力し、[Enter]キーを押下します。そして、以下のコマンドを打ち込みます。
build build.nako
では、次は以下のコマンドだけを書いてください。
build
実行すると、何も表示されません。これではきちんと実行されているかが分かりません。起動できたかを確かめたいので、コマンドライン¥1が空だったら「ファイル名を指定してください」と表示するようにコードを変更します。1行目を変えるだけです。
もし、コマンドライン¥1が空ならば、 「ファイル名を指定してください」と表示。 終わる。 コマンドライン¥1を開く。 それを表示。
最初の3行が変わっています。この修正した「build.nako」を元に再度実行ファイルを作成し、先ほどと同様にコマンドプロンプトから「build」だけ打ち込んでください。すると、今度はきちんとメッセージが表示されました。このメッセージはなくてもいいのですが、ちゃんと起動できたのを確認できて、すこし満足です。
プログラムの説明
今まで実行してきた「build.nako」プログラムについて解説します。
開く
Sを開く
「S」は、開くファイル名を指します。「開く」により、Sのファイル名を開きます。内容は「それ」に格納されます。
終わる
終わる。
「終わる」により、プロセス(プログラム)の実行を終了します。
だいたい想像がつくと思います。日本語プログラミング言語「なでしこ」は、「なでしこで誰でも簡単プログラマー」をキャッチフレーズとしていますので、日本語をメインの言語としている人なら誰でも簡単に習得できるように言語仕様が工夫されています。








