題目
(1)選擇一個編譯器,如:TINY 或其它編譯器也可(需自備源代碼)。
(2)閱讀語義分析源程序,加上你自己的理解。尤其要求對相關函數與重要變量的作用與 功能進行稍微詳細的描述。若能加上學習心得則更好。TINY 語言請參考《編譯原理及實踐》 第 6.5 節。
(3)理解符號表的定義(欄目設置)與基於抽象語法樹的類型檢查/推論的實現方法(樹遍 歷)。
(4)測試語義分析器。對 TINY 語言要求輸出測試程序的符號表與測試結果。 TINY 語言: 測試用例一:sample.tny。 測試用例二:用 TINY 語言自編一個程序計算任意兩個正整數的最大公約數與最大公倍數。
測試文件
read a;
read b;
if a < b then
t:=a;
a:=b;
b:=t;
c:=a;
d:=b;
if 0 < b then
repeat
t:=a-a/bb;
a:=b;
b:=t
until b=0;
write a;
write cd/a
end
end
程序代碼
https://blog.csdn.net/yyd19981117/article/details/89261108
推薦查看這篇博客,講解比較全面。