JH8CHUのホームページ>Tiny言語>VTL(java版)

javaによるVTL(工事中)


工事中(2015/07/25)。
  1. VTL記述言語の問題点と選定

    No.記述言語問題点評価備考
    1仮想機械語VTL作成時点で処理系がない。  
    2VBA処理が遅すぎてTiny BASICが動作しない。 × 
    3JavaVTL記述のためにjavaを覚える必要がある。  
    4C++VTL記述のためにC++を覚える必要がある。  
    5Java Script古いバージョンではファイルアクセス機能がない。  

  2. グローバル変数の割当(工事中)

    1. プログラム・カウンタ
      VTLの実行行を示すポインタで変数#そのものです。
    2. パラメータ・スタック
      変数:Pを割り当てます。

    3. リターン・スタック
      変数:Rを割り当てます。
    4. 作業用
      変数X、Y、Zは処理ルーチン内で自由に消費してよいものとします。
  3. 処理ルーチン一覧

    No.名称戻り値引数処理備考
    1int putl (int ptr, byte b) 文字列の
    次のアドレス
    ptr: 文字列の先頭アドレス
    b: 区切り文字
    ptrで先頭アドレスが示される文字列を
    画面に表示します。 文字列の終わりは
    区切り文字bで指定します。
     
    2int putstr (int) 文字列の
    次のアドレス
    ptr: 文字列の先頭アドレス ptrで先頭アドレスが示される文字列を
    画面に表示します。 文字列の終わりは
    区切り文字0x00で指定します。
     
    3void putnm(int x) なし x: 画面に表示する数値 画面に数値xを表示します。
    xは16bit以下の符号なし整数とします。
     

  4. データ構造

  5. 処理詳細

    1. putl
      (1)機能
      No.名称戻り値引数処理備考
      1int putl (int ptr, byte b) 文字列の
      次のアドレス
      ptr: 文字列の先頭アドレス
      b: 区切り文字
      ptrで先頭アドレスが示される文字列を
      画面に表示します。 文字列の終わりは
      区切り文字bで指定します。
       

      (2)処理内容
        画面に文字列を表示します。
        文字列はbyte mem[]内に配置され、その先頭アドレスはptrで示します。
        文字列の最後は区切り文字で指定します。
        処理が終わった後、戻り値は更新されたポインタの値となり
        具体的には区切り文字の次のアドレスとなります。

      (3)ソース・リスト
        	public static int putl(int ptr, byte d) {
        		int	i;
        		String	temp_str;
        
        		i = 0;
        
        		while (mem[ptr] != d) {
        			char temp_char[] = {(char)mem[ptr]};
        			temp_str = new String(temp_char);
        			System.out.print(temp_str);
        			i++;
        			ptr++;
        		}
        		return ++ptr;
        	}
        			

        [解説]

    2. putstr
      (1)機能
      行番号名称パラメータ
      スタック
      処理備考
      1100RET --- サブルーチンからメインルーチンに戻ります。そのために
      リターンスタックに格納された戻りアドレスを変数#に代入します。
       

      (2)処理内容

      (3)ソース・リスト
        1100 !=:R)
        1110 R=R+1
        1120 #=!

        [解説]

    3. putnm
      (1)機能
      行番号名称パラメータ
      スタック
      処理備考
      1200PUTLNc addr1 --- addr2addr1以降の文字列を区切り文字cの直前まで
      ディスプレイに出力します。
       

      (2)処理内容

      (3)ソース・リスト


    4. GETLN
      (1)機能
      行番号名称パラメータ
      スタック
      処理備考
      1400GETLNaddr1 --- addr2キーボードから文字列を入力しaddr1以降の
      バッファ・メモリに格納します。
       

      (2)処理内容

      (3)ソース・リスト

        [解説]

    5. SKPBL
      (1)機能
      行番号名称パラメータ
      スタック
      処理備考
      1600SKPBLaddr1 --- addr2addr1以降の文字列の先頭の空白をスキップし
      空白以外の最初の文字のアドレスをaddr2に求めます。
       

      (2)処理内容

      (3)ソース・リスト

        [解説]
        1600
        1610
        1620

    6. LIT
    7. DDOT
    8. CMINT
    9. ABS
    10. DIVID
    11. WINT
    12. WLINE
    13. ERWHY
    14. ERWHT
    15. ERSRY


JH8CHUのホームページ>Tiny言語>VTL(java版)


Copyright (C)2015 Masahiro.Matsuda(JH8CHU), all rights reserved.