home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1999 April / VPR9904A.BIN / Vpr_data / Special / Yoolw101 / Yoolw101.lzh / FORCE.DOC < prev    next >
Text File  |  1998-10-08  |  3KB  |  113 lines

  1.     *** FORCE for YOOL ***
  2.  
  3. FORCEとは?
  4.       FORCEは、株式会社アスキーの「Cプログラムブック1」に紹介され
  5.     ているFORTHベースのプログラム言語です。FORCE for YOOL
  6.     はそれでサポートされている命令を、名前を変えてYOOLにインプリメント
  7.     したものです。
  8.       特徴は次の通りです。
  9.  
  10.         ・スタック型のプログラム言語
  11.         ・インタプリタ
  12.         ・タートルグラフィックスをサポート
  13.  
  14.     YOOLを使うと簡単にインタプリタも作ることができることを示すための
  15.     サンプルとして作成しました。
  16.  
  17. 関数一覧
  18.     算術関数
  19.         PLUS,+    和を求める
  20.         DIF,-    差を求める
  21.         TIMES,*    積を求める
  22.         DIV,/    商を求める
  23.         REM,%    余りを求める
  24.     論理関数
  25.         AND    topと2ndがともに0以外の時1、違う時は0
  26.         OR    topか2ndのどちらかが0以外の時1、違う時は0
  27.         NOT    topが0以外なら0、0なら1にする
  28.     入出力関数
  29.         PRINT    画面出力
  30.         FLOAD    topの文字列のファイルを読み込む
  31.         FSAVE    topの文字列のファイルに定義された関数を書き込む
  32.     スタック操作関数
  33.         ABORT    topを捨てる
  34.         SWAP    topと2ndを入れ替える
  35.         DUP    topをコピーする
  36.         OVER    top分、前のデータを取り出す
  37.     プログラム制御関数
  38.         LOOP    topの数だけループする
  39.         TEST    topが0以外なら次の命令を実行、0なら2つ後の命令を実行
  40.         WHILE    topが0になるまで、ループする
  41.         NOP    何もしない
  42.         GREAT    >
  43.         LESS    <
  44.         EQUAL    =
  45.         STORE    topの番号のレジスタに、2ndを格納する
  46.         LOAD    topの番号のレジスタの値を取り出す
  47.     グラフィック関数
  48.         WIPE    画面を消去する
  49.         HOME    penを(0,0)に移す
  50.         FORWARD    penをtopの長さだけ、線を引きながら進める
  51.         JUMP    penをtopの長さだけ、線を引かずに進める
  52.         POINT    penの位置を(2nd top)のように取り出す
  53.         MOVE    penを(2nd top)の位置に動かす
  54.         NORTH    penの方向を0゚(上向き)にする
  55.         ROTATE    penの方向をtopだけ変える
  56.         DIRECTION    penの方向を取り出す
  57.         COLOR    penの色をtopにする
  58.         PUSHCOLOR    penの色を取り出す
  59.     その他
  60.         :    ユーザー定義関数の定義
  61.         USER    ユーザー定義関数の一覧
  62.         CONT    ユーザー定義関数の内容表示
  63.  
  64. プログラム例
  65.     1.                スタックの状態
  66.         force >(1 2 3)        >1 2 3
  67.         force >(PLUS)        >1 5
  68.         force >(PRINT)        >1
  69.         5
  70.         force >(PRINT)        >
  71.         1
  72.         force >(: inc 1 PLUS)    >
  73.         force >(10 inc)        >11
  74.         force >(PRINT)        >
  75.         11
  76.         force >(5 4 3 2)    >5 4 3 2
  77.         force >(ABORT)        >5 4 3
  78.         force >(SWAP)        >5 3 4
  79.         force >(DUP)        >5 3 4 4
  80.         force >(1 OVER PRINT)    >5 3 4 4
  81.         4
  82.         force >(4 OVER PRINT)    >5 3 4 4
  83.         5
  84.         force >(1 100 LOOP (DUP PRINT 1 PLUS))
  85.         1
  86.         2
  87.         ・
  88.         ・
  89.         100
  90.         force >(66 10 WHILE (DUP PRINT 1 DIF) PRINT)
  91.         10
  92.         9
  93.         ・
  94.         ・
  95.         1
  96.         66
  97.         force >(: fact DUP TEST (DUP 1 DIF fact) TIMES) (ABORT 1))
  98.         force >(5 fact PRINT)
  99.         120
  100.     2.ファイルに格納されたプログラムの実行
  101.         force >("PASERI.FO" FLOAD)
  102.         force >(RUN1)
  103.         force >(RUN2)
  104.         force >("MANJI.FO" FLOAD)
  105.         force >(RUN1)
  106.         force >(RUN2)
  107.         force >("GROWTH.FO" FLOAD)
  108.         force >(RUN1)
  109.         force >(RUN2)
  110.         force >("POLY.FO" FLOAD)
  111.         force >(RUN1)
  112.         force >(RUN2)
  113.