軟件體系結構的第二次實驗(解釋器風格與管道過濾器風格)java
1、實驗目的函數
1.熟悉體系結構的風格的概念翻譯
2.理解和應用管道過濾器型的風格。3d
三、理解解釋器的原理orm
四、理解編譯器模型blog
2、實驗環境ip
硬件: rem
軟件:Python或任何一種本身喜歡的語言字符串
3、實驗內容get
一、實現「四則運算」的簡易翻譯器。
結果要求:
1)實現加減乘除四則運算,容許同時又多個操做數,如:2+3*5-6 結果是11
2)被操做數爲整數,整數能夠有多位
3)處理空格
4)輸入錯誤顯示錯誤提示,並返回命令狀態「CALC」
圖1 實驗結果示例
增強練習:
一、有能力的同窗,能夠嘗試實現賦值語句,例如x=2+3*5-6,返回x=11。(注意:要實現解釋器的功能,而不是隻是顯示)
二、嘗試實現自增和自減符號,例如x++
三、採用管道-過濾器(Pipes and Filters)風格實現解釋器
圖2 管道-過濾器風格
圖 3 編譯器模型示意圖
本實驗,實現的是詞法分析和語法分析兩個部分。
4、實驗步驟:
代碼以下:
結果以下:
對應結構圖: