《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 樹型編譯系統設計
樹型編譯系統設計
2014年微型機與應用第20期
袁 婷
西安理工大學 高等技術學院,陜西 西安 710082
摘要: 從編譯系統的用戶界面出發,探討了不同類型用戶界面的優缺點。提出了語句模塊預處理-編譯器的設計思路,闡述了此設計方法基于樹型界面實現可視化編譯系統的具體實現步驟,重點討論了樹型系統部分的實現方法。
Abstract:
Key words :

  摘  要: 從編譯系統的用戶界面出發,探討了不同類型用戶界面的優缺點。提出了語句模塊預處理-編譯器的設計思路,闡述了此設計方法基于樹型界面實現可視化編譯系統的具體實現步驟,重點討論了樹型系統部分的實現方法。

  關鍵詞: 編譯系統;預處理;樹型界面;可視化

0 引言

  編譯系統是每一個復雜軟件所必需的,而它對應的用戶界面則是編譯系統與用戶進行交互的平臺。目前的編譯系統用戶界面大致可分為三種:(1)純字符的字符型編輯器界面;(2)圖形化界面;(3)圖形化與字符兼容的界面。

  純字符型界面的特點是語言編寫靈活,與編譯系統直接相連,執行效率較高;缺點是語句編寫是“流水賬式”的,程序長不便于閱讀,無法直接看出程序的語義,使用這種界面的往往只能是專業人士。

  圖形化界面的特點是語句模塊化封裝,程序隱藏在后臺,從圖形界面上看,程序結構清晰,便于用戶理解;缺點是需要多處理圖形部分[1],較之字符型編譯系統執行效率較差,編譯系統設計比較復雜。

  圖形化與字符兼容的界面形式兼容了字符型編輯器和圖形化界面的特點,既有字符式編寫靈活的特點,又具有模塊化顯示優點,本文討論如何設計基于圖形化和字符編輯器基礎之上的樹型編輯器系統。

1 樹型編譯系統構架

  編譯器的圖形化,本文采用樹型控件[2]實現,一個語句模塊用一個樹型節點表示;字符編輯為輔助性語句顯示界面,用戶可以根據需要查看某一個節點語句。

  樹型編輯器系統主要分為以下三大部分:

 ?。?)用戶界面部分包括一個樹型編輯器和一個字符型編輯器,樹型編輯器用來顯示程序的大的流程,因為它是用樹型節點圖標顯示,用戶可以方便看出程序的流程和操作內容;字符型編輯器用來顯示節點對應的編程指令。

 ?。?)程序模塊化處理部分包括程序指令的模塊化封裝、模塊指令的訪問和模塊程序運行的控制[3]。

 ?。?)編譯系統部分主要完成程序指令的執行工作。

  三部分的關系圖如圖1所示。

009.jpg

  這里重點討論編譯系統之上的樹型編輯器系統部分。把樹型編輯器系統分為兩部分,即程序模塊化處理部分和界面處理部分。

2 樹型編輯系統的程序模塊化處理

  程序模塊化處理部分,主要是把編譯器提供的程序指令模塊化,形成程序的主體模塊序列,用戶通過一個個模塊查看和訪問程序指令。樹型程序執行時,程序指令仍然是通過編譯系統編譯、執行,只是在程序指令執行的同時,還必須處理模塊間的調用關系,并把執行效果反映到樹型編輯器界面。

  程序模塊化處理,首先要設計模塊結構和包含的語句結構,根據需求定義一個語句模塊結構對應一個樹型節點,定義如下:

  //元素節點結構

  struct ST_Node

  {

  wstring sName;//節點名稱

  int nType;//節點類型

  CObject*pItem;//界面對應節點指針

  wstring sInfo;//節點信息

  int nState;//節點狀態

  }

  程序語句定義:

  //語句定義結構

  struct ST_Sen

  {

  int nType;//語句類型

  wstring sSenKey;//語句關鍵字

  wstring sSentence;//語句指令

  }

  利用上述的節點結構定義和程序定義,實現程序指令的模塊化封裝。然后,設計用戶訪問接口,實現模塊化語句的添加、刪除、查詢等操作接口。界面處理部分通過這些接口完成各種操作。部分訪問接口定義如下:

  //添加模塊節點

  void AddNode(CString sName, int nType,Cobject * pItem,CString sInfo);

  //添加模塊節點語句

  void AddNodeSen(CString sName, CStringArray & aSentence);

  //得到節點類型

  int GetNodeType(CString sName);

  //刪除節點

  void DeleteNode(CString sName);

  //清除節點語句

  void ClearNodeSen(CString sName);

  程序模塊化處理,最后一個工作就是對程序指令執行時的處理,這里包括兩方面的處理,一方面是程序執行前對程序指令的打包,程序指令打包完成后傳到編譯系統編譯、執行;另一方面是對模塊調用關系的處理,這里可以使用棧的方法實現這種調用關系[4]。

  如果要考慮程序模塊化和程序指令建立對應關系,可以把語句模塊節點設計成子程序的方式實現,這樣在程序結構設計上就會更加合理。

3 樹型編輯系統的界面處理

  這里的用戶界面包括一個樹型編輯器和一個字符型編輯器。

  樹型編輯器是用來顯示程序模塊的,一個樹型編輯器節點對應一個程序模塊,程序模塊可以分為很多模塊類型,這些類型在樹型編輯器中可以用不同的圖標表示,這樣通過樹型編輯器的圖形化界面就能很好地實現程序指令的圖形化功能。樹型編輯器界面如圖2所示。

010.jpg

  字符編輯器主要是為用戶提供程序模塊指令的操作界面,用戶可以用它查看模塊的程序指令、修改模塊的程序指令。圖3為程序模塊指令。

011.jpg

  用戶界面部分的主要工作是定義程序模塊的分類,程序模塊劃分后用樹型編輯器的一個樹節點代表一個程序模塊類型,這樣根據設計編譯系統的需求,把所有的語義塊狀劃分后,就可以用樹型界面描述程序的實現流程。

  用戶界面的其他工作就是定義界面上各種各樣的操作,它們的實現都是在程序模塊化處理和定義模塊分類兩部分基礎工作之上。

  樹型程序執行時,本文采用語句模塊預處理-編譯器的方式實現,語句模塊預處理包括了兩方面工作:(1)根據樹型編輯器節點的順序處理程序的流程;(2)根據節點的語句合成程序的流程。上述工作處理完成后,把預處理好的語句傳送到底層的編譯系統從而完成整個程序的執行流程。圖4為樹型程序執行流程。

012.jpg

4 結論

  基于“語句模塊預處理-編譯器”的設計方式可以方便快捷地實現編譯系統的可視化工作。此方法雖然從設計思路上講并不是什么復雜的方法,但它卻能把程序界面的可視化部分與底層的編譯系統有機地組織起來,因能作為一個獨立的處理部分,所以在實現可視化編程方面有其一定的優點。

參考文獻

  [1] 魏蘭,李文鋒.基于可視化程序設計語言的編譯系統[J].計算機工程,2007,33(13):104-106.

  [2] PETZOLD C.Windows程序設計[M].北京:北京大學出版社,1999.

  [3] 胡遠方.面向對象編譯技術類庫體系結構的研究和設計[D].北京:清華大學,2000.

  [4] 張素琴,戴桂蘭.面向對象編譯類庫構造[J].清華大學學報(自然科學版),2003,43(7):965.


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产欧美日韩一区二区三区| 打开腿吃你的下面的水视频| 免费一级美国片在线观看| 国产在线播放网址| 天天做天天爱夜夜爽| 久久久久成人片免费观看蜜芽| 欧美真实破苞流血在线播放| 四虎永久在线精品国产馆v视影院 四虎永久在线精品影院 | 亚洲日韩在线中文字幕综合| 美女扒开大腿让男人桶| 国产欧美日韩综合精品一区二区| 99精品国产在热久久| 成年人性生活视频| 五月亭亭免费高清在线| 正能量网站不用下载免费观看视频软件 | 四虎成人精品免费影院| 色碰人色碰人视频| 在线观看欧美日韩| 丁香婷婷六月天| 日本护士xxxx视频| 亚洲av永久精品爱情岛论坛| 波多洁野衣一二区三区| 免费高清在线观看a网站| 要灬要灬再深点受不了好舒服| 国产精品9999久久久久| 99re热视频这里只精品| 小说专区图片专区| 中日韩精品电影推荐网站| 日韩欧美国产高清在线观看| 亚洲最大成人网色| 男女下面一进一出无遮挡gif| 四虎成人免费观看在线网址| 高清免费a级在线观看国产| 国产精品免费一级在线观看| 99精品国产在热久久| 少妇人妻在线视频| 久久www视频| 日韩在线视频不卡一区二区三区| 亚洲午夜国产精品无码 | 国产精品扒开腿做爽爽爽视频| a级亚洲片精品久久久久久久|