コードのライフサイクルの基本

このレッスンは約15分程度で完了します。

最初に 基本コーディングスタイル のレッスンを終了していなければなりません。

解説

このレッスンでは、 M言語でコードを書く ライフサイクル のための演習を支援します。

これは、特にGT.Mコンパイラに最適化されていて、他のMシステムでは適用できない場合があります。

ファイルの編集

GT.Mインタプリタから ZEDIT コマンド を呼び出すことによって、ファイル編集を開始することができます。

引数は、拡張子を付けずに、 Linuxのファイルシステムの有効なファイル名でなければなりません。

ZEDIT "myprogram"

これは、デフォルトのテキストエディタを開き、プログラムのコードの入力を開始できるようになります。プログラムはMで書かれるので、ZEDITコマンドでそれを参照するには、”.m” の拡張子を使用する必要があることに注意してください。

これは、ZEDIT “test.m”コマンドを使用するようにDO ^testを呼び出すルーチンを編集することを意味します。

デフォルトのエディタは Vim です。お好みのテキストエディタを指し示すために、Linux シェル環境変数 EDITOR にセットすることによって、このデフォルトを変更することができます。

一度エディタを開いて、入力することができます、例えば:

test ; my first program
  write "hello",!
 quit

次に、ファイルを保存してエディタを終了します。

GT.Mプロンプトに戻るでしょう。

GTM>

ファイルは、 gtmroutines 環境変数に定義されたディレクトリに保存されます。コマンドを使用して、Linux シェルで、この変数の内容を確認してください。

echo $gtmroutines

ファイルは、拡張子 ”.m” で保存されます。

上記の例では、ファイルが存在するでしょう。

myprogram.m

先ほど書いた内容は、Mの中の ルーチン として通常に参照しています。

プログラムの最初の行は、テキストの最初のカラムに “test” の文字を持っていることに注意してください。これは、Mの中で複数の場所からこのコード行を参照することが可能な “test”が ラベル であることを示しています。 ラベルは、1つのスペースとその後に続く コメント の始まりを示すマークである ”;” で表されています。 コメントの範囲はセミコロンから行末までです。

ルーチンの2行目は、2列目に、最初のスペースの後に開始されます。これは、ワードがラベルではなくコマンドであることを示します。これは、WRITEコマンドの例を示します。WRITE コマンド が何かは、既にカバーしています。

ルーチンの3番目と最後の行には、 最初のスペースの後に続く QUIT コマンド が含まれています。QUITコマンドは、実行したルーチンとこのルーチンを呼び出したコードのセクションに戻りの終わりを示します。

ファイルのコンパイル

ZLINK コマンド は、GT.M環境内でファイルをコンパイルするために使用されます。

ZLINK "myprogram"

プログラムは、HALTしない限り、エディタで変更されるたびにコンパイルする必要があります。このZLINKコマンドは、メモリ内のプログラムのコピーを消去し、再コンパイルする前に、ディスク上の ”.m” ファイルをチェックすることをGT.Mに強制します。コピーがメモリにない場合は、GT.Mはサイレントに、そのソースコードより最新である任意のコンパイルされたコードを再コンパイルします。

コードの実行

DO コマンド は、そのエントリポイントとしてサービスされるラベルから始まる指定ルーチンの実行をトリガするために使用されます。

上記の例では、コマンドを使用してGT.Mプロンプトからこのルーチンを実行できます。

GTM> DO test^myprogram

これは “myprogram” という名前のルーチン内のラベルが “test” で識別されるサブルーチンを呼び出し、実行されます。

hello
GTM>

外部編集

GT.Mのインタープリタ環境を入力せずに、Linuxシェルのコマンドラインからライフサイクルを実行することも可能です。

はじめに、 gtmroutines 環境変数に定義されているディレクトリに移動します。

次に

vim  myprogram2.m

write the code

test ; comment
  write "hello2",!
 quit

プログラムを保存してエディタを終了します。(2番目と3番目の行の先頭のスペースに注意してください)

外部のコンパイル

一度Linuxシェルのコマンドラインに戻って、次のように入力します:

$ mumps myprogram2.m

これが、ルーチンの コンパイル のトリガーとなり、追加ファイルになります。

myprogram2.o

同じディレクトリにオブジェクトファイルが作成されています。

Linux シェルで “ls” コマンドでこれを確認でき、以下のように表示が返されるでしょう。

myprogram2.m
myprogram2.o

外部実行

最後に、LinuxシェルコマンドラインからMコードを 実行 するには、次のコマンドを使用することができます:

mumps -r test^myprogram2

テキストをプリントアウトします。

hello

そして、Linuxシェルプロンプトに戻ります。

要約

開発のライフサイクルは、次のようになります。

vim             myprogram.m
mumps           myprogram.m
mumps -r        test^myprogram

[OK]、 Vim とは異なるエディタ使用することも選択可能です。しかし... とても嬉しい?

次のレッスン: 演算子の優先順序

inserted by FC2 system