C/C++程式維護系統的物件導向發展

(潘金湖, 民國85年6月)

隨著軟體工業的發展,軟體維護的自動化愈來愈重要,本論文利用物 件導向(Object-Oriented)方法來發展C/C++程式碼的維護系統。

C++語言標準化的工作是由ANSI負責。ANSI所提供的c++文法 (grammar)既龐大又複雜,我們仔細研究它的文法規則並克服它的許多歧義 (conflicts),使修飾後的文法能經由YACC產生剖析器(parser)。

維護系統所須儲存的程式資訊比編譯程式(compiler)還要多。面對巨量 的資訊,系統內部的資料組織就扮演著關鍵的角色。我們利用物件導向 方法規劃出C++語法樹(syntax tree),用來儲存c++程式碼的語法物件 (syntax objects)以及各種語法關係(syntax relations)。 另外,我們更在語法樹上規劃各種語意關係(semantic relations), 以形成C++組織圖(organization diagram)。 經由語法樹與組織圖,維護系統就能輕鬆的管理它的資訊並提供各種服務。

語法樹與組織圖內含各式各樣的關係,以人工實作相當煩瑣。本論文 利用RG(關係產生器)來自動生成這些關係的使用界面。本論文的C/C++ 程式維護系統已完成雛形寫碼(prototype coding)並可實際運作。

關鍵詞: 軟體維護(software maintenance)、C++的剖析(parsing of C++)、物件導向(object-oriented)、關係產生器(relation generator)


回首頁