軟件2011年第32卷 第7期國際IT傳媒品牌軟件工程與技術基于XML的在線偽代碼編輯與轉換器的研究林世平劉 丹魯亞楠李 偉龍 吟( 武漢大學計算機學院,武漢市,)摘要:針對目前科研工作者迫切需要能夠在線快速編輯偽代碼并且能夠把偽代碼轉換成完整可編譯源代碼的網絡工具,本文 提出了基于 XML 的偽代碼在線編輯與轉換系統 的實現技術。 客戶端采用 實現偽代碼顯示與編輯功能, 服務器端采用 Java 實現數據保存和代碼生成功能,使偽代碼在線編輯與代碼快速轉換成為可能。偽代碼采用 XML 文件描述和存儲代碼編輯工具可以轉pdf的, 通過 DOM4J 來對 XML 文件進行解析,從而實現偽代碼的多次編輯與轉換。關鍵詞:偽代碼;編輯;代碼生成;XML;DOM4J中圖分類號: 文獻標識碼: : 10.3969/j.issn.1003-6970.2011.07. on and based on Shi-ping, LIU Dan, LU Ya-nan, LI Wei, LONG Yin( of Wuhan , Wu Han, China, ) Now an need for to edit and be able to into web tools【】 that can the code ,This paper an XML-based -code-line and . use to -code shows and , the use Java to data and code ,make and code into . use XML files to and store, the DOM4J to parse the XML file, the and .Key words ;edit;code ;XML;DOM4J【】 0引言連接。
科研人員在研究過程中,通常使用偽代碼來表示算法。為1研究現狀 了提高交流效率和保留知識產權,研究人員在學術交流或發布算法是程序的基礎,好的程序要有好的算法。科研人員在 論文時也經常使用偽代碼來描述算法。偽代碼雖然簡略,但其研究、討論、對比、論證算法的時候,由于把偽代碼編碼成完整 具有簡單易懂,言簡意賅的特點,是描述算法的最佳選擇。然代碼將花費大量時間,所以在涉及算法驗證時,都是從理論上 而在代碼實現時,偽代碼轉換到實際程序代碼會經過一個編碼驗證算法,而無法從實際運行效果上得到算法的各種指標???過程,編程過程由于費時費力,而且極大地取決于編程人員的研人員十分希望有一個能把偽代碼轉換成完整代碼的工具。 編程水平,故經常不能直接把設計好的算法進行編碼實現,這這個轉換功能將減輕科研人員的工作量,節省大量編碼時間。 就帶來了諸多不便,例如:只能從理論上比較多種算法的運行“自動代碼生成技術”已成為項目開發不可或缺的一項技能,它 時間,不能從實際運行這一層面比較;由于不能快速實現編碼,通過自動生成文本的方式,減少開發工作量并防止缺陷產生。 算法的有效性驗證得不到實現。與此同時,互聯網技術突飛猛世界上的編碼工具眾多,主流的有 VC,,c++,, 進,人們的交流活動越來越多的依賴于網絡,科研人員的學術,但這些編程軟件提供都只是提供用戶手動輸入編碼 交流也以網絡為重要途徑,因此,偽代碼在線編輯與代碼生成的功能,國內也沒有具有此功能的軟件。
可見,這個應用領域 是科研人員的一大需求。的研究是極度缺乏。但可喜的是,能夠找到一些相似功能在工本文提出了一個采用 XML( Lan-程上的應用,尤其是在編程工具中提供快速開發的框架,輔助 guage)[1] 作為描述語言,基于 B/S 模式,實現偽代碼在線編輯自動生成代碼。 Real-Time Coder 并且可將偽代碼轉換成完整程序代碼的編輯系統 。可定義、實現和檢驗工業級軟件。其生成的代碼與 ANSI/ISO 它的優點是能夠實現高效的偽代碼編輯,程序代碼自動生成,C 兼容,并能在任意微處理器和實時處理系統 (RTOS) 中運行, 且與操作系統和瀏覽器無關,僅要求瀏覽器能夠與 相林世平(1989-)男(漢),湖北武漢人,本科生,主要研究工作:編譯原理,網絡編碼。 作者簡介:劉浩文,講師,主要研究方向:編譯原理 通信聯系人:· 25 · 軟件林世平 等:基于XML的在線偽代碼編輯與轉換器的研究 還可從 和 模型中生成 ANSI/ISO C 和件為載體,借助 實現函數的調用。
當用戶觸發編輯 C++ 代碼及其可執行文件,生成的代碼在內存占用率,運行速功能時,嵌套于網頁中的 腳本函數將并行完成兩 度及可讀性等方面基本等同手寫代碼,并且提供目標函數庫代個操作:修改前臺顯示和更新數據存儲。前臺只需修改相應 碼的定制,從而能夠為特定處理器生成機器代碼 。的 HTML 數據即可。位于服務器端的后臺數據存儲采用的是綜上所述,科研人員通常用偽代碼表達算法,并且希望能XML 文件,由于前臺的的一切編輯操作均反映在后臺的數據 利用代碼自動生成技術把偽代碼轉換成能夠編譯的完整程序存儲上,當前臺進行操作時, 將通過 dwr[5] 調用后 代碼。目前已有大量科研人員提出此類需求,雖然有個別軟件臺的 Java 方法完成對后臺 XML 的同步修改。前臺操作與后 提供了代碼自動生成的功能,但因為其無法實現偽代碼的轉臺操作同時進行,數據一一對應。編輯過程如圖2所示。 換,也不支持偽代碼的快速編輯,并且無法在網絡上使用,所以 沒有得到科研人員的廣泛使用。在線偽代碼編輯與轉換器的 需求迫在眉睫,但國內還無人研究此課題。在此領域中只能找 到在線數學公式編輯的工具。
系統實現 2. 系統概述圖2 偽代碼編輯模塊 的功能包括偽代碼編輯與程序代碼生成,其系借鑒 的應用表達思想,本文利用 XML 元標記語 統結構如圖1所示。偽代碼編輯功能借助對用戶行言,設計相應標記來表示偽代碼。設計的標記如下: 為進行響應,對前臺和后臺并行操作,以完成偽代碼的編輯,顯表1 描述偽代碼的XML標記 示及保存。代碼生成功能由前臺 觸發,其核心工作標記含義Var變量 由服務器端的Java方法實現,轉換過程不需要用戶參與。用戶Var-name變量名Var-type變量類型 行為主要包括鼠標單擊編輯器的按鈕觸發相關功能,鼠標右鍵Var-value變量值 觸發通用操作。用戶可以通過選擇編輯器提供的偽代碼語句模Cyc循環While循環條件 板或算法模板,結合鍵盤輸入相關參數完成偽代碼語句的編輯;Do循環執行體IfIf條件語句 可以通過刪除事件刪除某句偽代碼;可以通過觸發偽代碼轉換條件 功能,將編輯完成的偽代碼轉換為相應的完整程序代碼。除此Do執行體分支語句 之外, 還為用戶提供了數據重用功能,用戶可以導出匹配表達式Case匹配值 當前數據到本地文件,在下次使用此編輯器時,將數據從本地默認執行 文件導入編輯器,便可進行再次編輯與保存;注冊用戶還可以Array數組Array-name數組名 在完成編輯后保存當前數據到服務器,下次使用時登錄即可自Array-type數組類型 動獲取保存的數據。
Array-numer數組大小Array-value數組值Value數組元素值Equal賦值運算Left-name左值Right-name右值Rank排序Rank-type排序類型Find查找函數Find-value查找元素Max求最大值函數Min求最小值函數Scanf輸入輸出嵌套以上為所設計的部分描述偽代碼的標記。利用以上標記可以描述偽代碼語句代碼編輯工具可以轉pdf的,例如對變量的定義和簡單 while 循環語句進行描述,如下:圖1 系統結構(1) int a=12; 2.2偽代碼編輯功能的實現利用var.xml文件描述如下:偽代碼的編輯包括兩方面的內容:前臺顯示與后臺存儲。前臺顯示對應客戶端的偽代碼編輯區,客戶端采用 HTML 文· 26 · 軟件林世平 等:基于XML的在線偽代碼編輯與轉換器的研究abc(2) while( 來解析 XML,DOM4J 提供了強大的解析 XML 文件a的功能,它的主要接口都在 org.dom4j 這個包里定義,例如它a++提供了以下類和接口:表2. Dom4j 類和接口名稱作用定義了XML的屬性對于復雜的語句,例如while循環執行體由多條語句組成,是一個標識接口 此時不能用一個標記來描述整個執行體,所以我們可以再添加定義了XML注釋行為定義XML 聲明 嵌套標記 , 將執行體的多條語句分別定義XML 元素 用相應標記描述,然后利用嵌套標記嵌套到執行體中。
例如對Node為所有dom4j中XML節點定義了多態行為Text定義XML 文本節點 程序語句:XPath在分析一個字符串后會提供一個XPath 表達式while( = .(); = .("xml");創建cyc 節點及其子節點 = .a++("cyc"); = .("while"); = .("do");解析時如果檢測出現 標記則表示標記里面的語句設置節點文字 為復合語句塊的XML描述。.("a。詳見源程序。[3] 韓國峰. ASP第一步[M]. 清華大學出版社 .2008.11set rst= G F.The Frist Step for ASP[M]. -sity Press.2008..Close[4] 徐罕.網站ASP后臺解決方案[M]. 人民郵電出版社.2001.1set conn= H. The of ASP [M]. The注意:rs 為 對象實例,conn 為 對象’s Posts and Press. 2001.1 實例。
[5] 嚴蔚敏,吳偉民.數據結構[M]. 清華大學出版社.2008.10YAN W M,WU W M.Data [M]. Uni- 5總結 Press.2008.10[6] 謝希仁.計算機網絡[M]. 大連理工大學出版社.2004.2本文從理論上闡述了電視機頂盒頭端 - 電子節目指南模XIE X R. [M]. Press.2004.2 塊模擬解決方案,給出了機頂盒中電子節目指南的初步設計,· 29 ·