[compiler]hw7 參考資料

作業規定

操作測試流程

 java Yuhina < test.yu  ( 產生 test.j)


java -jar  jasim123.jar < test.j

java test    

要可以執行成功

實作方法

1. 紀錄使用的register跟變數的對應關係

2.做好IR  跟jasmincode 的對應

3. 根據AST利用 IR表示轉成jasmin code

參考資料

0. intermediate code

OP( e1 , e2 )  => string op(string operator , string  e1, string e2);

=>OP:= ADD | SUB |  MUL | DIV | MOD //arithmetic

| AND | OR                                     //bit logic

| EQ | NEQ | LT | GT | LE | GE      //comparisons

NAME(n) =>string name(string n );  //return register number or labol

ESEQ(s,e)=>  strimg eseq(string s,string e); //return e

CODE(i) => string code(string i );//constant integer

MEM(e) => load e register

CALL(ef , e0 , e1 , e2,... )=> function call  string call( string fName,string[] args)

MOVE(dest , e) => string move(string dest,string e )

=> move(dese,e):=dest = TEMP(t) //assign to temporary t

| dest = MEM(e) // assign to location e

EXP(e) => string exp(e) 執行e 忽略結果

SEQ(s1,s2 , ... ,sn) => string seq(string [] s) 依序執行s1~sn

JUMP(e)=> jump to address(label) e

CJUMP(e,l1,l2)=>依照e執行的結果jump到 l1 or l2

LABEL(n)=> string label(string n)輸入名稱回傳位置

 TEMP(t)=> 

1. java File IO

讀寫檔案

      FileReader rdFile = new FileReader("e:/in.txt");

      BufferedReader brdFile = new BufferedReader(rdFile);


      FileWriter wrFile = new FileWriter("e:/out.txt");


      BufferedWriter bwrFile = new BufferedWriter(wrFile);


 


 

留言

這個網誌中的熱門文章

電腦網路project