Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

MASMとなでしこによるオリジナルコンパイラの制作 2

はじめてのなでしこ

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2006/12/11 00:00

今回は、いよいよVEFBLの開発言語である「なでしこ」を操作します。なでしこの基本的な文法をきちんと押さえてから、インタプリタ風に文字列を表示するプログラムを作ることにより、トークン分割についても解説します。

目次

はじめに

 本連載では、最近の日本語プログラミング言語の中で高いシェアを占める「なでしこ」を使用して、BASICライクな自作言語のコンパイラを作成します。

 前回は、コンパイラとアセンブラの基礎知識について説明しました。今回は、はじめてVEFBL(ヴェフブル)の開発言語、なでしこに触ってみます。なでしこの基本的な文法をさっと教えてから、コマンドラインへ言及し、続いてインタプリタ風に文字列を表示するプログラムを作ってみることにより、トークンについても勉強します。

対象読者

 技術レベルは特に問いませんが、なでしこの簡単な文法を前もって習得していることが望ましいです。「自分で作ったプログラミング言語でソフトを作りたい!」と考えている方も歓迎します。

 また、プラットフォームはWindows XPを推奨します。MASMアセンブラ(後述)のインストーラが、現在Windows XP以降のWindows NT系OSでしか動作確認できていないからです。これは、インストーラの起動時に使うWin32APIがWindows 9x系OSにないため、Windows保護例外エラーが発生するのが原因です。MacOSやLinuxなどでは言うまでもなく動作しません。

なでしこの入手

 「なでしこ」は、クジラ飛行机氏が開発した日本語プログラミング言語です。現在、日本語プログラミング言語の中で最もシェアの高い言語と言われています。しかし、一方で、プログラミング言語全般では、あまり周知されていない言語でもあります。そのため、ここでは、なでしこの基礎についても解説を加えていきます。

 なでしこは以下の公式サイトからダウンロードしてください。ダウンロードしたファイルを解凍し「setup.exe」を実行すると、インストールできます。

なでしこの基本知識:実際に使ってみよう

メッセージボックスの表示

 インストールが完了したら「なでしこエディタ」(nakopad.exe)を起動し、次のプログラムを打ち込んで、[F5](実行)を押してみましょう。

なでしこでの初プログラム
「日本語で誰でも簡単プログラマー」と言う。
実行結果
実行結果

 このサンプルで日本語プログラム言語の使い方をつかめたでしょうか。なでしこでは、命令をする時、次のように記述します。

なでしこでの関数の使用方法
(引数)(助詞)(命令)。

 今回のサンプルでは、引数が「日本語で誰でも簡単プログラマー」、助詞が「と」、命令が「言う」に該当します。最後の「。」は必須ではありませんが、本連載では「より日本語ライクにプログラミングを行う」という名目の上、つけることにします。

ウィンドウへの表示

 先ほどのメッセージボックスの後ろに表示されていたウィンドウに、何か表示させたいと思います。

ウィンドウへ表示
「あえいうえおあおかけきくけこかこさせしすせそさそ」と表示。
実行結果
実行結果

 「言う」と「表示」で表示され方が変わります。この2つの命令の雰囲気をつかめたでしょうか。続いて条件分岐を説明しますが、その前に「変数」について確認します。

変数

 なでしこでは、変数の宣言が不要です。初期化もする必要がありません。プログラムの中で宣言せずに、突発的に使用できます。変数は次のように使います。

変数
テスト変数は「文字列」。
テスト変数を表示。
数値テスト変数は37。
数値テスト変数を表示。
実行結果
実行結果

 「(変数)は(値)。」の形式で記述すると、変数に値が代入されます。他にも方法はあるのですが、本連載では基本的にこの代入方法で統一します。

 変数に指定した単語は、括弧(「」)がないと変数の中身を表示します。また、なでしこでは、変数に「文字列」や「数値」という違いを意識する必要がなく、型を変換しなくても、数値を文字列として表示してくれます。

条件分岐

 なでしこにおける、条件分岐の構文は次のとおりです。

なでしこ構文~条件分岐
もし、(変数)が(値)ならば、
 (処理)
違えば、もし、(変数)が(値)ならば、
 (処理)
違えば、
 (処理)

 実例を見た方が分かりやすいと思います。

条件分岐
テスト数値は7。
もし、テスト数値が5ならば、
「5です」と言う。
違えば、
「5ではありません」と言う。

 結果は予想できますね。テスト数値に入っている値が、もし、5だったら「5です」といい、5以外だったら「5ではありません」といいます。テスト数値の値は7ですので、実行結果は「5ではありません」となります。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • KMY(かみぃ)

    とあるごく平凡な中学生。兵庫県在住。 日本語プログラミング言語「なでしこ」に惹かれ、たくさんのプログラムを作り利用している。 なでしこ以外にも、他の言語を心得ており、HTMLがなでしこの次に得意であり、Perlが第3位(かも)。ベクターにも多彩な作品を残している。 作文がど苦手。 KMYpa...

バックナンバー

連載:MASMとなでしこによるオリジナルコンパイラの制作
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5