專利名稱:一種面向粒的編程集成開(kāi)發(fā)平臺(tái)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)應(yīng)用領(lǐng)域,涉及一種編程集成開(kāi)發(fā)平臺(tái),尤其是一種面向粒的 編程集成開(kāi)發(fā)平臺(tái)。
背景技術(shù):
過(guò)程語(yǔ)言如FortraruPascal和C等可以用來(lái)定義直線執(zhí)行的程序,程序開(kāi)始于某一點(diǎn),一步一步執(zhí)行至終點(diǎn)。這種模式中,設(shè)計(jì)理念體現(xiàn)在相繼執(zhí)行的程序單元中。直線的 模塊劃分體現(xiàn)在函數(shù)調(diào)用中,函數(shù)調(diào)用允許程序執(zhí)行從主程序跳轉(zhuǎn)到子程序,又跳回主程 序。子程序的使用使程序更有效的實(shí)現(xiàn)一般的程序。但是,隨著程序規(guī)模的不斷增大,程序 越來(lái)越復(fù)雜,過(guò)程式語(yǔ)言也變得很復(fù)雜并且很難維護(hù)。面向?qū)ο蠓椒ǖ某霈F(xiàn)把系統(tǒng)狀態(tài)變成一些單獨(dú)的對(duì)象,在這些對(duì)象中可以私有化 系統(tǒng)狀態(tài),并且通過(guò)公有的函數(shù)控制這些狀態(tài),程序的功能分解為各個(gè)功能模塊。高級(jí)語(yǔ)言 通過(guò)結(jié)構(gòu)化抽象等方法模塊化程序,面向?qū)ο笳Z(yǔ)言通過(guò)對(duì)象和類等概念,這又進(jìn)一步通過(guò) 集合一個(gè)實(shí)體的行為和隱藏其內(nèi)部實(shí)現(xiàn)提高模塊的內(nèi)聚、降低模塊間的藕合。面向?qū)ο笙鄬?duì)于傳統(tǒng)設(shè)計(jì)語(yǔ)言和軟件設(shè)計(jì)方法有以下優(yōu)越性1)符合人類認(rèn)識(shí) 和分析事物的思維習(xí)慣;2)代碼是可高度重用的,可維護(hù)的;3)實(shí)現(xiàn)了功能模塊的組件化; 4)代碼是共享、可繼承的,減少了軟件設(shè)計(jì)中的代碼量等。但是,面向?qū)ο缶幊?OOP)也不可能是完美無(wú)缺的,近些年出現(xiàn)了很多針對(duì)OOP的 不足提出新的編程思想和相應(yīng)的實(shí)現(xiàn)。在面向?qū)ο笾?,?dāng)一些因素的考慮可能會(huì)影響了一些系統(tǒng)的模塊(如功能模塊) 的實(shí)現(xiàn),極易出現(xiàn)不適合現(xiàn)象。這種不適合現(xiàn)象不是系統(tǒng)設(shè)計(jì)的不足導(dǎo)致的,而是復(fù)雜系統(tǒng) 中的一個(gè)自然地和不可避免的現(xiàn)象。例如,程序的運(yùn)行與其支撐環(huán)境是密不可分的。計(jì)算機(jī) 程序是給計(jì)算機(jī)提供的指令,程序產(chǎn)生動(dòng)作,計(jì)算機(jī)負(fù)責(zé)指令執(zhí)行。因此,一個(gè)有意義的程 序除了代碼之外還默認(rèn)隱含在什么計(jì)算機(jī)上運(yùn)行。程序一旦運(yùn)行在其他機(jī)器上,也許會(huì)產(chǎn) 生預(yù)料不到的結(jié)果甚至不能夠正常運(yùn)行下去,由此引出了程序與機(jī)器之間適合性問(wèn)題,這 些考慮的因素就是“上下文變量”。程序所面臨的上下文常常改變,比如程序所面臨的輸入、 系統(tǒng)可用內(nèi)存、并行系統(tǒng)中的處理機(jī)個(gè)數(shù)等。從某種意義上講,傳統(tǒng)編程機(jī)制隱式地蘊(yùn)含了 程序與上下文之間的關(guān)系,不過(guò)其潛在地假定程序與上下文之間的關(guān)系是固定不變的。然 而,易變的上下文使得編程時(shí)假定的程序與上下文之間的匹配關(guān)系常常被破壞。假設(shè)一個(gè) 類擁有無(wú)返回類型方法m。對(duì)于不同的情況,方法m可能需要進(jìn)行不同的行為演化來(lái)適應(yīng) 新環(huán)境。傳統(tǒng)的編程模型可能試圖使用繼承關(guān)系,通過(guò)定義該類的子類來(lái)對(duì)行為的多個(gè)候 選實(shí)現(xiàn)進(jìn)行分組,解決這個(gè)問(wèn)題。然而,雖然繼承關(guān)系可通過(guò)在子類中重載基類方法的方 式,實(shí)現(xiàn)該方法的行為版本,但它不足以用來(lái)為某一個(gè)對(duì)象的某個(gè)方法編寫(xiě)多個(gè)候選行為 實(shí)現(xiàn),換句話說(shuō),靜態(tài)繼承關(guān)系不能支持對(duì)象行為的動(dòng)態(tài)變化。當(dāng)然也可考慮通過(guò)使用不同 的方法名稱來(lái)代表每個(gè)實(shí)現(xiàn),或者通過(guò)方法的不同參數(shù)來(lái)指示哪個(gè)實(shí)現(xiàn)被執(zhí)行。但是這要 求客戶端,也就是將要調(diào)用這個(gè)方法的對(duì)象,對(duì)實(shí)現(xiàn)的細(xì)節(jié)了如指掌。這樣就破壞了類的封裝性。GOP (Granule-Oriented Programming)思想就是在觀察程序不適合性現(xiàn)象的基礎(chǔ) 上提出的。GOP是使用粒和上下文擴(kuò)展了面向?qū)ο缶幊陶Z(yǔ)言。這樣的構(gòu)造是獨(dú)立于編程模 塊的,可以將對(duì)上下文的考慮外部化和限定化,而不是將它們展開(kāi)在重要的編程模塊中。當(dāng) 系統(tǒng)動(dòng)態(tài)變化,上下文也是在運(yùn)行中隨機(jī)的變化?,F(xiàn)階段的監(jiān)控系統(tǒng)不能處理好對(duì)適合當(dāng) 前上下文需要實(shí)行功能模塊的替換。而粒和上下文的結(jié)合,很好解決了適合性的問(wèn)題。目前的各種編程語(yǔ)言都沒(méi)有關(guān)注程序適合性問(wèn)題,GOP面向粒的程序設(shè)計(jì)中,用粒 來(lái)指代那些適合性可度量的、可以被動(dòng)態(tài)替換的構(gòu)成程序的單位。如果程序出現(xiàn)了不適合 性,這些不適合性被局部化到不適合的粒上面,從而用更適合的粒進(jìn)行替換,以達(dá)到改善程 序適合性的目標(biāo)。面向粒的編程集成開(kāi)發(fā)平臺(tái)提供了對(duì)GOP語(yǔ)言的編碼、編譯、調(diào)試功能;將程序的 信息由獨(dú)立的類-粒層次結(jié)構(gòu)構(gòu)造器進(jìn)行管理,依靠面向粒的編程集成開(kāi)發(fā)平臺(tái)我們可以 很容易定義粒,并將類代碼與粒代碼透明的融合,同時(shí)類-粒之間的自動(dòng)定位功能和豐富 的信息顯示功能也使得代碼編輯、故障確定和新粒的編寫(xiě)更為方便。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)中的缺點(diǎn),提供一種面向粒的編程集成開(kāi)發(fā) 平臺(tái),該集成開(kāi)發(fā)平臺(tái)提供了對(duì)GOP語(yǔ)言的編碼、編譯、調(diào)試功能;將程序的信息由獨(dú)立的 類-粒層次結(jié)構(gòu)構(gòu)造器進(jìn)行管理,依靠面向粒的編程集成開(kāi)發(fā)平臺(tái)我們可以很容易定義 粒,并將類代碼與粒代碼透明地融合,同時(shí)類-粒之間的自動(dòng)定位功能和豐富的信息顯示 功能也使得代碼編輯、故障確定和新粒的編寫(xiě)更為方便。本發(fā)明的目的是通過(guò)以下技術(shù)方案來(lái)解決的這種面向粒的編程集成開(kāi)發(fā)平臺(tái)分 為編輯器、編譯器、虛擬機(jī)、調(diào)試器和類-粒層次結(jié)構(gòu)構(gòu)造器;所述編輯器、編譯器和調(diào)試器 分別與類-粒層次結(jié)構(gòu)構(gòu)造器相互通信,所述調(diào)試器還分別與編輯器和虛擬機(jī)連接;(1)編 輯器所述的編輯器由類編輯模塊、粒編輯模塊、類信息模塊、粒信息模塊、關(guān)系信息模塊和 窗口切換模塊組成;類編輯模塊包括一個(gè)類編輯窗口,粒編輯模塊包括一個(gè)粒編輯窗口,類 信息模塊包括一個(gè)類信息窗口,粒信息模塊包括一個(gè)粒信息窗口 ;所述類編輯模塊用于修 改編輯對(duì)象類代碼;所述粒編輯模塊用于修改編輯對(duì)象粒代碼;類信息模塊顯示類信息, 所述類信息包括類名和類所在的文件;粒信息模塊顯示粒信息,所述粒信息包括粒名和粒 所在的文件;所述關(guān)系信息模塊包括樹(shù)型顯示模塊、代碼顯示模塊和圖形顯示模塊;樹(shù)型 顯示模塊包括一個(gè)關(guān)系信息樹(shù)型顯示窗口 ;代碼顯示模塊包括一個(gè)關(guān)系信息代碼顯示窗 口 ;圖形顯示模塊包括一個(gè)關(guān)系信息圖形顯示窗口 ;樹(shù)型顯示模塊顯示類粒關(guān)系信息和層 次結(jié)構(gòu)構(gòu)成的樹(shù)型結(jié)構(gòu)圖;代碼顯示模塊顯示所有類和粒的具體的代碼;圖形顯示模塊用 圖形直觀顯示粒和它所依附的類之間的關(guān)系;所述窗口切換模塊分別與類編輯模塊、粒編 輯模塊、類信息模塊、粒信息模塊、關(guān)系信息模塊連接,實(shí)現(xiàn)類編輯窗口、粒編輯窗口、粒信 息窗口、粒信息窗口、關(guān)系信息樹(shù)型顯示窗口、關(guān)系信息代碼顯示窗口和關(guān)系信息圖形顯示 窗口的切換;所述類是OOP標(biāo)準(zhǔn)類;所述粒是GOP領(lǐng)域的基本模塊,粒由粒名、類名、粒體 和影子類構(gòu)成,其中類名用來(lái)表明該粒所依附的類,將該類稱為粒的根類,粒體用來(lái)指定粒 的期望環(huán)境,粒體可以定義自身的成員并且粒體中必須包含一個(gè)適合性判斷方法,適合性判斷方法返回真或假;所述影子類是對(duì)種子程序中與該影子類相同名字的類的改進(jìn),是在不同上下文下類行為的不同體現(xiàn),并且只是在相應(yīng)粒體適合性判斷方法為真后才有效;(2) 編譯器GOP的編譯器分為前端模塊和后端模塊,前端模塊又包括詞法分析器、語(yǔ)法分析器 和靜態(tài)語(yǔ)義分析器,靜態(tài)語(yǔ)義分析器又具體包括名字分析模塊、類型檢查模塊、訪問(wèn)控制模 塊、確定賦值模塊;詞法分析器根據(jù)GOP的構(gòu)詞規(guī)則識(shí)別程序中的單詞;語(yǔ)法分析器對(duì)滿足 GOP語(yǔ)法規(guī)則的程序構(gòu)造一棵抽象語(yǔ)法樹(shù)AST ;靜態(tài)語(yǔ)義分析器對(duì)抽象語(yǔ)法樹(shù)上的節(jié)點(diǎn)以 面向?qū)ο髮哟谓Y(jié)構(gòu)建模,在建模的結(jié)果之上,通過(guò)屬性文法的計(jì)算過(guò)程按照GOP的語(yǔ)義規(guī) 則完成語(yǔ)義的分析過(guò)程;后端模塊生成程序的類字節(jié)碼文件、粒體字節(jié)碼文件、影子類字節(jié) 碼文件、種子程序_個(gè)體程序配置文件以及該個(gè)體程序?qū)?yīng)的粒樹(shù);(3)虛擬機(jī)GOP的虛擬 機(jī)系統(tǒng)包括裝載子系統(tǒng)、運(yùn)行數(shù)據(jù)區(qū)和執(zhí)行引擎;裝載子系統(tǒng)包含類裝載器、粒裝載器、影 子類裝載器和種子程序_個(gè)體程序配置文件裝載器;運(yùn)行數(shù)據(jù)區(qū)包括方法區(qū)、堆、棧、PC寄 存器、本地方法棧、上下文變量存儲(chǔ)區(qū)和種子程序_個(gè)體程序存儲(chǔ)區(qū);執(zhí)行引擎分為??缍?判斷模塊、適合性監(jiān)測(cè)模塊、粒替換模塊、上下文管理模塊和粒庫(kù)管理模塊;(4)調(diào)試器所 述調(diào)試器包括跟蹤模塊、粒指示模塊、調(diào)試器窗口顯示模塊和個(gè)體程序演化模塊;跟蹤模塊 用于跟蹤虛擬機(jī)運(yùn)行的源代碼;粒指示模塊用于顯示跟蹤模塊所跟蹤的方法所屬的粒;調(diào) 試器窗口顯示模塊顯示虛擬機(jī)當(dāng)前運(yùn)行的數(shù)據(jù)域和方法信息;個(gè)體程序演化模塊可以顯示 運(yùn)行出錯(cuò)前的個(gè)體程序和這個(gè)個(gè)體程序的上下文信息;同時(shí)可以顯示相似粒替換前后的個(gè) 體程序和這個(gè)個(gè)體程序的上下文信息;(5)類-粒層次結(jié)構(gòu)構(gòu)造器所述的類_粒層次結(jié)構(gòu) 構(gòu)造器包括類信息處理模塊、粒信息處理模塊和關(guān)系信息處理模塊;所述類信息處理模塊 抽取GOP源代碼中所有類信息及其層次結(jié)構(gòu),并將類信息及其層次結(jié)構(gòu)提供給其他模塊; 所述粒信息處理模塊抽取GOP源代碼中所有粒信息及其層次結(jié)構(gòu),并將粒信息及其層次結(jié) 構(gòu)提供給其他模塊;所述關(guān)系信息處理模塊抽取GOP源代碼中類和粒之間的關(guān)系信息,并 將類和粒之間的關(guān)系信息提供給其他模塊。上述編輯器的類編輯模塊和粒編輯模塊分別與類_粒層次結(jié)構(gòu)構(gòu)造器的類信息 處理模塊、粒信息處理模塊和關(guān)系信息處理模塊連接,類-粒層次結(jié)構(gòu)構(gòu)造器從類編輯模 塊和粒編輯模塊獲取GOP源代碼,所述類信息處理模塊抽取GOP源代碼中所有類信息及其 層次結(jié)構(gòu);所述粒信息處理模塊抽取GOP源代碼中所有粒信息及其層次結(jié)構(gòu);所述關(guān)系信 息處理模塊抽取GOP源代碼中類和粒之間的關(guān)系信息。上述的編輯器的類信息模塊與類_粒層次結(jié)構(gòu)構(gòu)造器的類信息處理模塊連接,編 輯器的類信息模塊從類_粒層次結(jié)構(gòu)構(gòu)造器的類信息處理模塊獲取所有類信息及其層次 結(jié)構(gòu)。W014]上述的編輯器的粒信息模塊與類-粒層次結(jié)構(gòu)構(gòu)造器的粒信息處理模塊連 接,編輯器的粒信息模塊從類_粒層次結(jié)構(gòu)構(gòu)造器的粒信息處理模塊獲取所有粒信息及其 層次結(jié)構(gòu)。上述的編輯器的關(guān)系信息模塊與類_粒層次結(jié)構(gòu)構(gòu)造器的關(guān)系信息處理模塊連 接,編輯器的關(guān)系信息顯示模塊從類-粒層次結(jié)構(gòu)構(gòu)造器的關(guān)系信息處理模塊獲取類和粒 之間的關(guān)系信息。上述的編輯器的窗口切換模塊與類_粒層次結(jié)構(gòu)構(gòu)造器的類信息處理模塊、粒信 息處理模塊和關(guān)系信息處理模塊連接,實(shí)現(xiàn)窗口切換時(shí)被切換前后窗口內(nèi)容的信息同步。上述的調(diào)試器的跟蹤模塊、粒指示模塊和調(diào)試器窗口顯示模塊分別與類_粒層次結(jié)構(gòu)構(gòu)造器的類信息處理模塊、粒信息處理模塊連接;從粒層次結(jié)構(gòu)構(gòu)造器的類信息處理模塊獲取所有類信息及其層次結(jié)構(gòu),從粒層次結(jié)構(gòu)構(gòu)造器的粒信息處理模塊獲取所有粒信 息及其層次結(jié)構(gòu),為調(diào)試工作提供指示信息。上述的調(diào)試器的跟蹤模塊、粒指示模塊、調(diào)試器窗口顯示模塊和個(gè)體程序演化模 塊分別與編輯器和虛擬機(jī)連接;調(diào)試器啟動(dòng)編輯器實(shí)現(xiàn)對(duì)代碼的修改,調(diào)試器從虛擬機(jī)獲 取當(dāng)前運(yùn)行的狀態(tài)信息。本發(fā)明具有以下有益效果1、面向粒的編程集成開(kāi)發(fā)平臺(tái)提供了對(duì)GOP語(yǔ)言的編 碼、編譯、調(diào)試功能。由于GOP引入了粒這種新的程序構(gòu)成基本單元,同時(shí)粒中又引入了上 下文這個(gè)新元素,定義了粒體和影子類這些新結(jié)構(gòu),因而GOP程序的結(jié)構(gòu)更為復(fù)雜,相互關(guān) 系信息更多。面向粒的編程集成開(kāi)發(fā)平臺(tái)將程序的信息由獨(dú)立的類-粒層次結(jié)構(gòu)構(gòu)造器進(jìn) 行管理,使得程序信息的管理和使用更為容易,為編輯和調(diào)試階段提供更為豐富的輔助信 肩、ο2、面向粒的編程集成開(kāi)發(fā)平臺(tái)對(duì)類和粒的編輯和調(diào)試獨(dú)立并相互透明,使得類代 碼和粒代碼的編輯和調(diào)試更為方便,同時(shí)它又提供了自動(dòng)定位和關(guān)聯(lián)信息顯示功能,自動(dòng) 定位當(dāng)前粒依附的根類,和當(dāng)前類包括的粒,并且提供當(dāng)前程序的類_粒層次結(jié)構(gòu)圖,使得 對(duì)代碼的修改非常容易。3、面向粒的編程集成開(kāi)發(fā)平臺(tái)的調(diào)試器除了獲取傳統(tǒng)集成開(kāi)發(fā)平臺(tái)需要獲取的 當(dāng)前程序運(yùn)行信息,還獲取當(dāng)前程序的上下文信息和當(dāng)前程序的類-粒層次結(jié)構(gòu)圖,幫助 用戶迅速定位故障位置?;蛘咻o助編輯器進(jìn)行新的粒的編寫(xiě)。
圖1為本發(fā)明的面向粒的編程集成開(kāi)發(fā)平臺(tái)各個(gè)部件要素圖;圖2為本發(fā)明創(chuàng)建 GOP軟件項(xiàng)目的流程圖;圖3為本發(fā)明的類編輯窗口和粒信息窗口雙重顯示模式圖;圖4為 本發(fā)明的關(guān)系信息樹(shù)型顯示窗口圖;圖5為本發(fā)明的關(guān)系信息代碼顯示窗口圖;圖6為本 發(fā)明的粒編輯窗口和類信息窗口雙重顯示模式圖;圖7為本發(fā)明的關(guān)系信息圖形顯示窗口 圖;圖8為本發(fā)明的調(diào)試器窗口顯示模塊圖;圖9為本發(fā)明的個(gè)體程序演化模塊圖;圖10為 本發(fā)明的程序調(diào)試流程圖。
具體實(shí)施例方式本發(fā)明是幫助開(kāi)發(fā)基于面向粒編程技術(shù)的軟件程序的開(kāi)發(fā)平臺(tái),提供的集成開(kāi)發(fā) 平臺(tái)能使用戶快速、方便的創(chuàng)建和調(diào)試面向粒程序。該項(xiàng)發(fā)明的集成開(kāi)發(fā)平臺(tái)具體實(shí)現(xiàn)是 通過(guò)計(jì)算機(jī)軟件來(lái)完成的,可以通過(guò)非破壞性的存儲(chǔ)介質(zhì)上裝載,或從一個(gè)或多個(gè)遠(yuǎn)程站 點(diǎn)上下載安裝,或從遠(yuǎn)程計(jì)算機(jī)上進(jìn)行本地安裝。下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步詳細(xì)描述參見(jiàn)圖1 面向粒的編程集成開(kāi)發(fā)平 臺(tái)200由編輯器210、編譯器220、虛擬機(jī)230、調(diào)試器240和類-粒層次結(jié)構(gòu)構(gòu)造器250組 成;所述編輯器210、編譯器220和調(diào)試器240分別與類-粒層次結(jié)構(gòu)構(gòu)造器250相互通信, 所述調(diào)試器240還分別與編輯器220和虛擬機(jī)230連接;參見(jiàn)圖2 它描述了在面向粒的編 程集成開(kāi)發(fā)平臺(tái)下創(chuàng)建GOP軟件項(xiàng)目的流程圖;在步驟310通過(guò)編輯器210創(chuàng)建或修改類 源代碼201和粒源代碼202 ;在步驟320通過(guò)類-粒層次結(jié)構(gòu)構(gòu)造器250,利用編輯后的類源代碼201和粒源代碼202抽取程序的類信息,粒信息和類_粒關(guān)系信息;類_粒層次結(jié)構(gòu)構(gòu)造器250隨著類信息和粒信息的創(chuàng)建更新而隨之創(chuàng)建和更新。在步驟330通過(guò)編譯器220 對(duì)編輯后的類源代碼201和粒源代碼202進(jìn)行編譯,生成字節(jié)碼文件,確保所有的粒信息都 能被正確的處理;在步驟340通過(guò)虛擬機(jī)230將編譯后的程序字節(jié)碼文件加載運(yùn)行;在步 驟350監(jiān)測(cè)程序在虛擬機(jī)中的運(yùn)行,如果沒(méi)有在步驟350發(fā)現(xiàn)錯(cuò)誤,開(kāi)發(fā)過(guò)程在步驟370完 成。如果發(fā)現(xiàn)錯(cuò)誤,在步驟360使用調(diào)試器240來(lái)定位錯(cuò)誤,編輯器210再次啟用修正編輯 類源代碼201和粒源代碼202。這個(gè)循環(huán)一直持續(xù)到程序無(wú)誤,然后在步370結(jié)束。1編輯器所述的編輯器210由類編輯模塊211、粒編輯模塊212、類信息模塊213、 粒信息模塊214、關(guān)系信息模塊215和窗口切換模塊216組成;類編輯模塊211包括一個(gè) 類編輯窗口,粒編輯模塊212包括一個(gè)粒編輯窗口,類信息模塊213包括一個(gè)類信息窗口, 粒信息模塊214包括一個(gè)粒信息窗口 ;所述類編輯模塊211用于修改編輯對(duì)象類代碼;粒 編輯模塊212用于修改編輯對(duì)象粒代碼;類信息模塊213顯示類信息,類信息包括類名和 類所在的文件;粒信息模塊214顯示粒信息,粒信息包括粒名和粒所在的文件;關(guān)系信息模 塊215包括樹(shù)型顯示模塊、代碼顯示模塊和圖形顯示模塊;樹(shù)型顯示模塊包括一個(gè)關(guān)系信 息樹(shù)型顯示窗口 ;代碼顯示模塊包括一個(gè)關(guān)系信息代碼顯示窗口 ;圖形顯示模塊包括一個(gè) 關(guān)系信息圖形顯示窗口 ;樹(shù)型顯示模塊顯示類粒關(guān)系信息和層次結(jié)構(gòu)構(gòu)成的樹(shù)型結(jié)構(gòu)圖; 代碼顯示模塊顯示所有類和粒的具體的代碼;圖形顯示模塊用圖形直觀顯示粒和它所依附 的類之間的關(guān)系;窗口切換模塊216分別與類編輯模塊211、粒編輯模塊212、類信息模塊 213、粒信息模塊214、關(guān)系信息模塊215連接,實(shí)現(xiàn)類編輯窗口、粒編輯窗口、粒信息窗口、 粒信息窗口、關(guān)系信息樹(shù)型顯示窗口、關(guān)系信息代碼顯示窗口和關(guān)系信息圖形顯示窗口的 切換。所述類是OOP標(biāo)準(zhǔn)類;所述粒是GOP領(lǐng)域的基本模塊,粒由粒名、類名、粒體和影子 類構(gòu)成,其中類名用來(lái)表明該粒所依附的類,將該類稱為粒的根類,粒體用來(lái)指定粒的期望 環(huán)境,粒體可以定義自身的成員并且粒體中必須包含一個(gè)適合性判斷方法,適合性判斷方 法返回真或假;所述影子類是對(duì)種子程序中與該影子類相同名字的類的改進(jìn),是在不同上 下文下類行為的不同體現(xiàn),并且只是在相應(yīng)粒體適合性判斷方法為真后才有效。在本發(fā)明面向粒的集成開(kāi)發(fā)平臺(tái)中支持單一顯示模式和雙重顯示模式,單一顯示 模式提供單一窗口顯示,用戶可以在類編輯模塊211的類編輯窗口和粒信息模塊214的粒 信息窗口之間,或粒編輯模塊212的粒編輯窗口和類信息模塊213的類信息窗口之間通過(guò) 窗口切換模塊216來(lái)切換窗口 ;在雙重顯示模式中,用戶可以使在類編輯模塊211的類編輯 窗口和粒信息模塊214的粒信息窗口,或粒編輯模塊212的粒編輯窗口和類信息模塊213 的類信息窗口同時(shí)顯示。在本發(fā)明中說(shuō)明書(shū)附圖中的各圖都以雙重顯示模式為例來(lái)顯示該 項(xiàng)發(fā)明的特性。參見(jiàn)圖3 類編輯窗口和粒信息窗口同時(shí)顯示,粒列表在粒信息模塊214的粒信息 窗口顯示,粒列表用來(lái)顯示有關(guān)粒的信息;類編輯模塊211的類編輯窗口中的代碼是粒依 附的根類代碼。在類編輯窗口中,用戶可以修改編輯類源代碼。一個(gè)光標(biāo)312指向下一個(gè) 輸入位置。粒信息窗口是一個(gè)粒列表,列表中的每一行包括粒名稱323和粒所在的文件名 稱324。用戶能夠選擇Jump按鈕313,Jump按鈕313能夠啟動(dòng)關(guān)系信息模塊215的代碼顯 示模塊,將所有的粒代碼和它們所依附的根類代碼顯示在關(guān)系信息代碼顯示窗口中,關(guān)系信息代碼顯示窗口如圖5所示;用戶能夠選擇類-粒信息按鈕314,類-粒信息按鈕314能 夠啟動(dòng)關(guān)系信息模塊215的樹(shù)形顯示模塊,將類粒關(guān)系信息和層次結(jié)構(gòu)構(gòu)成的樹(shù)型結(jié)構(gòu)圖 顯示在關(guān)系信息樹(shù)形顯示窗口中,關(guān)系信息樹(shù)形顯示窗口如圖4所示。根據(jù)本發(fā)明,類-粒的層次結(jié)構(gòu)以圖形的方式顯示在圖4中的窗口 410中,這使得 用戶能夠更加快速了解類與粒之間的關(guān)系。參見(jiàn)圖4 在窗口 410中,類用橢圓315表示而 粒用矩形316表示。如果一個(gè)粒依附于某一類,那么就有一個(gè)箭頭從矩形316出發(fā)指向橢 圓315。當(dāng)用戶從窗口 410點(diǎn)選其中的一個(gè)粒名稱,相應(yīng)的粒名稱以及粒的文件地址將會(huì)在 粒信息窗口 420中顯示。在窗口 420中,粒的信息的被顯示,顯示的內(nèi)容包括粒名和粒所在 的文件。用戶能夠選擇Jump按鈕313,Jump按鈕313能夠啟動(dòng)關(guān)系信息模塊215的代碼顯 示模塊,將所有的粒代碼和它們所依附的根類代碼顯示在關(guān)系信息代碼顯示窗口中,關(guān)系 信息代碼顯示窗口如圖5所示。
根據(jù)本發(fā)明,用戶通過(guò)在圖5中的窗口 510看到在圖3或者圖4中所顯示的類和 粒的具體代碼。參見(jiàn)圖5 在窗口 510的最左邊顯示的是當(dāng)前程序的類的源代碼,而右邊依 次顯示的與這個(gè)程序的類相關(guān)聯(lián)的粒的源代碼。參見(jiàn)圖6 粒編輯窗口和類信息窗口同時(shí)顯示,用戶可以在粒編輯窗口模塊212的 粒編輯窗口中編寫(xiě)新粒的代碼和修改已有的粒的代碼,類信息窗口模塊213的類信息窗口 是一個(gè)類列表窗口,它顯示粒編輯窗口模塊212的粒編輯窗口中的粒所依附的類的信息。 為了選擇粒編輯窗口模塊212的粒編輯窗口中的一個(gè)粒,用戶可以通過(guò)移動(dòng)光標(biāo)312到粒 編輯窗口模塊212的粒編輯窗口中某一粒的位置上然后反鍵點(diǎn)擊它。一旦一個(gè)粒被選擇, 類信息窗口模塊213的類信息窗口的顯示內(nèi)容將被更新,這時(shí)它將僅僅顯示這個(gè)被選中的 粒所依附的類的信息。參見(jiàn)圖7 它是一個(gè)關(guān)系信息圖形顯示窗口圖,在窗口 710中,粒和類之間的關(guān)系 以圖形的方式被顯示,用戶通過(guò)顯示的圖形能夠快速地了解粒和它所依附的類之間的關(guān) 系。一個(gè)例子顯示在圖7中,類720用橢圓形表示,粒730用矩形表示。表示類的圖形與其 它三個(gè)表示粒的圖形的重疊顯示這三個(gè)粒是依附于這個(gè)類。此外,粒和類還可以用其他方 式表示,如用其它不同的圖形,或者具有不同顏色的同一圖形,或者另一些能夠區(qū)別二者的 方式。另一方面,粒和類之間的關(guān)系除了用疊加的方式表示外,還可以用連接不同圖形的連 接符表示。2編譯器粒對(duì)類的作用通過(guò)面向粒的編譯器220實(shí)現(xiàn)。GOP編譯器220以編輯后 的類源代碼201和粒源代碼201作為輸入,對(duì)類和粒分別產(chǎn)生二進(jìn)制字節(jié)碼文件作為輸出, 提供給虛擬機(jī)230的運(yùn)行,編譯器220同時(shí)還與調(diào)試器連接。GOP的編譯器220分為前端模塊和后端模塊,前端模塊又包括詞法分析器、語(yǔ)法分 析器和靜態(tài)語(yǔ)義分析器,靜態(tài)語(yǔ)義分析器又具體包括名字分析模塊、類型檢查模塊、訪問(wèn)控 制模塊、確定賦值模塊;詞法分析器根據(jù)GOP的構(gòu)詞規(guī)則識(shí)別程序中的單詞;語(yǔ)法分析器對(duì) 滿足GOP語(yǔ)法規(guī)則的程序構(gòu)造一棵抽象語(yǔ)法樹(shù)AST ;靜態(tài)語(yǔ)義分析器對(duì)抽象語(yǔ)法樹(shù)上的節(jié) 點(diǎn)以面向?qū)ο髮哟谓Y(jié)構(gòu)建模,在建模的結(jié)果之上,通過(guò)屬性文法的計(jì)算過(guò)程按照GOP的語(yǔ) 義規(guī)則完成語(yǔ)義的分析過(guò)程;后端模塊生成程序的類字節(jié)碼文件、粒體字節(jié)碼文件、影子類 字節(jié)碼文件、種子程序_個(gè)體程序配置文件以及該個(gè)體程序?qū)?yīng)的粒樹(shù)。所述種子程序是一個(gè)不與任何上下文相關(guān)聯(lián)且不包含任何粒的程序,所述個(gè)體程序是一個(gè)與已有上下文相關(guān)聯(lián)的程序,個(gè)體程序由種子程序和依附于種子程序的粒組成;所述的上下文是指支持程序的所有非功能性因素的綜合;種子程序-個(gè)體程序配置文件記 錄種子程序和個(gè)體程序的類層次結(jié)構(gòu)以及各類依附的粒的XML文件。所述的粒樹(shù)反映個(gè)體 程序所包含的粒和粒的層次的XML文件。3虛擬機(jī)GOP的虛擬機(jī)230系統(tǒng)包括裝載子系統(tǒng)、運(yùn)行數(shù)據(jù)區(qū)和執(zhí)行引擎;裝載 子系統(tǒng)包含類裝載器、粒體裝載器、影子類裝載器和種子-個(gè)體配置文件裝載器;本發(fā)明的 類裝載器與普通虛擬機(jī)中類裝載器一致,粒體裝載器和影子類裝載器的設(shè)計(jì)與類裝載器類 似,只是其實(shí)現(xiàn)將粒體和影子類裝載進(jìn)虛擬機(jī);種子程序_個(gè)體程序配置文件裝載器是用 來(lái)加載GOP編譯器生成的描述程序粒層次結(jié)構(gòu)的XML配置文件。運(yùn)行數(shù)據(jù)區(qū)包括方法區(qū)、堆、棧、PC寄存器、本地方法棧、上下文變量存儲(chǔ)區(qū)和種 子程序-個(gè)體程序存儲(chǔ)區(qū);上下文變量存儲(chǔ)區(qū)用于存儲(chǔ)影響程序的上下文信息;種子程 序_個(gè)體程序存儲(chǔ)區(qū)用于存儲(chǔ)加載進(jìn)來(lái)的種子程序_個(gè)體程序配置文件。執(zhí)行引擎分為??缍扰袛嗄K、適合性監(jiān)測(cè)模塊、粒替換模塊、上下文管理模塊和 粒庫(kù)管理模塊;粒跨度判斷模塊負(fù)責(zé)判斷粒調(diào)用的粒范圍跨度判斷,適合性監(jiān)測(cè)模塊用于 監(jiān)測(cè)程序的適合性,粒替換模塊用于查找相似粒,對(duì)程序做出替換及程序的演化過(guò)程,上下 文管理模塊提供了程序中粒所關(guān)心的上下文變量的取值及更新通知,上下文的變化,及時(shí) 反饋到程序中去,促使程序及時(shí)做出適合性判斷,粒庫(kù)管理模塊負(fù)責(zé)相似粒的查找,及程序 演化之后產(chǎn)生的新的個(gè)體的存儲(chǔ)到數(shù)據(jù)庫(kù)中去,擴(kuò)充粒庫(kù),對(duì)于程序的更好運(yùn)行,增添了更 好的保障。4調(diào)試器所述調(diào)試器240包括跟蹤模塊241、粒指示模塊242、調(diào)試器窗口顯示模 塊243和個(gè)體程序演化模塊244 ;跟蹤模塊241用于跟蹤虛擬機(jī)運(yùn)行的源代碼;粒指示模塊 242用于顯示跟蹤模塊所跟蹤的方法所屬的粒;調(diào)試器窗口顯示模塊243顯示虛擬機(jī)當(dāng)前 運(yùn)行的數(shù)據(jù)域和方法信息;個(gè)體程序演化模塊244可以顯示運(yùn)行出錯(cuò)前的個(gè)體程序和這個(gè) 個(gè)體程序的上下文信息,同時(shí)可以顯示相似粒替換前后的個(gè)體程序和這個(gè)個(gè)體程序的上下 3Cfn 息。參見(jiàn)圖8 跟蹤模塊241可以跟蹤一個(gè)方法執(zhí)行,主窗口 810顯示類的源代碼,在 類_粒層次結(jié)構(gòu)構(gòu)造器250中,調(diào)試器240首先接受類信息處理模塊251的類信息和粒信 息處理模塊252的粒信息,然后在源代碼相應(yīng)的位置顯示粒指示器820,指示器820表示被 跟蹤方法的代碼來(lái)源的粒。當(dāng)用戶使用鼠標(biāo)或其他指針設(shè)備反鍵點(diǎn)擊主窗口 810時(shí),調(diào)試器240將彈出一個(gè) 粒列表窗口 830,該窗口顯示的粒都和主窗口 810中的代碼相關(guān)聯(lián),這個(gè)粒列表窗口包含一 個(gè)粒名831,一個(gè)粒方法或者粒變量832和一個(gè)粒所在的文件名833 ;此外,當(dāng)用戶可以通過(guò) 鼠標(biāo)或者其他指針設(shè)備點(diǎn)擊在粒窗口 830中的某一粒名時(shí),此粒的源代碼將顯示在被彈出 的粒代碼窗口 840中。根據(jù)本發(fā)明,一個(gè)粒指示器僅僅與一個(gè)粒相關(guān)聯(lián),調(diào)試器240只是直接地彈出粒 代碼窗口而不是顯示一個(gè)只包含單個(gè)粒的粒列表窗口。如果用戶想要看到調(diào)試前的個(gè)體程序和這個(gè)個(gè)體程序的上下文信息,或想要看到 相似粒替換前后的個(gè)體程序和這個(gè)個(gè)體程序的上下文信息,用戶只需要點(diǎn)擊圖8中的Jump 按鈕313即可,Jump按鈕313啟動(dòng)個(gè)體程序演化模塊圖,能夠顯示調(diào)試前的個(gè)體程序和新編寫(xiě)的個(gè)體程序結(jié)構(gòu)示意圖,或者當(dāng)前運(yùn)行個(gè)體程序和它上一次替換時(shí)的個(gè)體程序結(jié)構(gòu)示 意圖。參見(jiàn)圖9:在窗口 910和窗口 920中的橢圓形表示類,矩形表示粒,圓角矩形表示 不適合當(dāng)前環(huán)境的粒;在窗口 910中,顯示的是當(dāng)前個(gè)體程序上一次發(fā)生替換時(shí)的結(jié)構(gòu),窗 口 920是當(dāng)前運(yùn)行個(gè)體程序的結(jié)構(gòu)圖,在窗口 930和窗口 940分別顯示窗口 910和窗口 920 中的個(gè)體程序的代碼和上下文信息。參見(jiàn)圖10 用戶可以步驟1010使用調(diào)試器240調(diào)試一個(gè)GOP程序。在調(diào)試之前,這個(gè)面向粒子的程序必須載入編譯器220。程序被裝載之后,在步驟1020通過(guò)來(lái)源于類-粒 層次結(jié)構(gòu)構(gòu)造器250的信息判斷是否有多個(gè)粒存在。如果有多個(gè)粒存在,在步驟1030將顯 示一個(gè)粒列表窗口 830。這個(gè)窗口列出所有的與這個(gè)載入的程序相關(guān)的粒。一旦用戶可以 在步驟1040選擇粒列表窗口 830中的一個(gè)粒,那么粒代碼窗口 840將被彈出顯示此粒的源 代碼202。如果在步驟1020只有一個(gè)粒存在,那么調(diào)試器240直接跳到步驟1050顯示粒代 碼窗口 840。所述的調(diào)試器240的跟蹤模塊241、粒指示模塊242、調(diào)試器窗口顯示模塊243和 個(gè)體程序演化模塊244分別與編輯器220和虛擬機(jī)230連接;調(diào)試器240啟動(dòng)編輯器220 實(shí)現(xiàn)對(duì)代碼的修改,調(diào)試器240從虛擬機(jī)230獲取當(dāng)前運(yùn)行的狀態(tài)信息。5類-粒層次結(jié)構(gòu)構(gòu)造器所述的類_粒層次結(jié)構(gòu)構(gòu)造器250包括類信息處理模塊 251、粒信息處理模塊252和關(guān)系信息處理模塊253 ;所述類信息處理模塊251抽取GOP源 代碼中所有類信息及其層次結(jié)構(gòu),并將類信息及其層次結(jié)構(gòu)提供給其他模塊;所述粒信息 處理模塊252抽取GOP源代碼中所有粒信息及其層次結(jié)構(gòu),并將粒信息及其層次結(jié)構(gòu)提供 給其他模塊;所述關(guān)系信息處理模塊253抽取GOP源代碼中類和粒之間的關(guān)系信息,并將類 和粒之間的關(guān)系信息提供給其他模塊。所述編輯器210的類編輯模塊211和粒編輯模塊212分別與類_粒層次結(jié)構(gòu)構(gòu)造 器250的類信息處理模塊251、粒信息處理模塊252和關(guān)系信息處理模塊253連接,類-粒 層次結(jié)構(gòu)構(gòu)造器250從類編輯模塊211和粒編輯模塊212獲取GOP源代碼。所述的編輯器210的類信息模塊213與類-粒層次結(jié)構(gòu)構(gòu)造器250的類信息處理 模塊251連接,編輯器210的類信息模塊213從類-粒層次結(jié)構(gòu)構(gòu)造器250的類信息處理 模塊251獲取所有類信息及其層次結(jié)構(gòu)。所述的編輯器210的粒信息模塊214與類-粒層次結(jié)構(gòu)構(gòu)造器250的粒信息處理 模塊252連接,編輯器210的粒信息模塊214從類-粒層次結(jié)構(gòu)構(gòu)造器250的粒信息處理 模塊252獲取所有粒信息及其層次結(jié)構(gòu)。所述的編輯器210的關(guān)系信息模塊215與類-粒層次結(jié)構(gòu)構(gòu)造器250的關(guān)系信息 處理模塊253連接,編輯器210的關(guān)系信息模塊215從類-粒層次結(jié)構(gòu)構(gòu)造器250的關(guān)系 信息處理模塊253獲取類和粒之間的關(guān)系信息。所述的編輯器210的窗口切換模塊216與類-粒層次結(jié)構(gòu)構(gòu)造器250的類信息處 理模塊251、粒信息處理模塊252和關(guān)系信息處理模塊253連接,實(shí)現(xiàn)窗口切換時(shí)被切換前 后窗口內(nèi)容的信息同步。所述的調(diào)試器240的跟蹤模塊241、粒指示模塊242和調(diào)試器窗口顯示模塊243分 別與類_粒層次結(jié)構(gòu)構(gòu)造器250的類信息處理模塊251、粒信息處理模塊252連接;從粒層次結(jié)構(gòu)構(gòu)造器250的類信息處理模塊251獲取所有類信息及其層次結(jié)構(gòu),從粒層次結(jié)構(gòu)構(gòu) 造器250的粒信息處理模塊252獲取所有粒信息及其層次結(jié)構(gòu),為調(diào)試工作提供指示信息。
權(quán)利要求
一種面向粒的編程集成開(kāi)發(fā)平臺(tái),其特征在于所述面向粒的編程集成開(kāi)發(fā)平臺(tái)分為編輯器、編譯器、虛擬機(jī)、調(diào)試器和類-粒層次結(jié)構(gòu)構(gòu)造器;所述編輯器、編譯器和調(diào)試器分別與類-粒層次結(jié)構(gòu)構(gòu)造器相互通信,所述調(diào)試器還分別與編輯器和虛擬機(jī)連接;(1)編輯器所述的編輯器由類編輯模塊、粒編輯模塊、類信息模塊、粒信息模塊、關(guān)系信息模塊和窗口切換模塊組成;類編輯模塊包括一個(gè)類編輯窗口,粒編輯模塊包括一個(gè)粒編輯窗口,類信息模塊包括一個(gè)類信息窗口,粒信息模塊包括一個(gè)粒信息窗口;所述類編輯模塊用于修改編輯對(duì)象類代碼;所述粒編輯模塊用于修改編輯對(duì)象粒代碼;類信息模塊顯示類信息,所述類信息包括類名和類所在的文件;粒信息模塊顯示粒信息,所述粒信息包括粒名和粒所在的文件;所述關(guān)系信息模塊包括樹(shù)型顯示模塊、代碼顯示模塊和圖形顯示模塊;樹(shù)型顯示模塊包括一個(gè)關(guān)系信息樹(shù)型顯示窗口;代碼顯示模塊包括一個(gè)關(guān)系信息代碼顯示窗口;圖形顯示模塊包括一個(gè)關(guān)系信息圖形顯示窗口;樹(shù)型顯示模塊顯示類粒關(guān)系信息和層次結(jié)構(gòu)構(gòu)成的樹(shù)型結(jié)構(gòu)圖;代碼顯示模塊顯示所有類和粒的具體的代碼;圖形顯示模塊用圖形直觀顯示粒和它所依附的類之間的關(guān)系;所述窗口切換模塊分別與類編輯模塊、粒編輯模塊、類信息模塊、粒信息模塊、關(guān)系信息模塊連接,實(shí)現(xiàn)類編輯窗口、粒編輯窗口、類信息窗口、粒信息窗口、關(guān)系信息樹(shù)型顯示窗口、關(guān)系信息代碼顯示窗口和關(guān)系信息圖形顯示窗口的切換;所述類是OOP標(biāo)準(zhǔn)類;所述粒是GOP領(lǐng)域的基本模塊,粒由粒名、類名、粒體和影子類構(gòu)成,其中類名用來(lái)表明該粒所依附的類,將該類稱為粒的根類,粒體用來(lái)指定粒的期望環(huán)境,粒體可以定義自身的成員并且粒體中必須包含一個(gè)適合性判斷方法,適合性判斷方法返回真或假;所述影子類是對(duì)種子程序中與該影子類相同名字的類的改進(jìn),是在不同上下文下類行為的不同體現(xiàn),并且只是在相應(yīng)粒體適合性判斷方法為真后才有效;(2)編譯器GOP的編譯器分為前端模塊和后端模塊,前端模塊又包括詞法分析器、語(yǔ)法分析器和靜態(tài)語(yǔ)義分析器,靜態(tài)語(yǔ)義分析器又具體包括名字分析模塊、類型檢查模塊、訪問(wèn)控制模塊、確定賦值模塊;詞法分析器根據(jù)GOP的構(gòu)詞規(guī)則識(shí)別程序中的單詞;語(yǔ)法分析器對(duì)滿足GOP語(yǔ)法規(guī)則的程序構(gòu)造一棵抽象語(yǔ)法樹(shù)AST;靜態(tài)語(yǔ)義分析器對(duì)抽象語(yǔ)法樹(shù)上的節(jié)點(diǎn)以面向?qū)ο髮哟谓Y(jié)構(gòu)建模,在建模的結(jié)果之上,通過(guò)屬性文法的計(jì)算過(guò)程按照GOP的語(yǔ)義規(guī)則完成語(yǔ)義的分析過(guò)程;后端模塊生成程序的類字節(jié)碼文件、粒體字節(jié)碼文件、影子類字節(jié)碼文件、種子程序-個(gè)體程序配置文件以及該個(gè)體程序?qū)?yīng)的粒樹(shù);(3)虛擬機(jī)GOP的虛擬機(jī)系統(tǒng)包括裝載子系統(tǒng)、運(yùn)行數(shù)據(jù)區(qū)和執(zhí)行引擎;裝載子系統(tǒng)包含類裝載器、粒裝載器、影子類裝載器和種子程序-個(gè)體程序配置文件裝載器;運(yùn)行數(shù)據(jù)區(qū)包括方法區(qū)、堆、棧、PC寄存器、本地方法棧、上下文變量存儲(chǔ)區(qū)和種子程序-個(gè)體程序存儲(chǔ)區(qū);執(zhí)行引擎分為粒跨度判斷模塊、適合性監(jiān)測(cè)模塊、粒替換模塊、上下文管理模塊和粒庫(kù)管理模塊;(4)調(diào)試器所述調(diào)試器包括跟蹤模塊、粒指示模塊、調(diào)試器窗口顯示模塊和個(gè)體程序演化模塊;跟蹤模塊用于跟蹤虛擬機(jī)運(yùn)行的源代碼;粒指示模塊用于顯示跟蹤模塊所跟蹤的方法所屬的粒;調(diào)試器窗口顯示模塊顯示虛擬機(jī)當(dāng)前運(yùn)行的數(shù)據(jù)域和方法信息;個(gè)體程序演化模塊可以顯示運(yùn)行出錯(cuò)前的個(gè)體程序和這個(gè)個(gè)體程序的上下文信息;同時(shí)可以顯示相似粒替換前后的個(gè)體程序和這個(gè)個(gè)體程序的上下文信息;(5)類-粒層次結(jié)構(gòu)構(gòu)造器所述的類-粒層次結(jié)構(gòu)構(gòu)造器包括類信息處理模塊、粒信息處理模塊和關(guān)系信息處理模塊;所述類信息處理模塊抽取GOP源代碼中所有類信息及其層次結(jié)構(gòu),并將類信息及其層次結(jié)構(gòu)提供給其他模塊;所述粒信息處理模塊抽取GOP源代碼中所有粒信息及其層次結(jié)構(gòu),并將粒信息及其層次結(jié)構(gòu)提供給其他模塊;所述關(guān)系信息處理模塊抽取GOP源代碼中類和粒之間的關(guān)系信息,并將類和粒之間的關(guān)系信息提供給其他模塊。
2.根據(jù)權(quán)利要求1所述的面向粒的編程集成開(kāi)發(fā)平臺(tái),其特征在于所述編輯器的類 編輯模塊和粒編輯模塊分別與類_粒層次結(jié)構(gòu)構(gòu)造器的類信息處理模塊、粒信息處理模塊 和關(guān)系信息處理模塊連接,類_粒層次結(jié)構(gòu)構(gòu)造器從類編輯模塊和粒編輯模塊獲取GOP源 代碼,所述類信息處理模塊抽取GOP源代碼中所有類信息及其層次結(jié)構(gòu);所述粒信息處理 模塊抽取GOP源代碼中所有粒信息及其層次結(jié)構(gòu);所述關(guān)系信息處理模塊抽取GOP源代碼 中類和粒之間的關(guān)系信息。
3.根據(jù)權(quán)利要求1所述的面向粒的編程集成開(kāi)發(fā)平臺(tái),其特征在于所述的編輯器 的類信息模塊與類-粒層次結(jié)構(gòu)構(gòu)造器的類信息處理模塊連接,編輯器的類信息模塊從 類_粒層次結(jié)構(gòu)構(gòu)造器的類信息處理模塊獲取所有類信息及其層次結(jié)構(gòu)。
4.根據(jù)權(quán)利要求1所述的面向粒的編程集成開(kāi)發(fā)平臺(tái),其特征在于所述的編輯器 的粒信息模塊與類-粒層次結(jié)構(gòu)構(gòu)造器的粒信息處理模塊連接,編輯器的粒信息模塊從 類_粒層次結(jié)構(gòu)構(gòu)造器的粒信息處理模塊獲取所有粒信息及其層次結(jié)構(gòu)。
5.根據(jù)權(quán)利要求1所述的面向粒的編程集成開(kāi)發(fā)平臺(tái),其特征在于所述的編輯器的 關(guān)系信息模塊與類-粒層次結(jié)構(gòu)構(gòu)造器的關(guān)系信息處理模塊連接,編輯器的關(guān)系信息顯示 模塊從類_粒層次結(jié)構(gòu)構(gòu)造器的關(guān)系信息處理模塊獲取類和粒之間的關(guān)系信息。
6.根據(jù)權(quán)利要求1所述的面向粒的編程集成開(kāi)發(fā)平臺(tái),其特征在于所述的編輯器的 窗口切換模塊與類_粒層次結(jié)構(gòu)構(gòu)造器的類信息處理模塊、粒信息處理模塊和關(guān)系信息處 理模塊連接,實(shí)現(xiàn)窗口切換時(shí)被切換前后窗口內(nèi)容的信息同步。
7.根據(jù)權(quán)利要求1所述的面向粒的編程集成開(kāi)發(fā)平臺(tái),其特征在于所述的調(diào)試器的 跟蹤模塊、粒指示模塊和調(diào)試器窗口顯示模塊分別與類_粒層次結(jié)構(gòu)構(gòu)造器的類信息處理 模塊、粒信息處理模塊連接;從粒層次結(jié)構(gòu)構(gòu)造器的類信息處理模塊獲取所有類信息及其 層次結(jié)構(gòu),從粒層次結(jié)構(gòu)構(gòu)造器的粒信息處理模塊獲取所有粒信息及其層次結(jié)構(gòu),為調(diào)試 工作提供指示信息。
8.根據(jù)權(quán)利要求1所述的面向粒的編程集成開(kāi)發(fā)平臺(tái),其特征在于所述的調(diào)試器的 跟蹤模塊、粒指示模塊、調(diào)試器窗口顯示模塊和個(gè)體程序演化模塊分別與編輯器和虛擬機(jī) 連接;調(diào)試器啟動(dòng)編輯器實(shí)現(xiàn)對(duì)代碼的修改,調(diào)試器從虛擬機(jī)獲取當(dāng)前運(yùn)行的狀態(tài)信息。
全文摘要
本發(fā)明公開(kāi)了一種面向粒的編程集成開(kāi)發(fā)平臺(tái),該平臺(tái)分為編輯器、編譯器、虛擬機(jī)、調(diào)試器和類-粒層次結(jié)構(gòu)構(gòu)造器;所述編輯器、編譯器和調(diào)試器分別與類-粒層次結(jié)構(gòu)構(gòu)造器相互通信,所述調(diào)試器還分別與編輯器和虛擬機(jī)連接。該平臺(tái)提供了對(duì)面向粒的編程(Granule-Oriented Programming)語(yǔ)言的編碼、編譯、調(diào)試功能;將程序的信息由獨(dú)立的類-粒層次結(jié)構(gòu)構(gòu)造器進(jìn)行管理,依靠面向粒的編程集成開(kāi)發(fā)平臺(tái)我們可以很容易定義粒,并將類代碼與粒代碼透明的融合,同時(shí)類-粒之間的自動(dòng)定位功能和豐富的信息顯示功能也使得代碼編輯、故障確定和新粒的編寫(xiě)更為方便。
文檔編號(hào)G06F9/44GK101826017SQ20101017279
公開(kāi)日2010年9月8日 申請(qǐng)日期2010年5月14日 優(yōu)先權(quán)日2010年5月14日
發(fā)明者張長(zhǎng)軍, 曾慶花, 朱常鵬, 李聰, 王一群, 王妮, 趙銀亮, 鄭雙明 申請(qǐng)人:西安交通大學(xué)