国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      手持終端應(yīng)用程序的開發(fā)裝置和方法

      文檔序號:6651846閱讀:297來源:國知局
      專利名稱:手持終端應(yīng)用程序的開發(fā)裝置和方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及用于開發(fā)應(yīng)用程序的裝置和方法,尤其涉及用于使用跨平臺語言開發(fā)能夠在多種手持終端上運(yùn)行的應(yīng)用程序的裝置和方法。
      背景技術(shù)
      文曲星以前具有的開發(fā)手段主要有6502匯編語言,GVBASIC語言和WINIDE語言(C語言)。這三種方式各有利弊,匯編語言執(zhí)行速度快,但學(xué)習(xí)困難開發(fā)效率低,通用性差,需要自己編寫函數(shù),要求用戶對硬件有較深入的了解;GVBASIC語言容易學(xué)習(xí),適用的機(jī)型多,但速度慢,功能有限而且不穩(wěn)定,GVBASIC語言的目標(biāo)代碼比匯編語言小一點(diǎn),但函數(shù)很少,編程效率較匯編語言效率高很多,也要求用戶對硬件有一定程度的了解;WINIDE語言容易學(xué)習(xí),速度快,函數(shù)較豐富,運(yùn)行效率較高,但也要求用戶對硬件有一定程度的了解,適用的機(jī)型少。
      需要一種技術(shù),能夠開發(fā)出可以在多種手持終端上運(yùn)行的應(yīng)用程序,能夠屏蔽硬件的多樣性,達(dá)到程序通用的目的。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于提供能夠克服現(xiàn)有技術(shù)中存在的至少一種缺陷的應(yīng)用程序開發(fā)裝置,該開發(fā)裝置使用跨平臺語言開發(fā)能夠在多種手持終端上運(yùn)行的應(yīng)用程序。其中,手持終端是諸如電子詞典的低端手持終端??缙脚_語言是GVmaker語言。
      該開發(fā)裝置包括編輯器,用戶在其上編輯源代碼;編譯器,在接收到用戶輸入的編譯命令后,對通過編輯器編輯后的源代碼進(jìn)行編譯,生成可以在多種手持終端中運(yùn)行的應(yīng)用程序;以及模擬器,接收到用戶輸入的模擬命令后,模擬手持終端中的運(yùn)行環(huán)境,使通過編譯器編譯過的應(yīng)用程序在其上模擬運(yùn)行。
      該開發(fā)裝置還包括用戶界面模塊,用于接收用戶輸入的命令,并顯示編輯器、編譯器、和模擬器的信息。
      本發(fā)明還提供了應(yīng)用程序的開發(fā)方法,該開發(fā)方法用于使用跨平臺語言開發(fā)能夠在多種手持終端上運(yùn)行的應(yīng)用程序。手持終端是諸如電子詞典的低端手持終端。跨平臺語言是GVmaker語言。該開發(fā)方法包括第一步驟,用戶在編輯器中輸入源代碼;
      第二步驟,使用編譯器對輸入編輯器中的源代碼進(jìn)行編譯,產(chǎn)生可以在手持終端中運(yùn)行的應(yīng)用程序;以及第三步驟,通過模擬器模擬在手持終端中的環(huán)境,使編譯器編譯出的應(yīng)用程序在模擬環(huán)境中運(yùn)行,并且用戶根據(jù)模擬結(jié)果對源代碼進(jìn)行修改和調(diào)試。
      在第一步驟中,用戶可以通過用戶界面模塊輸入源代碼,輸入的源代碼是由GVmaker語言編寫的。用戶可以在編輯器中設(shè)置標(biāo)簽,以記憶用戶想要設(shè)置的位置。
      在第二步驟中,編譯器對源代碼進(jìn)行詞法分析、語法分析、語義分析、以及目標(biāo)代碼生成。如果有詞法或語法錯(cuò)誤時(shí),編譯器產(chǎn)生編譯提示信息,并將其通過用戶界面模塊顯示給用戶,用戶通過編譯提示信息對編輯器中的源代碼進(jìn)行修改,編譯器重新編譯修改后的源代碼,直到不再發(fā)生錯(cuò)誤,生成在手持終端中使用的應(yīng)用程序。
      在第三步驟中,生成的應(yīng)用程序在模擬器模擬的環(huán)境中運(yùn)行,如果有錯(cuò)誤,則模擬器產(chǎn)生提示信息,通過用戶界面模塊顯示給用戶,用戶根據(jù)提示信息對源代碼進(jìn)行修改,重新進(jìn)行編譯和模擬,直到實(shí)現(xiàn)用戶的構(gòu)想或達(dá)到用戶的需求。
      使用本發(fā)明提供的應(yīng)用程序開發(fā)裝置和方法,可以容易地編寫出能夠跨平臺使用的應(yīng)用程序,可以使開發(fā)出的應(yīng)用程序用于多種諸如電子詞典的手持終端上運(yùn)行,達(dá)到了通用的目的。


      圖1是根據(jù)本發(fā)明的用于開發(fā)手持終端上使用的應(yīng)用程序的開發(fā)裝置100的框圖。
      圖2是根據(jù)本發(fā)明的采用虛擬機(jī)的GVmaker技術(shù)的整體架構(gòu)200;圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的應(yīng)用程序的開發(fā)裝置300的框圖;圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的應(yīng)用程序的運(yùn)行平臺(手持終端)400的框圖;圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的GVmaker集成開發(fā)環(huán)境的主界面;圖6是根據(jù)本發(fā)明一個(gè)實(shí)施例的GVmaker集成開發(fā)環(huán)境Windows菜單;圖7是根據(jù)本發(fā)明一個(gè)實(shí)施例的GVmaker集成開發(fā)環(huán)境分成兩塊面板的文件窗口;圖8是根據(jù)本發(fā)明一個(gè)實(shí)施例的GVmaker集成開發(fā)環(huán)境中的打印設(shè)置對話框;圖9是根據(jù)本發(fā)明一個(gè)實(shí)施例的GVmaker集成開發(fā)環(huán)境中的Find對話框;圖10是根據(jù)本發(fā)明一個(gè)實(shí)施例的顯示在用戶界面中的編譯提示信息;
      圖11是根據(jù)本發(fā)明的一個(gè)實(shí)施例的顯示在用戶界面中的源代碼的第5行加黑顯示;圖12是根據(jù)本發(fā)明的一個(gè)實(shí)施例的顯示在用戶界面中的另一編譯提示信息;圖13是根據(jù)本發(fā)明的一個(gè)實(shí)施例的顯示在用戶界面中的再一編譯提示信息;圖14是根據(jù)本發(fā)明的一個(gè)實(shí)施例的模擬器界面;圖15是根據(jù)本發(fā)明的一個(gè)實(shí)施例的顯示在用戶界面中的模擬過程中的一個(gè)提示信息;圖16是根據(jù)本發(fā)明的一個(gè)實(shí)施例的顯示在用戶界面模塊中的源代碼中的第2行加黑;圖17是根據(jù)本發(fā)明的一個(gè)實(shí)施例的雙擊調(diào)試信息窗口的空白區(qū)后出現(xiàn)的窗口;圖18是根據(jù)本發(fā)明的一個(gè)實(shí)施例的雙擊調(diào)試信息窗口name列的變量名后出現(xiàn)的變量刪除、修改窗口;圖19是根據(jù)本發(fā)明的一個(gè)實(shí)施例的調(diào)試信息窗口;圖20是根據(jù)本發(fā)明的一個(gè)實(shí)施例的另一調(diào)試信息窗口;圖21是根據(jù)本發(fā)明的一個(gè)實(shí)施例的打包工具的主界面;以及圖22是根據(jù)本發(fā)明的手持終端中使用的應(yīng)用程序的開發(fā)方法的流程圖。
      具體實(shí)施例方式
      GVmaker語言是一種跨平臺語言。這里所說的跨平臺是指同一程序的目標(biāo)代碼能夠不加修改地在不同硬件平臺上直接運(yùn)行,與可移植不同。但是,跨平臺不是絕對的,而是相對的。絕對的跨平臺語言要么是不存在的,要么是無用的。舉例來說有一個(gè)GVmaker程序需要20KB的內(nèi)存才能運(yùn)行,那么這個(gè)程序在只有8KB內(nèi)存的平臺上顯然無法正常運(yùn)行。那么為了保證所有GVmaker程序都能在8KB內(nèi)存的平臺上運(yùn)行,是不是可以限定所有GVmaker程序只準(zhǔn)使用8KB的內(nèi)存呢?答案是,不能為了絕對的跨平臺能力而限制語言本身的能力。
      GVmaker的跨平臺能力是由GVmaker虛擬機(jī)(GVM)來保證的。顯然,如果編譯器把GVmaker程序直接編譯為某一種CPU的機(jī)器碼是不行的。因?yàn)榭缙脚_首先要能跨CPU。如果某種語言的程序的目標(biāo)代碼只能在某種CPU上運(yùn)行,這樣的語言是不配稱為跨平臺語言的。GVmaker編譯器把GVmaker程序編譯為虛擬機(jī)器碼。虛擬機(jī)器碼可以由GVmaker虛擬機(jī)識別并執(zhí)行。為不同的硬件平臺配備各自的GVmaker虛擬機(jī),從而保證同一GVmaker程序的目標(biāo)代碼能夠在不同的硬件平臺上運(yùn)行,也就是跨平臺。
      GVmaker虛擬機(jī)保證了操作的安全性,一方面防止了程序非法訪問內(nèi)存,另一方面防止程序執(zhí)行非法或危險(xiǎn)的指令。任何內(nèi)存訪問都要通過虛擬機(jī)來執(zhí)行,所以虛擬機(jī)本身有能力判斷哪些地址是非法的,從而防止非法訪問內(nèi)存。任何虛擬機(jī)代碼也必須通過虛擬機(jī)才能變?yōu)檎鎸?shí)的機(jī)器可識別指令,所以虛擬機(jī)可以過濾危險(xiǎn)的指令。如果為GVmaker加上運(yùn)行一般匯編代碼的能力(類似C的內(nèi)嵌匯編),就違反了跨平臺原則,而且增加了語言的危險(xiǎn)性。
      為安全而增加的內(nèi)存地址和代碼檢查會(huì)顯著影響程序的速度。為了平衡這兩個(gè)矛盾的原則,設(shè)計(jì)了兩種虛擬機(jī),一種虛擬機(jī)具備檢查能力,稱為GVmaker認(rèn)證機(jī),另一種虛擬機(jī)不具備檢查能力,但是運(yùn)行速度快。在GVmaker認(rèn)證機(jī)上順利通過認(rèn)證的程序就可以放心地在不具備檢查能力的虛擬機(jī)上快速運(yùn)行了。
      圖1示出了開發(fā)手持終端上運(yùn)行的應(yīng)用程序的開發(fā)裝置的框圖。該開發(fā)裝置100包括編輯器102,用戶在其上編輯源代碼;編譯器104,在收到用戶輸入的編譯命令后,編譯器對通過編輯器編輯后的源代碼進(jìn)行編譯,生成可以在多種手持終端中運(yùn)行的應(yīng)用程序;以及模擬器106,在接收到用戶輸入的模擬命令后,模擬器模擬手持終端中的運(yùn)行環(huán)境,使通過編譯器編譯過的應(yīng)用程序在其上模擬運(yùn)行。
      其中,開發(fā)裝置100還可以包括用戶界面模塊,用于接收用戶輸入的命令,并顯示所述編輯器、編譯器、和模擬器的信息。
      圖2示出了GVmaker技術(shù)的整體架構(gòu)200。如圖1所示,為了達(dá)到程序使用的通用性,GVmaker技術(shù)采用了虛擬機(jī)運(yùn)行方式。編譯好的程序可以在各種平臺上運(yùn)行,而不需要任何修改。但需要為各種平臺開發(fā)虛擬機(jī)來執(zhí)行GVmaker程序。
      GVmaker技術(shù)的整體架構(gòu)200包括開發(fā)裝置300(GVmakerIDE)和運(yùn)行平臺400兩個(gè)部分。開發(fā)裝置用于開發(fā)在運(yùn)行平臺上運(yùn)行的應(yīng)用程序。開發(fā)裝置300包括用戶界面模塊308、編輯器302、編譯器304和模擬器306。運(yùn)行平臺為電子詞典等低端手持終端,其包括應(yīng)用程序模塊402、虛擬機(jī)404、操作系統(tǒng)模塊406和硬件模塊408。
      圖3是根據(jù)本發(fā)明的手持終端應(yīng)用程序的開發(fā)裝置300的框圖。該開發(fā)裝置用于使用跨平臺語言開發(fā)能夠在多種手持終端上運(yùn)行的應(yīng)用程序。其中,手持終端是諸如電子詞典的低端手持終端,在此為文曲星。跨平臺語言是GVmaker語言。
      該開發(fā)裝置300包括編輯器302,用戶在其上編輯源代碼,并將源代碼顯示在用戶界面模塊308上。用戶可以在編輯器中輸入源代碼,并且對源代碼進(jìn)行修改。在編輯器中可以設(shè)置書簽,書簽用于記錄在源代碼中用戶想要設(shè)置的位置。
      編譯器304,接收到用戶通過用戶界面模塊308輸入的編譯命令后,對編輯器302編輯后的源代碼進(jìn)行編譯,對源代碼進(jìn)行詞法分析、語法分析、語義分析、和目標(biāo)代碼生成,即,將源代碼轉(zhuǎn)換成字節(jié)碼(byte code),生成可以在多種手持終端中運(yùn)行的應(yīng)用程序。當(dāng)在編譯過程中出現(xiàn)錯(cuò)誤時(shí),編譯器可以產(chǎn)生編譯提示信息,通過用戶界面模塊顯示給用戶,用戶可以根據(jù)編譯提示信息對源代碼進(jìn)行修改。
      模擬器306,接收到用戶通過用戶界面模塊308輸入的模擬命令后,模擬手持終端中的運(yùn)行環(huán)境,使編譯器編譯好的應(yīng)用程序在其上模擬運(yùn)行,用戶根據(jù)模擬結(jié)果對源代碼進(jìn)行修改、調(diào)試。
      用戶界面模塊308,用于接收用戶輸入的命令,并顯示編輯器302、編譯器304、和模擬器306的信息。
      當(dāng)對源代碼調(diào)試完畢后,可以通過PC連接線將編譯后的應(yīng)用程序(字節(jié)碼文件傳)送到文曲星中,作為在文曲星中運(yùn)行的應(yīng)用程序。
      圖4是根據(jù)本發(fā)明的應(yīng)用程序的運(yùn)行平臺400的框圖。運(yùn)行平臺包括應(yīng)用程序模塊402、虛擬機(jī)404、操作系統(tǒng)406、以及硬件模塊408。
      應(yīng)用程序模塊402,調(diào)試完畢以后通過PC連接線將應(yīng)用程序(字節(jié)碼文件)傳送到運(yùn)行平臺,應(yīng)用程序模塊用于儲(chǔ)存開發(fā)裝置產(chǎn)生的應(yīng)用程序。
      虛擬機(jī)404,用于根據(jù)GVmaker指令集對字節(jié)碼文件進(jìn)行解釋,并調(diào)用操作系統(tǒng)模塊內(nèi)的響應(yīng)功能。
      操作系統(tǒng)模塊406,用于調(diào)用所需的硬件資源。
      硬件模塊408,用于執(zhí)行虛擬機(jī)解釋后的程序,實(shí)現(xiàn)運(yùn)行平臺的功能。
      圖5是GVmaker集成開發(fā)環(huán)境的屏幕截圖。圖6至圖20是進(jìn)行操作時(shí)的屏幕截圖。剛進(jìn)入開發(fā)裝置(GVmakerIDE,GVmaker集成開發(fā)環(huán)境)時(shí)是看不到編輯器的,要啟動(dòng)代碼編輯器,必須打開一個(gè)舊GVmaker源代碼或新建一個(gè)新GVmaker程序。一個(gè)新文件建立后,代碼編輯器就會(huì)自動(dòng)啟動(dòng)。代碼編輯器未啟動(dòng)時(shí),Edit菜單下的很多命令都呈灰色,表明這些命令還不能執(zhí)行。啟動(dòng)代碼編輯器后,大多數(shù)命令被激活,呈黑色。注意,在GVmakerIDE中,只有黑色的菜單命令才可執(zhí)行?;疑牟藛蚊钗幢患せ睿荒軋?zhí)行。
      一、以下對編輯器的操作進(jìn)行描述GVmakerIDE代碼編輯器提供了足夠的命令以能夠簡捷、方便地進(jìn)行文本編輯。例如,如果想在編輯器中恢復(fù)剛剛誤刪的文字,只需按Ctrl+Z或選擇Edit菜單下的Undo命令。
      建立新GVmaker程序GVmakerIDE能同時(shí)打開多個(gè)GVmaker源程序進(jìn)行編輯。建立新GVmaker程序,只要從File菜單上選擇New命令即可,或在工具欄上點(diǎn)擊圖標(biāo)1。
      打開已有GVmaker程序的方法包括1.點(diǎn)擊工具欄上圖標(biāo)2。
      2.按Ctrl+O。
      3.從File菜單中選擇Open命令。
      4.在File菜單下的Recent Files列表中選擇文件名。
      前三種方法將打開Open對話框,后一種方法則能直接打開文件。
      最近使用文件(MRU)列表MRU列表包含GVmakerIDE代碼編輯器最近讀取過的四個(gè)文件。下拉File菜單,選擇相應(yīng)的文件名就可打開該文件。
      Open對話框如果要打開的文件不在最近使用文件列表內(nèi),必須使用Open命令,從Open對話框中選擇該文件。Open對話框默認(rèn)地顯示當(dāng)前工程目錄下的文件。因此,無須太多的點(diǎn)擊就能找到所要的文件。
      查看文件Window菜單提供一個(gè)文件列表,它包含了所有目前已打開的文件名。如圖6所示,可以在Window菜單的下拉菜單中單擊想編輯的文件名來切換當(dāng)前編輯文件。想一次看到所有文件,如圖7所示,可以在Window菜單的子菜單中選擇Cascade(層疊)、Tile(垂直平鋪)命令。
      代碼編輯器能在不同的窗口同時(shí)打開同一文件,允許用戶同時(shí)查看同一文件的不同部分。圖7顯示了同一文件的兩個(gè)窗口。文件在文本編輯器打開后,單擊Window菜單下的New Window命令就可以打開同一文件的另一窗口。注意,這不同于關(guān)閉一文件后再次打開它。每一通過New Window命令產(chǎn)生的窗口有其各自獨(dú)立的滾動(dòng)條和光標(biāo),窗口的操作互不依賴。
      可以通過單擊New Window命令建立更多的窗口。單擊Window菜單下的Tile(垂直平鋪)命令則可重新布置各窗口。垂直布置同一文件的不同窗口能使用戶的編輯更加方便。單擊窗口可激活該窗口。
      保存文件不像Word那樣,GVmakerIDE代碼編輯器不會(huì)按時(shí)間間隔自動(dòng)保存文件。在用戶編輯時(shí),應(yīng)養(yǎng)成經(jīng)常存盤的習(xí)慣,以免不測。當(dāng)用戶長時(shí)間編輯文件后,請及時(shí)存盤。可按以下方法來存盤1.單擊File工具欄上的Save按鈕3。
      2.按Ctrl+S。
      3.選擇File菜單下的Save命令。
      如果關(guān)閉一個(gè)修改過的文件,編輯器將自動(dòng)提醒保存文件。而且,在編譯器編譯文件之前,文本編輯器會(huì)自動(dòng)保存文件,這是因?yàn)榫幾g器是從硬盤讀取文件,而不是從內(nèi)存中讀取。
      當(dāng)保存一個(gè)文件時(shí),新的文件就把原來的覆蓋。要想保留原文件,可選擇File菜單下的Save As命令,輸入新文件名,然后保存新文件即可。
      打印文件打印當(dāng)前文件,單擊File菜單下的Print命令(或按Ctrl+P)打開Print對話框,如圖8所示。在對話框內(nèi)設(shè)置打印范圍和紙張的方向、大小等。
      為了確保正確打印,在打印之前單擊File菜單下的PrintPreview命令,這樣就可以進(jìn)行打印預(yù)覽。GVmakerIDE還允許設(shè)置打印格式。選擇File菜單下的Page Setup命令。
      可以通過按方向鍵或拖動(dòng)滾動(dòng)條來移動(dòng)文件。在文本編輯器中通過這些方法來移動(dòng)文件對使用過字處理器的用戶來說是再熟悉不過了,在此我們也無須深入探討諸如Cut、Copy、Paste等命令了。下面介紹的各種更高級的方法將有助于更準(zhǔn)確、更有效地操作文件。
      書簽在GVmakerIDE中可以設(shè)置10個(gè)書簽,代碼編輯器書簽會(huì)記憶文件中設(shè)置的位置。無論光標(biāo)在文本中何處,都可以迅速返回書簽標(biāo)識處。
      書簽是臨時(shí)性的,只能維持到用戶刪除它或關(guān)閉文件的時(shí)候。它只標(biāo)識整行,而不是光標(biāo)的具體位置。當(dāng)跳到某書簽時(shí),光標(biāo)就會(huì)停留在該標(biāo)識行的開始處。在GVmakerIDE中,書簽的設(shè)置和刪除是極其簡單的。把光標(biāo)置于該行任一地方,選擇菜單Edit->Bookmarks,從bookmark 0到bookmark 9任意選擇,刪除文件的所有書簽,選擇菜單。
      Edit->Bookmarks->Clear all bookmarks,應(yīng)該注意的是,關(guān)閉文件時(shí)會(huì)自動(dòng)把所有書簽刪除。
      查找文本編輯器提供了兩種不同的查找字符串的方式1.在當(dāng)前文件中查找。
      2.在當(dāng)前文件中查找、替換。
      這兩種操作在文本編輯器中很普遍。注意,在下文中,文本和字符串同義。
      在當(dāng)前文件中查找像大多數(shù)文本編輯器一樣,GVmakerIDE編輯器能在整個(gè)文件中查找指定的文本,即具有查找功能。打開Find對話框(圖9)有三種方法1.按Ctrl+F。
      2.選擇Edit菜單下的Find命令。
      3.單擊工具欄Find按鈕4。
      如圖9所示,在Find What文本框中輸入欲查找的字符串,按回車鍵或單擊Find Next按鈕則可開始查找。找到該字符串后,編輯器將高亮找到的字符串并返回編輯器模式,按F3可以繼續(xù)向前查找同一字符串。
      用戶還可以定義查找選項(xiàng)以使用戶的查找更有針對性。例如指定是否區(qū)分大小寫及查找方向等,這些選項(xiàng)都可以在Find對話框中設(shè)定。
      替換文本如果想用其它字符串替換查找的字符串就要選擇Edit菜單下的Replace命令。Replace對話框和Find對話框很相似,只不過它要求輸入兩個(gè)字符串。第一個(gè)文本框要求輸入要查找的文本,第二個(gè)文本框要求輸入用于替換的文本。如果第二個(gè)文本框是空白的話,相當(dāng)于刪除要查找的文本。查找到指定的字符串后,按Replace按鈕即可進(jìn)行替換并會(huì)自動(dòng)查找到下一條相符的字符串。按ReplaceAll按鈕就會(huì)把所有符合要求的字符串進(jìn)行替換。
      加鎖文件防止意外修改文件內(nèi)容,用戶可以對大當(dāng)前打開的文件進(jìn)行加鎖,加鎖后仍可以進(jìn)行拷貝操作,選擇菜單Edit->Read only,要解鎖再次點(diǎn)擊Edit->Read only就可以了。
      二、以下對編譯器的操作進(jìn)行描述1.選擇Compile菜單下的Compile命令。
      2.單擊工具欄Compile按鈕5。
      以上兩種方法都生成不帶調(diào)試信息的GVmaker目標(biāo)代碼(*.lav),可以直接下載到文曲星或GVmaker模擬器上運(yùn)行。當(dāng)編譯過程中有詞法、語法錯(cuò)誤時(shí),在編譯信息區(qū)有錯(cuò)誤信息提示(圖10)。
      雙擊錯(cuò)誤提示行,光標(biāo)自動(dòng)跳到源代碼發(fā)生錯(cuò)誤這一行,并把該行加黑顯示(圖11)。
      注意目前的GVmakerIDE變量,函數(shù)沒有定義時(shí)提示信息是一樣的,例如,把上面程序里的函數(shù)Refresh()錯(cuò)寫成refresh()時(shí),錯(cuò)誤信息(圖12)當(dāng)出現(xiàn)圖13提示時(shí),表明用戶的程序沒有詞法、語法、語義錯(cuò)誤,已經(jīng)生成GVmaker目標(biāo)代碼。
      三、以下是對使用模擬器進(jìn)行模擬和調(diào)試的描述為了調(diào)試一個(gè)程序,首先必須在編譯過程中包含調(diào)試信息。GVmakerIDE有6種方法。
      1.單擊工具欄Run to cursor按鈕6。
      2.單擊工具欄Run to next line按鈕7。
      3.單擊工具欄Debug run按鈕8。
      4.選擇Run菜單下的Run to cursor命令。
      5.選擇Run菜單下的Run to next line命令。
      6.選擇Run菜單下的Debug run命令。
      下面用具體例子對第一種方法詳細(xì)說明,例子源代碼如下
      <pre listing-type="program-listing">char arr_A[20]={″ABCDEFGHIJKLMN″};void main()  {   int i;   for(i=0;i<50;i++)  {   TextOut(i,30,″GVMAKER DEMO″,1);   Refresh();   Delay(20);  }  Delay(1000);  Block(0,0,160,80,0);  Refresh();  for(i=0;i<200;i=i+5)  {   TextOut(rand()%160,rand()%80,″測試″,1);   Refresh();   Delay(50);  }  Block(0,0,160,80,0);  Refresh();  for(i=0;i<200;i=i+5)  {   Line(rand()%160,rand()%80,rand()%160,rand()%80,1);   Delay(50);  }  Block(0,0,160,80,0);  Refresh();  for(i=0;i<200;i=i+5)  {   Rectangle(rand()%160,rand()%80,rand()%160,rand()%80,1);   Refresh();   Delay(50);  }Block(0,0,160,80,0);  Refresh();  for(i=0;i<2000;i=i+5)  {  Point(rand()%160,rand()%80,1);  Delay(10);  }  Block(0,0,160,80,0);  Refresh();  for(i=0;i<200;i=i+5)  {  Circle(rand()%160,rand()%80,rand()%40,0,1);  Delay(50);  }  Block(0,0,160,80,0);  Refresh();  for(i=0;i<200;i=i+5)  {  Ellipse(rand()%160,rand()%80,rand()%40,rand()%40,0,1);  Delay(50);  }  Block(0,0,160,80,0);  Refresh();  for(i=0;i<50;i++)  {  TextOut(i,30,″THE END″,1);  Refresh();  Delay(20);  }  }</pre>現(xiàn)在,把光標(biāo)定位在第12行&lt;即B1ock(0,0,160,80,0);&gt;,單擊工具欄Run to cursor按鈕5,GVmakerIDE自動(dòng)帶調(diào)試信息進(jìn)行編譯,自動(dòng)啟動(dòng)GVmaker模擬器運(yùn)行,當(dāng)程序運(yùn)行到第12行,模擬器暫停運(yùn)行(圖14),返回GVmakerIDE,編譯信息窗口(圖15),代碼編輯窗口第12行加黑反顯(圖16)。
      此時(shí),用戶可以查看程序中的變量值,打開添加變量窗口,有2種方法1.雙擊調(diào)試信息窗口的空白區(qū),出現(xiàn)如圖17。
      2.雙擊調(diào)試信息窗口name列的變量名,出現(xiàn)變量刪除,修改窗口如圖18。
      現(xiàn)在,我們在圖17的name欄里輸入變量i點(diǎn)擊OK按鈕,調(diào)試信息窗口如圖19。name列是變量名,value列是變量值的十進(jìn)制值和十六進(jìn)制值,如果要?jiǎng)h除調(diào)試信息窗口中的變量,雙擊調(diào)試信息窗口name列的變量名,出現(xiàn)圖18窗口,點(diǎn)擊Delete按鈕即可。
      如果要修改變量,name欄里輸入變量名(如數(shù)組arr_A)點(diǎn)擊Modify按鈕,調(diào)試信息窗口如圖20,value列顯示訴諸數(shù)組各單元的值。
      單步運(yùn)行當(dāng)程序暫停運(yùn)行時(shí),可以單擊工具欄Run to next line按鈕7或9,單步運(yùn)行程序以及查看變量值。
      圖2l是根據(jù)本發(fā)明的GVmaker打包工具的屏幕截圖。
      打開GVmaker打包工具后,自動(dòng)建立一個(gè)空文檔,添加需要的文件即可,添加文件有5種方法。
      1.雙擊列表空白處,顯示文件選擇對話框,選擇文件。
      2.點(diǎn)擊菜單編輯-&gt;增加,顯示文件選擇對話框。
      3.點(diǎn)擊工具條的圖標(biāo)14,顯示文件選擇對話框。
      4.按鍵盤的Insert鍵。
      5.把文件直接拉到列表處(可以選擇多個(gè)文件一起拉)。
      刪除記錄選擇要?jiǎng)h除的記錄,高亮度顯示。
      1.點(diǎn)擊工具條的圖標(biāo)16。
      2.點(diǎn)擊菜單編輯-&gt;刪除。
      3.按鍵盤的Delete鍵。
      4.點(diǎn)擊工具條的圖標(biāo)18刪除所有記錄。
      修改記錄修改有2種情況。
      A修改文件1.雙擊高亮度顯示的記錄,顯示文件選擇對話框,選擇文件。
      2.點(diǎn)擊菜單編輯-&gt;修改,顯示文件選擇對話框。
      3.點(diǎn)擊工具條的圖標(biāo)20,顯示文件選擇對話框。
      B修改文曲星路徑鼠標(biāo)單擊高亮度顯示的記錄,進(jìn)入修改狀態(tài),回車確定,Esc鍵取消。
      保存當(dāng)前列表信息1.點(diǎn)擊菜單文件-&gt;保存,顯示文件保存對話框。
      2.點(diǎn)擊工具條的圖標(biāo)12,顯示文件保存對話框。
      打開列表信息文件1.點(diǎn)擊文件-&gt;打開。
      3.點(diǎn)擊工具條的圖標(biāo)12。
      打包編寫的GVmaker程序和一些數(shù)據(jù)文件可以打包后下載到運(yùn)行平臺(文曲星)使用,也可以不打包分別下載到運(yùn)行平臺(文曲星)上。
      1.文件-&gt;打包。
      2.點(diǎn)擊工具條的圖標(biāo)10。
      圖22是根據(jù)本發(fā)明的應(yīng)用程序的開發(fā)方法的流程圖。該開發(fā)方法用于使用跨平臺語言開發(fā)能夠在多種手持終端上運(yùn)行的應(yīng)用程序。手持終端是諸如電子詞典的低端手持終端??缙脚_語言是GVmaker語言。使用包括編輯器、編譯器、模擬器、和用戶界面模塊的開發(fā)裝置,來開發(fā)能夠在多種手持終端上運(yùn)行的應(yīng)用程序,所述開發(fā)方法包括步驟S100,用戶通過用戶界面模塊將源代碼輸入編輯器中。
      步驟S200,使用編譯器對輸入編輯器中的源代碼進(jìn)行編譯,產(chǎn)生可以在手持終端中運(yùn)行的應(yīng)用程序。
      步驟S300,通過模擬器模擬在手持終端中的環(huán)境,使編譯器編譯出的應(yīng)用程序在模擬環(huán)境中運(yùn)行,并且將模擬結(jié)果顯示在用戶界面模塊中,用戶根據(jù)模擬結(jié)果對源代碼進(jìn)行修改和調(diào)試。
      在步驟S100中,用戶輸入的源代碼是由GVmaker語言編寫的。用戶可以在編輯器中設(shè)置標(biāo)簽,以記憶用戶想要設(shè)置的位置。
      在步驟S200中,編譯器對源代碼進(jìn)行詞法分析、語法分析、語義分析、以及目標(biāo)代碼生成。如果有詞法或語法錯(cuò)誤時(shí),編譯器產(chǎn)生編譯提示信息,并將其通過用戶界面模塊顯示給用戶,用戶通過編譯提示信息對編輯器中的源代碼進(jìn)行修改,編譯器重新編譯修改后的源代碼,直到不再發(fā)生錯(cuò)誤,生成在手持終端中使用的應(yīng)用程序。
      在步驟S300中,生成的應(yīng)用程序在模擬器模擬的環(huán)境中運(yùn)行,如果有錯(cuò)誤,則模擬器產(chǎn)生提示信息,通過用戶界面模塊顯示給用戶,用戶根據(jù)提示信息對源代碼進(jìn)行修改,重新進(jìn)行編譯和模擬,直到編譯和模擬過程中不再出現(xiàn)錯(cuò)誤。
      以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
      權(quán)利要求
      1.一種開發(fā)裝置,其特征在于,所述開發(fā)裝置用于使用跨平臺語言開發(fā)能夠在多種手持終端上運(yùn)行的應(yīng)用程序,所述開發(fā)裝置包括編輯器,用戶在其上編輯源代碼;編譯器,在接收到所述用戶輸入的編譯命令后,對通過所述編輯器編輯的源代碼進(jìn)行編譯,生成可以在多種手持終端中運(yùn)行的應(yīng)用程序;以及模擬器,在接收到所述用戶輸入的模擬命令后,模擬手持終端中的運(yùn)行環(huán)境,使通過所述編譯器編譯過的應(yīng)用程序在其上模擬運(yùn)行。
      2.根據(jù)權(quán)利要求1所述的開發(fā)裝置,其特征在于,還包括用戶界面模塊,用于接收用戶輸入的命令,并顯示所述編輯器、編譯器、和模擬器的信息。
      3.根據(jù)權(quán)利要求1或2所述的開發(fā)裝置,其特征在于,所述手持終端是低端手持終端。
      4.根據(jù)權(quán)利要求3所述的開發(fā)裝置,其特征在于,所述低端手持終端是電子詞典。
      5.根據(jù)權(quán)利要求1或2所述的開發(fā)裝置,其特征在于,所述跨平臺語言是GVmaker語言。
      6.根據(jù)權(quán)利要求1或2所述的開發(fā)裝置,其特征在于,在所述編輯器,用戶可以輸入源代碼并對源代碼進(jìn)行修改。
      7.根據(jù)權(quán)利要求1或2所述的開發(fā)裝置,其特征在于,在所述編輯器中可以設(shè)置書簽,所述書簽用于記錄在源代碼中用戶想要設(shè)置的位置。
      8.根據(jù)權(quán)利要求1或2所述的開發(fā)裝置,其特征在于,所述編譯器用于對源代碼進(jìn)行詞法分析、語法分析、語義分析、和目標(biāo)代碼生成。
      9.根據(jù)權(quán)利要求1或2所述的開發(fā)裝置,其特征在于,當(dāng)在編譯過程中出現(xiàn)錯(cuò)誤時(shí),所述編譯器可以產(chǎn)生編譯提示信息,通過用戶界面模塊進(jìn)行顯示。
      10.根據(jù)權(quán)利要求1或2所述的開發(fā)裝置,其特征在于,所述模擬器用于模擬所述手持終端的環(huán)境,使所述編譯器生成的應(yīng)用程序在其上模擬運(yùn)行,當(dāng)出現(xiàn)錯(cuò)誤時(shí),所述模擬器可以產(chǎn)生提示信息,通過用戶界面模塊進(jìn)行顯示。
      11.一種應(yīng)用程序的開發(fā)方法,其特征在于,所述開發(fā)方法用于使用跨平臺語言開發(fā)能夠在多種手持終端上運(yùn)行的應(yīng)用程序,所述開發(fā)方法包括第一步驟,在編輯器中輸入源代碼;第二步驟,使用編譯器對輸入編輯器中的源代碼進(jìn)行編譯,產(chǎn)生可以在多種手持終端中運(yùn)行的應(yīng)用程序;以及第三步驟,通過模擬器模擬在手持終端中的環(huán)境,使所述編譯器編譯出的應(yīng)用程序在模擬環(huán)境中運(yùn)行,并且根據(jù)模擬結(jié)果對源代碼進(jìn)行修改和調(diào)試。
      12.根據(jù)權(quán)利要求11所述的開發(fā)方法,其特征在于,使用用戶界面模塊輸入源代碼并且在所述用戶界面模塊上顯示編譯和模擬結(jié)果。
      13.根據(jù)權(quán)利要求11所述的開發(fā)方法,其特征在于,所述手持終端是低端手持終端。
      14.根據(jù)權(quán)利要求11所述的開發(fā)方法,其特征在于,所述低端手持終端是電子詞典。
      15.根據(jù)權(quán)利要求11所述的開發(fā)方法,其特征在于,所述跨平臺語言是GVmaker語言。
      16.根據(jù)權(quán)利要求11所述的開發(fā)方法,其特征在于,在所述第一步驟中,可以在所述編輯器中對源代碼進(jìn)行修改,并且設(shè)置標(biāo)簽,以記憶用戶想要設(shè)置的位置。
      17.根據(jù)權(quán)利要求11所述的開發(fā)方法,其特征在于,在所述第二步驟中,所述編譯器對源代碼進(jìn)行詞法分析、語法分析、語義分析、以及目標(biāo)代碼生成。
      18.根據(jù)權(quán)利要求11所述的開發(fā)方法,其特征在于,在所述第二步驟中,如果有詞法、語法或語義錯(cuò)誤時(shí),所述編譯器產(chǎn)生編譯提示信息,并將其通過用戶界面模塊進(jìn)行顯示。
      19.根據(jù)權(quán)利要求11所述的開發(fā)方法,其特征在于,在所述第三步驟中,使生成的應(yīng)用程序在所述模擬器模擬的環(huán)境中運(yùn)行,如果有錯(cuò)誤,則所述模擬器產(chǎn)生提示信息,通過用戶界面模塊進(jìn)行顯示。
      全文摘要
      本發(fā)明提供了一種應(yīng)用程序的開發(fā)裝置,該開發(fā)裝置用于使用跨平臺語言開發(fā)能夠在多種手持終端上運(yùn)行的應(yīng)用程序。該開發(fā)裝置包括編輯器,用戶在其上編輯源代碼;編譯器,用于對用戶輸入的源代碼進(jìn)行編譯,生成能夠跨平臺運(yùn)行的應(yīng)用程序;模擬器,用于模擬手持終端環(huán)境,使編譯器編譯出的應(yīng)用程序在其上模擬運(yùn)行,用戶通過模擬結(jié)果對源代碼進(jìn)行調(diào)試。通過本發(fā)明的開發(fā)裝置,可以輕松地編輯、編譯和調(diào)試出能夠跨平臺運(yùn)行的應(yīng)用程序。
      文檔編號G06F15/02GK1991765SQ20051013599
      公開日2007年7月4日 申請日期2005年12月29日 優(yōu)先權(quán)日2005年12月29日
      發(fā)明者李 杰 申請人:北京金遠(yuǎn)見電腦技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1