[開課學院]: 資電學院
[開課系所]: 資訊系
[課程名稱]: 系統程式
[老師名稱]: 黃溪春 老師
[開課學期]: 97-2
[類型]: 97-2期末考
一 試舉ANSI C 程式語言為例 , 說明帶有參數的巨集(Macro)為何? 又它與函數
(Functions)的差別為何?(10%)
二 請概述單回合巨集處理程式(One-pass macro processor)的演算法?(10%)
三 請說明關鍵字巨集參數(Keyword macro parameters)的優缺點?(10%)
四 請說明一般用途的巨集處理程式有何優點?(10%)
五 ELENA 是一般用途的巨集處理程式 , 它的巨集定義由標頭(Header)與主體(Body)
所組成 ; 請說明其標頭的格式(或限制)?又其巨集呼叫的處理方式(巨集比對規則)
為何?(10%)
六 依據教科書巨集處理演算法 , 處理如下的巨集定義:
(1)寫出 NAMTAB , 與 DEFTAB的內容。(8%)
(2)當使用 RDBUFF F2,WKA,,(01,02) 指令呼叫時 , 寫出 ARGTAB 的內容 , 與
巨集展開後的結果。(10%)
(3)有哪些巨集時期變數(Macro-time variables)? 說明各項變數內容變化的情形?
(6%)
RDBUFF MACRO &IND,&BUF,&REC,&EOR
&EORCT SET %NITEMS(&EOR)
CLEAR X
$LOOP TD =X'&IND'
JEQ $LOOP
&CTR SET 1
WHILE (&CTR LE &EORCT)
COMP =X'0000&EOR[&CTR]'
JEQ $EXIT
&CTR SET &CTR+1
ENDW
STCH &BUF,X
JLT &LOOP
IF (&REC NE '')
$EXIT STX &REC
ELSE
$EXIT STX =X'10'
ENDIF
MEND
七 試舉 ANSI C 程式語言為例 , 說明何謂 Token ?(6%)
八 假設「識別字(Identifier)」允許包括大寫英文字母、數字、與底線符號(╴) ,
長度不限、而字首必須是字母 , 字尾不能是底線。請畫出能識別此類「識別字」
的 Finite automata。(10%)
九 假設一程式語言<assign>敘述 , 以如下之BNF定義︰
﹤assign ﹥ ::= id = ﹤exp ﹥
﹤exp ﹥ ::= ﹤term ﹥| ﹤exp ﹥* ﹤term ﹥| ﹤exp ﹥/ ﹤term ﹥
﹤term ﹥ ::= ﹤factor ﹥| ﹤term ﹥+ ﹤factor ﹥| ﹤term ﹥- ﹤factor ﹥
﹤factor ﹥ ::= id | int | ( ﹤exp ﹥)
請畫出下面敘述的 Parse tree。(10%)
V1 = V2 + V3 * V2 - 100 / V3
其中的V1,V2,V3均為 id , 而100 是int。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.170.97.63