[Prev] [Up] [Next] [Index] [Contents]
3 システム構成

3 システム構成

現在の|Sapid|では、二つの基本コマンドが用意されている。 一つは StreamCode を生成する``scat''である。このコマンドは 引数に指定されたソースプログラムを解析してStreamCodeを生成する。 また、ソースプログラムが指定されなかった場合には、標準入力から ソースプログラムを読み込んで解析する。

もう一つは、元のソースプログラムを再構成する``tacs''である。 このコマンドは標準入力からStreamCodeを読み込み再構成する。 また、オプションに `` -v'' を指定すると、各識別子と ブロックの直前に、それらの内部識別子を含むコメントが付加される。 これは、操作の対象を指定する際に用いる。 図3 に図1 を内部識別子付きソースプログラムに変換した 例を示す。 このソースプログラムは次のように実行した結果である。

scat hoge.c | tacs -v
なお、現時点では前処理については一切対処していないため、 前処理後のソースプログラムが再構成される。


     1	# 1 "hoge.c"
     2	int /*##0abs*/ abs(int/*##*/ ); /* prototype */
     3	
     4	static int      */*##0g*/ g;    /* global variable */
     5	
     6	/*
     7	 * main function
     8	 */
     9	void /*##0main*/ main(int /*##0argc*/ argc, char **/*##0argv*/ argv) /*##6291464*/ {
    10	    int /* aaa */ /*##0a*/ a;
    11	    static char * /*##0p*/ p /* ppp */;
    12	
    13	    a = *g;
    14	    /*##6291462*/ if (a > 0) /*##6291459*/ {
    15	        a++;
    16	    } else /*##6291461*/ {
    17	        a = abs(a - 1);
    18	    }
    19	
    20	    printf("%d,%d\n", a, *g);
    21	}

図3 内部識別子付きソースプログラム


[Prev] [Up] [Next] [Index] [Contents]