SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

コンパイラを作成してコンパイルをする

コードジェネレータ

本稿でのコードジェネレータの定義について

 「コードジェネレータ」と言われて、「コードをジェネレータ」って、「もしかして寝れた」、の言い間違いだろうかと、極めて奇妙な考えをしている人もいるかもしれませんが(実はこの言葉を初めて聞いた時の自分が考えたことです……)、ここでは、コードジェネレータを「プログラミング言語のコードをアセンブラ言語(MASM)に変換するプログラムを書く事、またそのプログラム」と定義します。

コードジェネレータの実装の流れ

 コードジェネレータの実装は、非常に重要で、本稿の要となる作業です。実装の流れは、以下の通りとなります。

  1. 実装する機能の掲示
  2. アセンブリでの機能の実装、アセンブルでの安全確認
  3. コンパイラからのアセンブリ出力のアルゴリズムの確認
  4. コンパイラへのコードの記入
  5. 試しにコンパイル(失敗したらそのプロセスからやり直し)

コンパイラ「KMYsofts japanese」

 これからこの講座でコードジェネレータを進めていく上で、(ようやく)「KMYsofts japanese」(以下、KJ)の中のファイルを利用します。KJとは、自分が学習用に作成した日本語プログラミング言語コンパイラです。学習用に作成していたとは言え、いろいろな用途に使うことができます。

インストール

 インストールファイルは、それぞれ以下の手順で入手します。なお、今回も前回と同様、ユーザー用のファイルは「My Document」フォルダの直下に「samples\codezine\vefbl」フォルダを作成し、そこを使います(My Documentフォルダが「C:\Documents and Settings\ユーザー名\My Document」のときは、「C:\Documents and Settings\ユーザー名\My Document\samples\codezine\vefbl」となる)。

  1. MASMのダウンロードとインストール
  2. MASM Version 9 Windows NT Editionより、「m32v9r.zip」(Win9x系OSは不可)をダウンロードし、「Cドライブ」にインストールする(以降、MASMをCドライブにインストールしたこととします)
  1. KJパッケージのダウンロード
  2. KMYsofts japanese Many Version Packagesから、最新のKJのパッケージ(編集部注:2007年2月1日現在、バージョン0.6.5.0が最新)を入手し、適当なところに解凍する
  1. ファイルの移動
  2. 2.で解凍したファイルの中で、以下のファイルを指定した場所に移動する
    • 「bin\iolib.inc」を「C:\masm32\include」フォルダへ移動
    • 「bin\iolib.lib」を「C:\masm32\lib」フォルダへ移動
    • 以下のファイルを、前回作成したvefblフォルダ(「ユーザーのマイドキュメント\samples\codezine\vefbl」)に移動する
      • 「bin\astest.exe」
      • 「bin\iolib.dll」
      • 「bin\makejapanese.bat」
      • 「bin\makewinjapanese.bat」
      • 「vsvars32.bat」
  1. 不要になったKJのパッケージを削除する

 上記の手順を踏んだら、vefblフォルダのファイル構成は次のようになります。このうち「plug-insフォルダ」「build.exe」「build.nako」「tokentest.nako」「dnako.dll」は前回作成したファイルおよびフォルダです。

ファイル構成(太字が今回配置したファイル)
ユーザーのマイドキュメント
  +---samples
        +---codezine
               +---vefbl
                     +---build.exe
                     +---build.nako
                     +---tokentest.nako
                     +---dnako.dll
                     +---astest.exe
                     +---makejapanese.bat
                     +---makewinjapanese.bat
                     +---vsvars32.bat
                     +---plug-ins
                           +---nakofile.dll
                           +---nakostr.dll

 すべてのファイルの名前は変更しないでください。また、上記以外のファイルが混ざっている場合は、消したりせずに、そのまま配置しておいてください。

次のページ
コンソール上への文字列の表示

この記事は参考になりましたか?

MASMとなでしこによるオリジナルコンパイラの制作連載記事一覧

もっと読む

この記事の著者

KMY(かみぃ)

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/766 2007/03/08 19:10

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー