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

  摘  要: 從編譯系統(tǒng)的用戶界面出發(fā),探討了不同類型用戶界面的優(yōu)缺點(diǎn)。提出了語(yǔ)句模塊預(yù)處理-編譯器的設(shè)計(jì)思路,闡述了此設(shè)計(jì)方法基于樹(shù)型界面實(shí)現(xiàn)可視化編譯系統(tǒng)的具體實(shí)現(xiàn)步驟,重點(diǎn)討論了樹(shù)型系統(tǒng)部分的實(shí)現(xiàn)方法。

  關(guān)鍵詞: 編譯系統(tǒng);預(yù)處理;樹(shù)型界面;可視化

0 引言

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

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

  圖形化界面的特點(diǎn)是語(yǔ)句模塊化封裝,程序隱藏在后臺(tái),從圖形界面上看,程序結(jié)構(gòu)清晰,便于用戶理解;缺點(diǎn)是需要多處理圖形部分[1],較之字符型編譯系統(tǒng)執(zhí)行效率較差,編譯系統(tǒng)設(shè)計(jì)比較復(fù)雜。

  圖形化與字符兼容的界面形式兼容了字符型編輯器和圖形化界面的特點(diǎn),既有字符式編寫靈活的特點(diǎn),又具有模塊化顯示優(yōu)點(diǎn),本文討論如何設(shè)計(jì)基于圖形化和字符編輯器基礎(chǔ)之上的樹(shù)型編輯器系統(tǒng)。

1 樹(shù)型編譯系統(tǒng)構(gòu)架

  編譯器的圖形化,本文采用樹(shù)型控件[2]實(shí)現(xiàn),一個(gè)語(yǔ)句模塊用一個(gè)樹(shù)型節(jié)點(diǎn)表示;字符編輯為輔助性語(yǔ)句顯示界面,用戶可以根據(jù)需要查看某一個(gè)節(jié)點(diǎn)語(yǔ)句。

  樹(shù)型編輯器系統(tǒng)主要分為以下三大部分:

  (1)用戶界面部分包括一個(gè)樹(shù)型編輯器和一個(gè)字符型編輯器,樹(shù)型編輯器用來(lái)顯示程序的大的流程,因?yàn)樗怯脴?shù)型節(jié)點(diǎn)圖標(biāo)顯示,用戶可以方便看出程序的流程和操作內(nèi)容;字符型編輯器用來(lái)顯示節(jié)點(diǎn)對(duì)應(yīng)的編程指令。

  (2)程序模塊化處理部分包括程序指令的模塊化封裝、模塊指令的訪問(wèn)和模塊程序運(yùn)行的控制[3]。

  (3)編譯系統(tǒng)部分主要完成程序指令的執(zhí)行工作。

  三部分的關(guān)系圖如圖1所示。

009.jpg

  這里重點(diǎn)討論編譯系統(tǒng)之上的樹(shù)型編輯器系統(tǒng)部分。把樹(shù)型編輯器系統(tǒng)分為兩部分,即程序模塊化處理部分和界面處理部分。

2 樹(shù)型編輯系統(tǒng)的程序模塊化處理

  程序模塊化處理部分,主要是把編譯器提供的程序指令模塊化,形成程序的主體模塊序列,用戶通過(guò)一個(gè)個(gè)模塊查看和訪問(wèn)程序指令。樹(shù)型程序執(zhí)行時(shí),程序指令仍然是通過(guò)編譯系統(tǒng)編譯、執(zhí)行,只是在程序指令執(zhí)行的同時(shí),還必須處理模塊間的調(diào)用關(guān)系,并把執(zhí)行效果反映到樹(shù)型編輯器界面。

  程序模塊化處理,首先要設(shè)計(jì)模塊結(jié)構(gòu)和包含的語(yǔ)句結(jié)構(gòu),根據(jù)需求定義一個(gè)語(yǔ)句模塊結(jié)構(gòu)對(duì)應(yīng)一個(gè)樹(shù)型節(jié)點(diǎn),定義如下:

  //元素節(jié)點(diǎn)結(jié)構(gòu)

  struct ST_Node

  {

  wstring sName;//節(jié)點(diǎn)名稱

  int nType;//節(jié)點(diǎn)類型

  CObject*pItem;//界面對(duì)應(yīng)節(jié)點(diǎn)指針

  wstring sInfo;//節(jié)點(diǎn)信息

  int nState;//節(jié)點(diǎn)狀態(tài)

  }

  程序語(yǔ)句定義:

  //語(yǔ)句定義結(jié)構(gòu)

  struct ST_Sen

  {

  int nType;//語(yǔ)句類型

  wstring sSenKey;//語(yǔ)句關(guān)鍵字

  wstring sSentence;//語(yǔ)句指令

  }

  利用上述的節(jié)點(diǎn)結(jié)構(gòu)定義和程序定義,實(shí)現(xiàn)程序指令的模塊化封裝。然后,設(shè)計(jì)用戶訪問(wèn)接口,實(shí)現(xiàn)模塊化語(yǔ)句的添加、刪除、查詢等操作接口。界面處理部分通過(guò)這些接口完成各種操作。部分訪問(wèn)接口定義如下:

  //添加模塊節(jié)點(diǎn)

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

  //添加模塊節(jié)點(diǎn)語(yǔ)句

  void AddNodeSen(CString sName, CStringArray & aSentence);

  //得到節(jié)點(diǎn)類型

  int GetNodeType(CString sName);

  //刪除節(jié)點(diǎn)

  void DeleteNode(CString sName);

  //清除節(jié)點(diǎn)語(yǔ)句

  void ClearNodeSen(CString sName);

  程序模塊化處理,最后一個(gè)工作就是對(duì)程序指令執(zhí)行時(shí)的處理,這里包括兩方面的處理,一方面是程序執(zhí)行前對(duì)程序指令的打包,程序指令打包完成后傳到編譯系統(tǒng)編譯、執(zhí)行;另一方面是對(duì)模塊調(diào)用關(guān)系的處理,這里可以使用棧的方法實(shí)現(xiàn)這種調(diào)用關(guān)系[4]。

  如果要考慮程序模塊化和程序指令建立對(duì)應(yīng)關(guān)系,可以把語(yǔ)句模塊節(jié)點(diǎn)設(shè)計(jì)成子程序的方式實(shí)現(xiàn),這樣在程序結(jié)構(gòu)設(shè)計(jì)上就會(huì)更加合理。

3 樹(shù)型編輯系統(tǒng)的界面處理

  這里的用戶界面包括一個(gè)樹(shù)型編輯器和一個(gè)字符型編輯器。

  樹(shù)型編輯器是用來(lái)顯示程序模塊的,一個(gè)樹(shù)型編輯器節(jié)點(diǎn)對(duì)應(yīng)一個(gè)程序模塊,程序模塊可以分為很多模塊類型,這些類型在樹(shù)型編輯器中可以用不同的圖標(biāo)表示,這樣通過(guò)樹(shù)型編輯器的圖形化界面就能很好地實(shí)現(xiàn)程序指令的圖形化功能。樹(shù)型編輯器界面如圖2所示。

010.jpg

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

011.jpg

  用戶界面部分的主要工作是定義程序模塊的分類,程序模塊劃分后用樹(shù)型編輯器的一個(gè)樹(shù)節(jié)點(diǎn)代表一個(gè)程序模塊類型,這樣根據(jù)設(shè)計(jì)編譯系統(tǒng)的需求,把所有的語(yǔ)義塊狀劃分后,就可以用樹(shù)型界面描述程序的實(shí)現(xiàn)流程。

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

  樹(shù)型程序執(zhí)行時(shí),本文采用語(yǔ)句模塊預(yù)處理-編譯器的方式實(shí)現(xiàn),語(yǔ)句模塊預(yù)處理包括了兩方面工作:(1)根據(jù)樹(shù)型編輯器節(jié)點(diǎn)的順序處理程序的流程;(2)根據(jù)節(jié)點(diǎn)的語(yǔ)句合成程序的流程。上述工作處理完成后,把預(yù)處理好的語(yǔ)句傳送到底層的編譯系統(tǒng)從而完成整個(gè)程序的執(zhí)行流程。圖4為樹(shù)型程序執(zhí)行流程。

012.jpg

4 結(jié)論

  基于“語(yǔ)句模塊預(yù)處理-編譯器”的設(shè)計(jì)方式可以方便快捷地實(shí)現(xiàn)編譯系統(tǒng)的可視化工作。此方法雖然從設(shè)計(jì)思路上講并不是什么復(fù)雜的方法,但它卻能把程序界面的可視化部分與底層的編譯系統(tǒng)有機(jī)地組織起來(lái),因能作為一個(gè)獨(dú)立的處理部分,所以在實(shí)現(xiàn)可視化編程方面有其一定的優(yōu)點(diǎn)。

參考文獻(xiàn)

  [1] 魏蘭,李文鋒.基于可視化程序設(shè)計(jì)語(yǔ)言的編譯系統(tǒng)[J].計(jì)算機(jī)工程,2007,33(13):104-106.

  [2] PETZOLD C.Windows程序設(shè)計(jì)[M].北京:北京大學(xué)出版社,1999.

  [3] 胡遠(yuǎn)方.面向?qū)ο缶幾g技術(shù)類庫(kù)體系結(jié)構(gòu)的研究和設(shè)計(jì)[D].北京:清華大學(xué),2000.

  [4] 張素琴,戴桂蘭.面向?qū)ο缶幾g類庫(kù)構(gòu)造[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2003,43(7):965.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲欧美日本视频在线观看| 欧美性猛交视频| 午夜精品久久久久久久久久久久 | 亚洲区免费影片| 久久精品视频免费| 久久精品亚洲一区二区三区浴池| 欧美一区二区三区视频| 亚洲直播在线一区| 亚洲综合电影一区二区三区| 亚洲一区久久久| 亚洲欧美国产一区二区三区| 亚洲欧美日韩一区二区在线 | 久久久欧美一区二区| 久久精品综合一区| 久久久亚洲精品一区二区三区 | 国产香蕉97碰碰久久人人| 国产九区一区在线| 国产亚洲精久久久久久| 国产亚洲欧美激情| 原创国产精品91| 亚洲国产欧美不卡在线观看| 亚洲欧洲日产国码二区| 亚洲精品综合精品自拍| 99视频精品| 中文精品视频| 午夜精品婷婷| 久久精品亚洲| 日韩视频在线观看国产| 亚洲一区二区三区四区五区黄| 午夜精品久久久久影视| 久久久999精品| 欧美sm重口味系列视频在线观看| 欧美国产日本在线| 欧美视频精品一区| 国产视频精品免费播放| 亚洲高清视频在线观看| 日韩午夜av在线| 亚洲婷婷国产精品电影人久久| 亚洲欧美激情四射在线日| 久久精品国产v日韩v亚洲| 亚洲区一区二区三区| 中文成人激情娱乐网| 欧美一级专区免费大片| 裸体一区二区| 欧美色中文字幕| 国内久久视频| 亚洲美女av在线播放| 午夜精品免费| 亚洲精品美女久久久久| 亚洲在线一区| 噜噜爱69成人精品| 欧美午夜久久久| 国产一区观看| 亚洲每日更新| 欧美一区三区二区在线观看| 日韩小视频在线观看专区| 香蕉久久精品日日躁夜夜躁| 欧美mv日韩mv亚洲| 国产精品区一区| 亚洲福利在线看| 亚洲天堂av高清| 亚洲激情在线观看视频免费| 亚洲一区免费| 欧美电影在线观看完整版| 国产精品久久久一区二区| 伊人一区二区三区久久精品| 国产精品99久久久久久人| 亚洲国产精品一区二区www在线| 亚洲一线二线三线久久久| 久久综合99re88久久爱| 国产精品美女诱惑| 亚洲欧洲日本一区二区三区| 性欧美大战久久久久久久久| 亚洲视频精品| 欧美成人一区二区在线| 国产小视频国产精品| 99国产欧美久久久精品| 亚洲高清自拍| 欧美一区二区三区在线观看视频 | 欧美精品一区二区三区在线看午夜| 国产目拍亚洲精品99久久精品| 亚洲人在线视频| 久久国产一区二区三区| 亚洲女人天堂av| 欧美精品在线免费观看| 精品粉嫩aⅴ一区二区三区四区| 亚洲综合欧美日韩| 亚洲一区免费看| 欧美精品二区三区四区免费看视频| 国产午夜精品久久久久久免费视| 99精品免费视频| 亚洲理论在线| 免费看亚洲片| 黑人巨大精品欧美一区二区| 亚洲尤物在线视频观看| 一区二区三区四区国产精品| 欧美成人黄色小视频| 国内精品一区二区| 欧美一区二区三区在线| 亚洲自拍偷拍色片视频| 欧美日韩免费高清| 亚洲激情视频在线观看| 亚洲国产一区二区三区a毛片| 久久精品视频导航| 国产亚洲一级| 欧美一区亚洲二区| 久久精品国产欧美激情| 国产女主播一区二区三区| 中文日韩在线视频| 宅男噜噜噜66国产日韩在线观看| 欧美国产欧美综合 | 亚洲免费大片| 日韩亚洲欧美中文三级| 欧美aa国产视频| 在线精品视频一区二区| 亚洲高清精品中出| 久久久久免费视频| 国产一区二区毛片| 欧美在线视频二区| 久久精品人人做人人爽电影蜜月| 国产日韩欧美在线视频观看| 亚洲嫩草精品久久| 欧美有码在线视频| 国产一本一道久久香蕉| 久久福利一区| 老司机午夜精品视频在线观看| 黄色亚洲精品| 亚洲激情女人| 欧美福利精品| 日韩一级精品| 亚洲欧美日韩在线| 国产片一区二区| 欧美一级夜夜爽| 免费不卡欧美自拍视频| 亚洲国产高清在线| 一区二区欧美在线观看| 欧美性大战久久久久| 亚洲综合首页| 久久人人爽国产| 亚洲高清网站| 亚洲少妇自拍| 国产精品久久久久久久第一福利| 亚洲欧美日本视频在线观看| 久久国产精品久久精品国产| 国产午夜精品理论片a级大结局| 久久精品日产第一区二区三区| 麻豆乱码国产一区二区三区| 91久久国产自产拍夜夜嗨| 一区二区三区蜜桃网| 国产精品视屏| 久久精品国产精品亚洲精品| 男女视频一区二区| 这里只有视频精品| 久久精品在线视频| 91久久国产综合久久| 亚洲伊人第一页| 国产一区二区三区观看| 亚洲免费观看| 国产精品日韩在线一区| 亚洲国产成人高清精品| 欧美日韩岛国| 性欧美办公室18xxxxhd| 欧美成人一区二区三区| 亚洲深夜福利网站| 久热精品在线| 亚洲私人影院| 欧美成人免费播放| 亚洲午夜影视影院在线观看| 久久综合色88| 一区二区三区四区五区视频| 久久精品人人做人人爽| 亚洲精品在线观| 久久精品国产亚洲5555| 亚洲另类在线一区| 久久精品人人做人人综合| 亚洲日韩欧美视频一区| 久久狠狠亚洲综合| 亚洲精品久久久蜜桃| 欧美一区激情| 亚洲国产精品久久久| 欧美在线播放一区| 亚洲国产精品久久精品怡红院 | 午夜久久资源| 91久久视频| 久久久久久久一区| 亚洲视频精选| 欧美激情精品久久久久久久变态 | 亚洲欧洲一级| 久久日韩粉嫩一区二区三区| 一本色道久久88综合亚洲精品ⅰ| 久久夜色精品国产噜噜av| 亚洲午夜激情免费视频| 欧美大片在线看| 久久福利电影| 国产精品自拍小视频| 99在线精品视频在线观看| 极品尤物久久久av免费看| 性色av香蕉一区二区| 一本久久a久久精品亚洲| 蜜乳av另类精品一区二区|