前ページへ インストール Net Express による開発サンプルセッション 次ページへ

第 3 章 サンプルセッション

このサンプルセッションでは、Server Express製品の中心的なコンポーネントに親しむことができます。「まるばつ」の名前で知られたゲームのプログラムを例題として使用し、コンパイル、アニメート、実行、リンクなどの作業の基本的な流れを理解することができます。

ここで紹介される機能の詳細については、それぞれのマニュアルにおいて解説されます。


注: 『付録A UNIXのキー割り当て一覧』に、この章で述べるキーが、実際にどのキーにマップされるかが述べられています。


3.1 プログラムの準備と使用

このサンプルセッションでは、 Server Express で使用するアプリケーションの準備に必要な手順を記載します。

コンパイル:構文のチェックおよび中間コードの生成

アニメート:テストおよびデバック

生成:固有マシンコードで目的プログラムを生成

実行

リンク:目的プログラムにMicro Focus ランタイム環境から必要な支援モジュールを加えた単独で実行可能なファイルを生成

3.1.1 コンパイル

  1. 原始ファイル「tictac.cbl」を作業ディレクトリにコピーします。このファイルは、環境変数、COBDIR が指すディレクトリの中の、COBOLシステムが提供するサンプルプログラムを集めたサブディレクトリ、 $COBDIR/demo/tictac の中にあります。

  2. 以下のコマンドを入力します。

    		cob -av tictac.cbl
    

    上述のコマンド行にタイプした文字は以下のような意味を持っています。

    cob システムに構文をチェックし、原始コードをコンパイルするよう通知します。
    - コンパイルを制御するために設定するフラグの開始を示します。
    a プログラムのテストに Animator を使用することを cob に通知するフラグです。
    v verbose モードを設定するフラグ。これにより処理の経過を示すメッセージを cob が表示します。
    tictac.cbl コンパイルするプログラムの原始ファイルです。
     

     
    実際には、フラグ、a は省略値として設定されているので入力する必要はありません。ここではわかりやすくするために記載しています。

コンパイルの見出しが COBOL システムのバージョン番号と共に現れます。コンパイラは処理の経過を示すメッセージをいくつか表示しながら、構文エラーがないか原始コードをチェックし、中間コードを生成します。システムはその後、(.int)形式の中間コードと Animator が必要とする情報の入った(.idy)形式のファイルを出力します。

中間コードは、このままで COBOL ランタイムシステムによって実行することができます。これには cobrunコマンドを使用します。これについては、後で『実行 』の項で行います。

3.1.2 アニメート

図 3-1 は Animator の画面です。 Animator を使用して、原始コードの実行をモニタすることができます。



図 3-1: Animatorの画面

Animator メインメニューが画面の底部に現れます。これは情報行を表示し、プログラム名、「tictac」、level、speed、Num、Scroll 標識が含まれます。次の2行には、ファンクションキーおよび文字キーのオプションが表示されます。これらは、プログラムによるアニメート方法の制御に使用されます。

プログラムは、Step、Go、Zoom の3つのうちいずれか 1 つのモードで実行できます。プログラムを Step モードで実行するときは、各文の実行を手動操作で制御します。Go モードでは最初に実行速度を設定しておいて、各文が自動的に実行されるのを監視します。 Zoom モードでは、原始プログラムを、プログラムの終了に達するまで表示せずに実行します(割り込みをして中断したり、プログラムを停止するブレークポイントを設定できます)。

3.1.2.1 プログラムの Step

Animator の起動時には、プログラム中で最初に実行される文の位置にカーソルが位置づけられています:

perform with test after

ここで Animate メニュー中の文字コマンド、 Step を使用してみましょう。

  1. S を押して、プログラムの Step を開始してください。

    カーソルは次の実行可能な文の上に置かれます:

    call clear-screen 
  2. さらに Step を押してください。

    これで CALL文が実行され、カーソルが次の行に進みます。

  3. さらに Step を押してください。

    これで DISPLAY 文が実行され、カーソルが次の行に進みます。

  4. F2キーを押します。

    ユーザ画面は、プログラムをアニメートせずに実行した時、結果として表示される画面です。これに対し、Animator 画面は、原始プログラムのみを表示します。

    ユーザー画面が現われ、実行された DISPLAY 文による文字が表示されます:

    To select a square type a number between 1 and 9

    アニメートしている間はいつでも、View 機能を利用して、ユーザ画面を見ることができます。

  5. 任意のキーを押して、Animator 画面に戻ります。

  6. Step を3回押して、プログラムの中の次の 3 つの文を実行します。

    Step キーを押す度に別の文が実行され、プログラムの実際の動作を見ることができます。

3.1.2.2 Go モ−ドでの実行

Go モードでは、プログラムは選択した速度で自動的に実行され、また、プログラムの動作を正確に見ることができます。

  1. Go モードを開始するには、G キーを押します。

    実行が開始されると、図3-2 の Go メニューが画面の底部に現れます。プログラムは現在、速度 5 の省略時設定で実行されます。



    図 3-2: Go メニュー

    この速度の変更は情報行に表示されます。実行速度は、Animator メインメニューと Go メニューのどちらからでも設定できます。速度の範囲は 0 から 9 で、0 がもっとも遅い速度です。0 - 9 までのキーのどれかを押し、実行中にいつでも(ただし、ACCEPT 文の実行中は除きます)、この速度を変更できます。

    ACCEPT 文の所に来ると、プログラムの実行は停止します。114 行目の ACCEPT 文を実行した後、システムはユーザ画面の所でいったん停止し、データが入力されるのを待ちます。

  2. N を押して、ゲームの開始を知らせてください。

    システムは Go モードでアニメートを続け、次の ACCEPT 文の後にユーザ画面を表示し、再度データ入力を促していったん停止します。

  3. キーボードの 9 を押して、ます目、9 を選択します。

    これにより、ます目、9 に X 印がつき、Go モードでプログラム再始動します。F2=view を押せば、いつでもユーザ画面を見ることができます。

  4. 6 から 9 までのキーを押して見て、実行速度が変わる様子を見てください。

    次のます目を選ぶようプロンプトが表示されたところで、再び実行が停止されます。システムにより、ます目 5 に 0 が入れられています。

  5. 8 を押して、ます目を選び、実行を再開してください。

  6. Escape キーを押してください。

    以下のようなメッセージが画面の底部に現れます。カーソルは、次の実行可能な文の上に置かれます。

    キーボード割り込み

3.1.2.3 Zoom モードでの実行

  1. Z を押して、 Zoom モードで実行を開始します。

    プログラムは全速で実行を再開し、ユーザ画面のみを表示します。最後までゲームを続けてください。ゲームが終わると、以下のようなメッセージが表示されます:

    Play again?
  2. N (No)を押します。

    原始コードは、STOP RUN のところにカーソルを置いて画面に戻り、プログラムの実行が完了したことを知らせます。画面の底部には、以下のメッセージが表示されます:

     STOP RUNに達した(RETURN-CODE=+00000):Escape を使って終了する。

3.1.2.4 Animator の終了

以下の手順で Animator を終了します:

  1. Escape を押して、Animator の演習を終了します。

    以下のメッセージが画面の底部に現れます:

    Exit from animator? Y/N

  2. Y (Yes)を押して、オペレーティングシステムに戻ります。

3.1.3 固有コードの生成

プラグラムのアニメートの完了後は、(.gnt) 形式の最適化固有コードにプログラムを変換します。(.gnt) 形式は、(.int) 形式より高速に実行されます。

tictac.gnt を作成するには、以下のコマンドを入力します。

    cob -nv tictac.cbl
    

コマンド行のフラグ、u 以外については、すでに説明しているので省略します。

u プログラムを、動的ロードが可能な生成コードに変換するようにcobに通知するフラグ

これにより、cob がコンパイラとジェネレータを起動します。ジェネレータが最後に出力するメッセージはコンパイラのそれと同様ですが、データやコードのサイズの他に定数が取る領域も示します。

前回に cob を呼出したときに、tictac.int ファイルが既に生成されているため(『3.1.1 コンパイル』を参照)、(.cbl) の代わりに (.int) ファイルを指定すると、コンパイルを省略できます。

3.1.4 実行

プログラムの実行は、.gnt でも .int でも同じように可能です。

以下のように入力して、「tictac」を実行します:

	cobrun tictac

cobrun は自動的に (.gnt) ファイルを探すため、拡張子を指定する必要はありません。

システムがプログラムを実行します。プログラムは、画面の最初にメッセージを表示して始まります。ゲームを楽しんで勝ってください。

拡張子に (.int) を指定すると、中間コードを実行することもできます(cobrun が (.gnt) ファイルを見つけられなかった場合も、(.int) ファイルが実行されます)。その場合は、生成コードに変換するための cob 呼び出しは必要ありません。ただし、「tictac」のような小さいプログラムでは、あまり差はありませんが、中間コードの実行は、生成コードの場合より速度が遅くなります。

3.1.5 リンク

cobrun を使用せずに実行できる、実行形式ファイルを作成することもできます。


注:


実行形式ファイルを作成するには、以下のように入力します。

		cob -xv tictac.cbl

コマンド行のフラグ、x 以外については、すでに説明しているので省略します。

x プログラムを実行可能ファイルに変換するようcobに通知するフラグ

この後、cob は、コンパイラ、ジェネレータ、UNIX システムリンカを次々に呼び出します。

tictac.int ファイルは、前回 cob を呼出した時に既に生成されています(『3.1.1 コンパイル』を参照)ため、ここではコンパイルを省略できます。

(.cbl) の代わりに (.int) ファイルを指定すると、cob は既存の (.int) ファイルを使用し、ジェネレータとリンカのみを起動します。最終的な結果は同じです。

3.1.6 リンクされたプログラムの実行

tictac を実行するには以下のように入力します。

./tictac

T システムはプログラムを実行します。

3.2 その他の機能

この章のサンプルセッションでは、当 COBOL システムの最も重要な機能について説明しています。『COBOL ユーザガイド』および『COBOL システムリファレンス』には、この他にも便利なツールや機能が数多く紹介されています。


Copyright(C) 2001 Micro Focus International Limited. All rights reserved.
本書、ならびに使用されている固有の商標と商品名は国際法で保護されています。

前ページへ インストール Net Express による開発サンプルセッション 次ページへ