專利名稱:程序碼生成支持裝置及方法、程序執(zhí)行裝置及方法、程序碼壓縮裝置及方法及其程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及支持生成程序碼的程序碼生成支持裝置等。特別是, 涉及與執(zhí)行處理該程序碼的裝置等相匹配地對(duì)程序碼執(zhí)行最優(yōu)化。而 且,涉及基于程序碼進(jìn)行執(zhí)行處理的程序執(zhí)行裝置、方法等,以及用 于實(shí)現(xiàn)該裝置、方法的程序碼壓縮方法、裝置等。
背景技術(shù):
在家電設(shè)備(空調(diào)、電冰箱、洗衣機(jī)、照明燈裝置等)等中,為了 控制其操作,安裝有程序執(zhí)行裝置(以下,這種家電設(shè)備、家電設(shè)備適 配器等稱為插入設(shè)備(incorporating apparatus))。這里,為了使程 序執(zhí)行裝置進(jìn)行執(zhí)行處理,需要預(yù)定的、被稱為程序碼的數(shù)據(jù)。該程 序碼預(yù)先存儲(chǔ)在設(shè)置在插入設(shè)備內(nèi)的ROM (Read Only Memory:只 讀存儲(chǔ)器)等存儲(chǔ)單元內(nèi),程序執(zhí)行裝置讀取(輸入)存儲(chǔ)在ROM內(nèi)的 程序碼來進(jìn)行執(zhí)行處理。這樣,就提出了用于支持生成這種程序碼的 裝置(例如請(qǐng)參見專利文獻(xiàn)1)。
另外,存在這樣一種程序執(zhí)行裝置(例如,請(qǐng)參見專利文獻(xiàn)2): 對(duì)程序碼執(zhí)行壓縮處理,以減少應(yīng)存儲(chǔ)的數(shù)據(jù)量,通過盡量減少ROM 等存儲(chǔ)單元的存儲(chǔ)容量,從而降低有關(guān)存儲(chǔ)單元的成本。如此,今后, 減少程序碼的數(shù)據(jù)量這一點(diǎn)在插入設(shè)備經(jīng)由網(wǎng)絡(luò)而相互連接、收發(fā)例如包含程序碼數(shù)據(jù)的信號(hào)這樣的情況下,都很方便。
專利文獻(xiàn)l:特開平9-16382號(hào)公報(bào) 專利文獻(xiàn)2:特開2002 - 318696號(hào)〃>報(bào)
發(fā)明內(nèi)容
發(fā)明要解決的問題
這里,使用程序碼的環(huán)境沒有必要完全一樣,例如,由于隨著插 入設(shè)備(特別是程序執(zhí)行裝置)的不同而有很大不同,因此,我們期望 生成與插入設(shè)備的特性等相吻合的程序碼。特別是,若能使有關(guān)程序 碼的數(shù)據(jù)量盡可能少,則在程序執(zhí)行裝置中,可使ROM或用于在進(jìn) 行執(zhí)行處理時(shí)暫時(shí)進(jìn)行存儲(chǔ)的緩沖區(qū)的存儲(chǔ)容量減少與上述減少的 數(shù)據(jù)量相應(yīng)的量。而且今后在插入設(shè)備經(jīng)由網(wǎng)絡(luò)相互連接、收發(fā)例如 包含程序碼的信號(hào)這樣的情況下也很方便。但是,在上述這種支持裝 置中,僅僅生成程序碼。
通常,若程序碼被壓縮,則程序執(zhí)行裝置的執(zhí)行處理速度會(huì)降低。 因此,釆用在由RAM (Randam Access Memory:隨機(jī)存取存儲(chǔ)器) 等構(gòu)成的暫時(shí)性存儲(chǔ)單元(緩沖器)內(nèi)累積擴(kuò)展的程序碼的方法。為此, 需要RAM的容量很大。
因此,本發(fā)明的目的在于能夠進(jìn)一步最優(yōu)化程序碼從而生成新的 程序碼、特別是依據(jù)插入設(shè)備來生成程序碼的程序碼生成支持裝置、 方法等。另外,本發(fā)明的目的還在于,利用壓縮的程序碼來降低ROM 的存儲(chǔ)容量,同時(shí)防止降低程序執(zhí)行裝置的執(zhí)行處理速度,并且實(shí)現(xiàn) 能夠降低應(yīng)具備的緩沖器存儲(chǔ)容量的程序執(zhí)行裝置、方法等。另外, 本發(fā)明的目的還在于實(shí)現(xiàn)用于實(shí)現(xiàn)該裝置、該方法的程序碼壓縮方 法、裝置等。
用于解決問題的手段
有關(guān)本發(fā)明的程序碼生成支持裝置具有存儲(chǔ)單元,將用于變換 程序碼數(shù)據(jù)的變換條件和由變換內(nèi)容構(gòu)成的最優(yōu)化規(guī)則作為數(shù)據(jù)進(jìn) 行存儲(chǔ);以及代碼最優(yōu)化單元,具有分析所述程序碼的代碼分析部;條件檢索部,基于分析后的所述程序碼,與所述存儲(chǔ)單元內(nèi)存儲(chǔ)的所 述最優(yōu)化規(guī)則進(jìn)行核對(duì),檢索所述程序碼中與所述變換條件相一致的
部分;以及,最優(yōu)化部,基于所述變換內(nèi)容,對(duì)與所述變換條件相一 致的部分進(jìn)行變換并生成新的程序碼數(shù)據(jù)。
有關(guān)本發(fā)明的程序執(zhí)行裝置具有第l存儲(chǔ)單元,用于存儲(chǔ)對(duì)由 執(zhí)行碼構(gòu)成的程序碼執(zhí)行壓縮后的數(shù)據(jù),其中所述執(zhí)行碼由在執(zhí)行處
2存儲(chǔ)單元,'用于暫時(shí)存儲(chǔ)所述處理數(shù)據(jù)r種類判定單元,每從所述
第l存儲(chǔ)單元讀取了規(guī)定數(shù)據(jù)量的對(duì)程序碼執(zhí)行壓縮后的數(shù)據(jù),就判 定是否是包含所述命令的數(shù)據(jù),在判定為是不包含所述命令的數(shù)據(jù) 時(shí),使該數(shù)據(jù)內(nèi)的所述處理數(shù)據(jù)存儲(chǔ)在所述第2存儲(chǔ)單元內(nèi);代碼擴(kuò) 展單元,在所述種類判定單元判定為是包含所述命令的數(shù)據(jù)時(shí),根據(jù) 存儲(chǔ)在所述第2存儲(chǔ)單元內(nèi)的所述處理數(shù)據(jù)和命令來生成所述執(zhí)行 碼;以及,執(zhí)行單元,基于該代碼擴(kuò)展單元生成的執(zhí)行碼,逐次執(zhí)行 所述程序碼的執(zhí)行處理。 發(fā)明效果
根據(jù)本發(fā)明,由于代碼最優(yōu)化單元針對(duì)程序碼,由代碼分析部執(zhí) 行分析,條件檢索部基于最優(yōu)化規(guī)則來檢索是否存在與條件一致的部 分,進(jìn)而最優(yōu)化部在執(zhí)行了用于進(jìn)行最優(yōu)化的變換后生成新執(zhí)行碼(程 序碼),所以能夠執(zhí)行最優(yōu)化,使得插入設(shè)備具有的程序執(zhí)行裝置容易 進(jìn)行執(zhí)行處理等。特別是,通過匯總(賣(i:&"C)基于同一命令的執(zhí)行 碼連續(xù)的部分來產(chǎn)生新的執(zhí)行碼,能夠降低程序碼整體的數(shù)據(jù)量,另 外,在執(zhí)行處理中,也通過一次匯總執(zhí)行能夠加快處理速度,
根據(jù)本發(fā)明,從第l存儲(chǔ)單元中讀取規(guī)定數(shù)據(jù)量的對(duì)程序碼進(jìn)行 壓縮(編碼)后的數(shù)據(jù),若代碼種類判定單元判定為是不包含命令的數(shù) 據(jù),則將處理數(shù)據(jù)暫時(shí)存儲(chǔ)在第2存儲(chǔ)單元內(nèi),若判定為是命令,則 代碼擴(kuò)展單元基于處理數(shù)據(jù)和命令來生成執(zhí)行碼,并且執(zhí)行單元基于 該執(zhí)行碼來進(jìn)行執(zhí)行處理,因此,第2存儲(chǔ)單元可以在生成執(zhí)行碼之 前僅僅存儲(chǔ)處理數(shù)據(jù),由此,能夠減少第2存儲(chǔ)單元應(yīng)當(dāng)設(shè)置的存儲(chǔ)容量。由于從程序執(zhí)行裝置自第l存儲(chǔ)單元讀取數(shù)據(jù)開始到執(zhí)行碼的 執(zhí)行處理為止的全體處理都很簡(jiǎn)單,因此,即便沒有保持所生成的執(zhí) 行碼(程序碼),也能夠防止速度的降低。
圖1圖示了程序碼生成支持裝置中心的系統(tǒng)。
圖2圖示了使標(biāo)準(zhǔn)輸入單元1顯示于顯示單元20上的畫面的例子。
圖3圖示了執(zhí)行碼的一個(gè)例子。
圖4圖示了最優(yōu)化規(guī)則的一個(gè)例子。
圖5圖示了最優(yōu)化規(guī)則的另外一個(gè)例子。
圖6圖示了有關(guān)實(shí)施方式2的程序碼生成支持裝置。
圖7圖示了顯示插入設(shè)備條件輸入單元6的畫面的例子。
圖8圖示了壓縮后的執(zhí)行數(shù)據(jù)。
圖9圖示了有關(guān)第1實(shí)施方式的程序碼壓縮處理。
圖10圖示了有關(guān)本發(fā)明實(shí)施方式2的程序執(zhí)行裝置。
圖ll是一張流程圖,表示程序執(zhí)行裝置的操作。
圖12圖示了有關(guān)實(shí)施方式3的壓縮后的執(zhí)行碼。
符號(hào)說明
1 標(biāo)準(zhǔn)輸入單元 2 代碼生成單元 3 代碼評(píng)估單元 4、 4-1代碼最優(yōu)化單元4A代碼分析部4B條件檢索部 4C、 4D最優(yōu)化部4E處理數(shù)據(jù),命令識(shí)別部 4F變換部 5 輸出單元 6 插入設(shè)備條件輸入單元 10 存儲(chǔ)單元 10A 辭典部10B 最優(yōu)化規(guī)則存儲(chǔ)部20 顯示單元 30 輸入單元 40 打印裝置50存儲(chǔ)器讀寫裝置
101 控制處理單元101A 處理數(shù)據(jù),命令識(shí)別部101B變換
部
102 存儲(chǔ)單元103 通信單元 121 代碼種類判定單元 122 代碼擴(kuò)展單元 123 執(zhí)行單元124 程序碼存儲(chǔ)單元125 緩沖器存儲(chǔ)單元
具體實(shí)施方式
實(shí)施方式1
圖1圖示了以有關(guān)本發(fā)明實(shí)施方式1的程序碼生成支持裝置為中 心的系統(tǒng)。程序生成支持裝置包括標(biāo)準(zhǔn)輸入單元1、代碼生成單元 2、代碼評(píng)估單元3、代碼最優(yōu)化單元4、輸出單元5、存儲(chǔ)單元IO、 顯示單元20以及輸入單元30。
圖2圖示了在顯示單元20上顯示標(biāo)準(zhǔn)輸入單元1的畫面的例子。 標(biāo)準(zhǔn)輸入單元1例如使操作員用以輸入標(biāo)準(zhǔn)的畫面顯示在顯示單元20 上,并將從輸入單元30輸入的數(shù)據(jù)作為標(biāo)準(zhǔn)進(jìn)行處理。處理過的數(shù) 據(jù)成為構(gòu)成執(zhí)行碼的處理數(shù)據(jù)。這里。ECHONET (Energy Conservation and Homecare Network, ECHONET是ECHONET聯(lián) 盟的商標(biāo)),如圖l所示,是用于執(zhí)行使家電設(shè)備之間協(xié)同工作來進(jìn)行 控制的網(wǎng)絡(luò)(通信線路)的標(biāo)準(zhǔn)。在本實(shí)施方式中,生成用于執(zhí)行利用 該標(biāo)準(zhǔn)而連接的設(shè)備、適配器等中的執(zhí)行處理的程序碼。各標(biāo)準(zhǔn)的要 素(項(xiàng)目)和處理數(shù)據(jù)的關(guān)系將在后面進(jìn)行說明。
圖3圖示了執(zhí)行碼的一個(gè)例子。代碼生成單元2基于標(biāo)準(zhǔn)輸入單 元1處理過的數(shù)據(jù)而產(chǎn)生程序碼,在圖3中,其被描述為文本數(shù)據(jù), 程序碼由l個(gè)或多個(gè)執(zhí)行碼構(gòu)成。執(zhí)行碼例如是在插入設(shè)備具有的程 序執(zhí)行裝置中按照解釋程序(interpreter)來順序進(jìn)行執(zhí)行處理時(shí)的單 位。在本實(shí)施方式中,使用Forth作為程序碼中所用的語言。Forth 是基于簡(jiǎn)單的句法分析或不需要句法分析的逆波蘭計(jì)數(shù)法(逆求一 , 》卜'記法)的語言。在本實(shí)施方式中,執(zhí)行碼包括表示程序執(zhí)行裝置 應(yīng)執(zhí)行的處理的命令數(shù)據(jù)(以下,稱為命令。在Forth中稱為word(命 令))和用于進(jìn)行基于命令的處理的數(shù)據(jù)(以下稱為處理數(shù)據(jù)),并按照處 理數(shù)據(jù)、命令的順序來記述。這里,各命令及其處理內(nèi)容的數(shù)據(jù)是預(yù) 先定義(關(guān)聯(lián))并登錄的(稱為辭典)。由此,在執(zhí)行碼內(nèi)描述的字符串等 數(shù)據(jù)中,若登錄在辭典內(nèi)的就是命令,若沒有登錄則成為處理數(shù)據(jù)。命令不僅可以預(yù)先確定,還可以在定義了命令的處理內(nèi)容之后,登錄
為辭典。就該辭典而言,在本實(shí)施方式中,設(shè)將其作為辭典部IOA存 儲(chǔ)在存儲(chǔ)單元10內(nèi)。這里,使用Forth來產(chǎn)生程序碼,但本發(fā)明能 夠應(yīng)用的程序碼并不限于此。
這里,代碼生成單元2在由位于后級(jí)的代碼評(píng)估支持單元3執(zhí)行 的處理中,在程序碼顯示于顯示單元20上時(shí),生成操作員易于進(jìn)行 評(píng)估的評(píng)估用程序碼。例如,或者生成的執(zhí)行碼的字符串長(zhǎng)度不過分 長(zhǎng),或者利用不是單獨(dú)定義的基本命令來進(jìn)行生成,從而便于跟蹤。
命令RGST一EPC被描述為用于執(zhí)行處理對(duì)插入設(shè)備的屬性信息 的登錄。對(duì)象id(obj—id)是賦予插入設(shè)備的對(duì)象的id。 ECHONET屬 性(epc)是可根據(jù)插入設(shè)備來設(shè)置的屬性(例如空調(diào)的風(fēng)量設(shè)置狀態(tài)等) 代碼。代碼的值按照ECHONET的標(biāo)準(zhǔn)來確定。作為屬性的數(shù)據(jù)類 型(type)有7種類型(若確定了插入設(shè)備和屬性,就可以自動(dòng)確定)。訪 問規(guī)則(rule)表示可否進(jìn)行寫入、讀出、通知。狀態(tài)改變時(shí)有無通告 (anno)是表示在屬性狀態(tài)發(fā)生變化時(shí),是否經(jīng)由網(wǎng)絡(luò)予以通告的指標(biāo) (標(biāo)志)。數(shù)據(jù)大小(size)用于規(guī)定屬性的數(shù)據(jù)大小,在ECHONET標(biāo)準(zhǔn) 中其最大值為8640字節(jié)。
代碼評(píng)估單元3支持操作員對(duì)代碼生成單元2或其他單元生成的 程序碼(執(zhí)行碼)的評(píng)估。例如,為了使操作員執(zhí)行對(duì)所生成的程序碼 的確認(rèn)、去包(debag)等程序碼的評(píng)估,將程序碼顯示于顯示單元20 的畫面上。程序執(zhí)行裝置具有在進(jìn)行執(zhí)行處理時(shí)使用的解釋程序,能 夠執(zhí)行處理所生成的執(zhí)行碼。由此,操作員能夠基于程序碼(執(zhí)行碼) 來確認(rèn)所執(zhí)行的執(zhí)行處理。
代碼最優(yōu)化單元4基于存儲(chǔ)在存儲(chǔ)單元10的最優(yōu)化規(guī)則存儲(chǔ)部 10B內(nèi)的最優(yōu)化規(guī)則來謀求程序碼的最優(yōu)化。代碼最優(yōu)化單元4由代 碼分析部4A、條件檢索部4B和最優(yōu)化部4C構(gòu)成。所謂最優(yōu)化規(guī)則 使變換規(guī)則數(shù)據(jù)化,所述變換規(guī)則用于使程序執(zhí)行裝置能夠更有效率 地進(jìn)行通過匯總多個(gè)執(zhí)行碼來生成新的執(zhí)行碼等基于程序碼的執(zhí)行 處理。最優(yōu)化規(guī)則在后面還會(huì)進(jìn)一步描述。代碼分析部4A分析所輸入的程序碼。這里,程序分析部4A具 有計(jì)數(shù)器,對(duì)具有相同命令、且執(zhí)行處理相同內(nèi)容的執(zhí)行碼相連續(xù)的 部分,對(duì)其連續(xù)次數(shù)執(zhí)行計(jì)數(shù)。條件檢索部4B執(zhí)行基于變換條件的 檢索。即,將分析過的程序碼和構(gòu)成最優(yōu)化規(guī)則的變換條件進(jìn)行對(duì)照, 判定是否有與變換條件相符合的部分。此時(shí),參照代碼分析部4A的 計(jì)數(shù)器。最優(yōu)化部4C對(duì)于條件檢索部4B判定為與變換條件一致的部 分,執(zhí)行用于執(zhí)行最優(yōu)化的變換,并產(chǎn)生新的執(zhí)行碼(最終為程序碼)。
這里,就代碼分析部4A、條件檢索部4B和最優(yōu)化部4C而言, 也可以分別構(gòu)成物理上獨(dú)立的單元,但在這里,通過由以CPU為中 心的控制處理裝置分別執(zhí)行各個(gè)單元的處理,來實(shí)現(xiàn)各部的處理。即 便在標(biāo)準(zhǔn)輸入單元l、代碼生成單元2、代碼評(píng)估單元3、代碼最優(yōu)化 單元4、輸出單元5的關(guān)系上,也是同樣的,也可以使各單元獨(dú)立, 但在本實(shí)施方式中,通過使控制處理裝置執(zhí)行各單元的處理來實(shí)現(xiàn)程 序碼生成支持裝置的處理。
輸出單元5執(zhí)行將程序碼變換為與對(duì)應(yīng)的輸出設(shè)備一致的格式 的數(shù)據(jù)并輸出到輸出設(shè)備處理。例如,在輸出設(shè)備為打印裝置40的 情況下,將程序碼變換為使打印裝置打印成條型碼、QR碼(2維條型 碼QR碼是DENSO WAVE公司的注冊(cè)商標(biāo))這樣的數(shù)據(jù),并對(duì)打印 媒體執(zhí)行打印處理。為此,例如,即便沒有設(shè)置插入設(shè)備專用的^貴 通信裝置,沒有直接連接到通信線路上來執(zhí)行信號(hào)的發(fā)送,也能夠使 用便攜式電話等具有的照相機(jī)、紅外線通信技術(shù)等,向插入設(shè)備發(fā)送 包含數(shù)據(jù)的信號(hào),從而存儲(chǔ)程序碼。由此,即便使用紙媒體等低價(jià)媒 體,也能夠使插入設(shè)備內(nèi)存儲(chǔ)的程序碼保持在最新狀態(tài)。例如,也可 以將存儲(chǔ)器讀寫裝置50用作輸出設(shè)備,執(zhí)行利用電子存儲(chǔ)媒體的數(shù) 據(jù)交換。另外,還可以將通信裝置作為輸出設(shè)備。須指出,在存儲(chǔ)單 元10內(nèi),除了存儲(chǔ)在辭典部10A內(nèi)的辭典、存儲(chǔ)在最優(yōu)化規(guī)則存儲(chǔ) 部10B內(nèi)的最優(yōu)化規(guī)則外,還可以存儲(chǔ)用于使各單元屏幕顯示于顯示 單元20上的數(shù)據(jù)等用于執(zhí)行程序碼生成支持的程序等。
圖4圖示了最優(yōu)化規(guī)則的一個(gè)例子。例如,如圖4(a)所示,將表示"如果程序碼被描述為多次連續(xù)執(zhí)行處理命令RGST_EPC (以 ECHONET屬性登錄為處理內(nèi)容),則置換為以一次執(zhí)行處理多個(gè) ECHONET屬性的登錄為處理內(nèi)容的命令RGST—EPCS"意圖的規(guī)則 作為最優(yōu)化規(guī)則,存儲(chǔ)在最優(yōu)化規(guī)則存儲(chǔ)部10B內(nèi)。圖4(b)中將該內(nèi) 容表示為腳本(記述)格式的數(shù)據(jù)。箭頭前的內(nèi)容表示條件檢索部4B檢 索時(shí)的變換條件,箭頭偶的內(nèi)容表示最優(yōu)化部4C執(zhí)行變換時(shí)的變換 內(nèi)容(這里,由于是多次連續(xù),因此,將n設(shè)定為大于等于2。該n由 代碼分析部4A進(jìn)行計(jì)數(shù))。在有關(guān)命令RGST—EPCS的執(zhí)行碼中,處 理數(shù)據(jù)對(duì)登錄的ECHONET屬性,重復(fù)多次地登錄對(duì)象id(obj一id)、 ECHONET屬性(epc)、數(shù)據(jù)類型(type)、狀態(tài)改變時(shí)有無通告(anno) 以及數(shù)據(jù)大小(size)的組合,從而被賦予重復(fù)執(zhí)行的次數(shù)。該命令 RGST—EPCS也被登錄到辭典部IOA內(nèi)。如此,匯總執(zhí)行碼來生成其 他執(zhí)行碼,從而減小了程序碼的數(shù)據(jù)量、實(shí)現(xiàn)了最優(yōu)化。由于匯總了 多個(gè)執(zhí)行碼來進(jìn)行執(zhí)行處理,因此,能夠提高處理速度。
圖5圖示了最優(yōu)化規(guī)則的另一個(gè)例子。例如,在圖5中將表示"將 對(duì)相同序列(l字節(jié))的不同要素的連續(xù)賦值置換為能夠匯總后賦值的 命令SET一C^ARRAY"意圖的規(guī)則作為最優(yōu)化規(guī)則,存儲(chǔ)在最優(yōu)化規(guī) 則存儲(chǔ)部10B內(nèi)。圖5(b)是將該內(nèi)容表示為腳本(記述)格式的數(shù)據(jù)的 圖。這里,char表示賦予值,c-addr是賦值對(duì)象的地址,offset表示 從起始地址開始的偏移量。附加在條件檢索部4B執(zhí)行檢索時(shí)的變換 條件和最優(yōu)化部4C執(zhí)行變換時(shí)的變換內(nèi)容的c-addr中的[表示 c-addr的內(nèi)容(字符串)是相同的。設(shè)n大于等于2,它由代碼分析部 4A進(jìn)行計(jì)數(shù)。例如,"1 BUF 0 + C!,,執(zhí)行向從地址BUF開始的第0 字節(jié)賦值1的執(zhí)行處理。在有關(guān)命令SET一C一ARRAY的執(zhí)行碼中, 通過排列n次(重復(fù)執(zhí)行的次數(shù))賦予值(char)、排列n次表示地址的 "BUF"和偏移量,而向處理數(shù)據(jù)中賦予重復(fù)執(zhí)行次數(shù)。
如上所述,根據(jù)實(shí)施方式1,針對(duì)代碼生成單元2生成的程序碼, 在代碼組優(yōu)化單元4中,代碼分析部4A執(zhí)行分析,條件檢索部4B 基于最優(yōu)化規(guī)則存儲(chǔ)部10B內(nèi)存儲(chǔ)的最優(yōu)化規(guī)則來檢索是否存在與變換條件一致的部分,最優(yōu)化部4C對(duì)于條件檢索部4B判定為與變換 條件一致的部分,執(zhí)行用于執(zhí)行最優(yōu)化的變換,并進(jìn)一步生成新的執(zhí) 行碼(程序碼),因此,能夠執(zhí)行使插入設(shè)備具有的程序執(zhí)行裝置容易 進(jìn)行執(zhí)行處理等最優(yōu)化。特別是,通過匯總基于同一命令的執(zhí)行碼連 續(xù)部分來生成新的執(zhí)行碼,能夠降低程序碼整體的數(shù)據(jù)量。即便在執(zhí) 行處理中,也會(huì)因?yàn)閳?zhí)行一次匯總,而能加快處理速度。此時(shí),通過 在代碼評(píng)估支持單元3將程序碼顯示在顯示單元20上時(shí),以操作員 容易評(píng)估的形式來產(chǎn)生與代碼生成單元2的生成有關(guān)的程序碼,能夠 使操作員容易執(zhí)行確認(rèn)、修正等。另外,由于利用輸出單元5將程序 碼變換為與輸出設(shè)備一致的格式的數(shù)據(jù),因此,能夠按照各種輸出設(shè) 備的格式來記錄程序碼。特別是,若變換為用于打印條形碼、QR碼 等的數(shù)據(jù)以便能夠打印,則能夠在低價(jià)媒體上進(jìn)行程序碼的記錄。這 樣,在向插入設(shè)備發(fā)送包含程序碼的信號(hào)時(shí),能夠使用例如便攜式電 話等通用的通信單元。
實(shí)施方式2
圖6圖示了有關(guān)本實(shí)施方式2的程序碼生成支持裝置。用于將程 序碼存儲(chǔ)(儲(chǔ)存)在插入設(shè)備內(nèi)的環(huán)境、插入設(shè)備具有的程序執(zhí)行環(huán)境 基于程序碼來進(jìn)行執(zhí)行處理的環(huán)境隨著設(shè)備種類的不同而不同,—特別 是,在程序碼生成時(shí),存儲(chǔ)(儲(chǔ)存)程序碼的ROM的存儲(chǔ)容量、執(zhí)行 處理時(shí)等的RAM(Random Access Memory:隨機(jī)存取存儲(chǔ)器)的可用 存儲(chǔ)容量成為重要的因素。因此,在本實(shí)施方式中,設(shè)置插入設(shè)備的 條件(基于程序碼的執(zhí)行處理環(huán)境),并在程序碼生成時(shí)得以反映。在 圖6中,賦予與圖1的程序碼生成支持裝置相同的標(biāo)記,由于執(zhí)行與 實(shí)施方式1中說明過的單元相同的處理操作,因此,省略其說明。
圖7圖示了使插入設(shè)備條件輸入單元6顯示在顯示裝置20上的 畫面的例子。插入設(shè)備條件輸入單元6例如將用于使操作員輸入插入 設(shè)備的特性、條件等的畫面顯示于顯示單元20上,對(duì)從輸入單元30 輸入的指示的信號(hào)執(zhí)行設(shè)置處理,并發(fā)送給代碼最優(yōu)化單元4和輸出
13單元5。在圖7中,能夠設(shè)置用于存儲(chǔ)程序碼的ROM的存儲(chǔ)容量(代 碼存儲(chǔ)容量)、RAM的可用存儲(chǔ)容量(可用RAM容量)、是否執(zhí)行程 序碼的壓縮處理(二進(jìn)制壓縮)、將程序碼輸出到打印用媒體合適輸出 到存儲(chǔ)卡等電子存儲(chǔ)媒體(輸出媒體),以及,在選擇了打印媒體的情 況下,是否變換為QR碼(QR碼是DENSO WAVE 7>司的注冊(cè)商標(biāo))(變 換為QR碼)。
本實(shí)施方式的代碼最優(yōu)化單元4-1利用最優(yōu)化部4D來代替最優(yōu) 化部4C,這一點(diǎn)與最優(yōu)化單元4不同,最優(yōu)化部4D除了執(zhí)行最優(yōu)化 部4C的處理之外,還基于在插入設(shè)備條件輸入單元6內(nèi)輸入的插入 設(shè)備的ROM和RAM的存儲(chǔ)容量來執(zhí)行判斷。在具有用于壓縮程序 碼的處理數(shù)據(jù).命令識(shí)別部4E和變換部4F這一點(diǎn)上也不同。在本實(shí) 施方式中,將處理數(shù)據(jù).命令識(shí)別部4E和變換部4F作為代碼最優(yōu)化 單元4-1的部分功能而構(gòu)成,但是,也可以作為獨(dú)立的程序碼壓縮處 理單元。
最優(yōu)化部4D對(duì)于條件檢索部4B判定為與變換條件一致的部分, 執(zhí)行用于執(zhí)行最優(yōu)化的變換,之后,生成新的執(zhí)行碼,但此時(shí),若匯 總的執(zhí)行碼變多,則處理數(shù)據(jù)的數(shù)據(jù)量就變大,存在新執(zhí)行碼的數(shù)據(jù) 量變大的可能。為此,隨著插入設(shè)備的不同,程序執(zhí)行裝置進(jìn)行執(zhí)行 處理時(shí),有可能超過暫時(shí)存儲(chǔ)執(zhí)行碼等的RAM的存儲(chǔ)容量。因此-在最優(yōu)化部4D基于經(jīng)由插入設(shè)備條件輸入單元6輸入的可用RAM 容量的數(shù)據(jù),判定出超過其容量的情況下,分別生成各執(zhí)行碼的數(shù)據(jù) 量為容量以下的多個(gè)執(zhí)行碼。在全體程序碼的數(shù)據(jù)量超越了插入設(shè)備 所具有的用于存儲(chǔ)程序碼的ROM的存儲(chǔ)容量的情況下,不管有沒有 設(shè)置,都使處理數(shù)據(jù)*命令識(shí)別部4E和變換部4F執(zhí)行壓縮處理。執(zhí) 行以上的判定等,并生成新的程序碼。
圖8圖示了壓縮過的執(zhí)行數(shù)據(jù)。接下來,基于圖3所記栽的執(zhí)行 碼來說明壓縮處理。在基于插入設(shè)備條件輸入單元6執(zhí)行的二進(jìn)制壓 縮的輸入、最優(yōu)化部4D執(zhí)行的判定來執(zhí)行壓縮處理的情況下,數(shù)據(jù)* 命令識(shí)別部4E將程序碼的各執(zhí)行碼與辭典部10A內(nèi)存儲(chǔ)的辭典相對(duì)比,將和辭典不一致的字符串、數(shù)字等設(shè)為處理數(shù)據(jù),將一致的字符 串(腳本)設(shè)為命令,由此對(duì)處理數(shù)據(jù)和命令執(zhí)行識(shí)別處理。
變換部4F將處理數(shù)據(jù)和命令分別用二進(jìn)制數(shù)據(jù)來表示。這里, 為表示對(duì)象id而分配2比特、為表示ECHONET屬性(epc)分配8比 特、為表示屬性的數(shù)據(jù)類型分配3比特、為表示訪問規(guī)則分配3比特、 為表示狀態(tài)改變時(shí)有無通告分配1比特、為表示數(shù)據(jù)大小分配14比 特。在作為二進(jìn)制數(shù)據(jù)進(jìn)行表示后,每達(dá)到規(guī)定數(shù)據(jù)量就生成數(shù)據(jù)。 在本實(shí)施方式中,將7比特設(shè)置為規(guī)定數(shù)據(jù)量。例如,在處理數(shù)據(jù)不 是按7分割的數(shù)據(jù)量的情況下,例如用"0"來補(bǔ)充剩余的比特。這樣, 對(duì)表示處理數(shù)據(jù)的數(shù)據(jù)(以下將該數(shù)據(jù)也稱為處理數(shù)據(jù)),分別對(duì)其開 頭的比特賦予"O,,,并對(duì)用于判別命令的數(shù)據(jù)(以下,將該數(shù)據(jù)也稱為 命令)賦予"l"。即,這成為用于判定是處理數(shù)據(jù)還是命令的判定用比 特(標(biāo)志)。由此,各執(zhí)行碼(程序碼)被以1字節(jié)(8比特)為單位分成各 個(gè)字節(jié)碼。如此,將已分成各項(xiàng)目(要素)的字符串的處理數(shù)據(jù)匯總處 理為二進(jìn)制數(shù)據(jù),以實(shí)現(xiàn)數(shù)據(jù)量的降低。
另 一方面,命令用與該命令——對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)來表示。由此, 能夠判定該二進(jìn)制數(shù)據(jù)所表示的命令。該命令和二進(jìn)制數(shù)據(jù)間的關(guān)系 是關(guān)聯(lián)的,并作為數(shù)據(jù)存儲(chǔ)在存儲(chǔ)單元10內(nèi),變換部4F在生成時(shí)參 照該數(shù)據(jù)。這里,若命令數(shù)在128以下,則l字節(jié)就足以用于判定命 令。例如,命令數(shù)分別為128以上等情況下,需要2字節(jié)以上,但在 這種情況下,也能夠利用l字節(jié)的代碼數(shù)據(jù)來判定在執(zhí)行處理中使用 頻度高的命令(例如屬性關(guān)聯(lián)等),因此,能夠進(jìn)一步降低程序碼整體 的數(shù)據(jù)量。還可以利用游程長(zhǎng)度方法等公知的比特串壓縮法,對(duì)利用 本實(shí)施方式的方法生成的字節(jié)單位的代碼數(shù)據(jù)執(zhí)行壓縮。
輸出單元5基于經(jīng)由插入設(shè)備條件輸入單元6輸入的輸出媒體的 數(shù)據(jù),來確定執(zhí)行變換的格式并執(zhí)行變換。此時(shí),在選擇電子存儲(chǔ)媒 體作為輸出媒體的情況下,向QR碼的變換自動(dòng)選擇"不執(zhí)行"。在選 擇打印媒體作為輸出媒體的情況下,向QR碼的變換被選擇為"執(zhí)行,,。
在插入設(shè)備具有的程序執(zhí)行裝置中,經(jīng)存儲(chǔ)媒體例如存儲(chǔ)了ROM程序碼。按1字節(jié)單位來讀取程序碼,并基于判定用比特來判 定是包含命的數(shù)據(jù)還是包含處理數(shù)據(jù)的數(shù)據(jù),在是包含處理數(shù)據(jù)的數(shù) 據(jù)的情況下,使其暫時(shí)存儲(chǔ)在RAM內(nèi)。在判定為包含命令的數(shù)據(jù)的 情況下,將其擴(kuò)展為執(zhí)行碼,并進(jìn)行執(zhí)行處理。
如上所述,根據(jù)實(shí)施方式2,由于設(shè)置了用于輸入插入設(shè)備(該插 入設(shè)備具有的程序執(zhí)行裝置)的程序碼執(zhí)行處理環(huán)境(ROM、 RAM的 存儲(chǔ)容量等)的插入設(shè)備條件輸入單元6,而且最優(yōu)化部4D還基于該 設(shè)置來生成新的程序碼,因此,能夠生成與插入i殳備的特性、條件等 相應(yīng)的更為詳細(xì)的程序碼。而且,由于具有處理數(shù)據(jù)*命令識(shí)別部4E 和變換部4F,從而能夠執(zhí)行程序碼的壓縮處理,因此,能夠?qū)崿F(xiàn)ROM 存儲(chǔ)容量的削減,能夠?qū)崿F(xiàn)低成本化。這樣,在壓縮處理中,識(shí)別各 執(zhí)行碼的處理數(shù)據(jù)和命令,處理數(shù)據(jù)匯總各要素(項(xiàng)目)后作為二進(jìn)制 數(shù)據(jù)、命令將對(duì)應(yīng)數(shù)值設(shè)為二進(jìn)制數(shù)據(jù),按照7比特來分割各數(shù)據(jù), 將用于判定是包含處理數(shù)據(jù)的數(shù)據(jù)還是包含命令的數(shù)據(jù)的判定用比 特附加到各數(shù)據(jù)內(nèi),以便將其分成1字節(jié)的數(shù)據(jù),因此,能夠分別壓 縮處理數(shù)據(jù)和命令。
實(shí)施方式3
圖9圖示了有關(guān)本發(fā)明實(shí)施方式3的程序碼壓縮處理。在圖9 上側(cè)表示了執(zhí)行碼的一個(gè)例子。這里,記述為文本數(shù)據(jù)。程序碼由1 個(gè)或多個(gè)執(zhí)行碼構(gòu)成。首先,對(duì)執(zhí)行碼進(jìn)行說明。在本實(shí)施方式中也 設(shè)定為使用Forth作為程序碼所使用的語言,它是用于執(zhí)行 ECHONET標(biāo)準(zhǔn)下的執(zhí)行處理的代碼。在本實(shí)施方式中,設(shè)在后述的 存儲(chǔ)單元102中存儲(chǔ)有辭典。
也像實(shí)施方式1所述的那樣,命令RGST_EPC被記述為用于執(zhí) 行處理插入設(shè)備屬性信息的登錄。對(duì)象id是附加給插入設(shè)備的對(duì)象的 id。為表示對(duì)象id而分配了 2比特。ECHONET屬性是可根據(jù)插入設(shè) 備的種類來設(shè)置的屬性(例如,空調(diào)中風(fēng)量設(shè)置狀態(tài)等)代碼。代碼值 是按ECHONET標(biāo)準(zhǔn)而定的,分配有8比特。另外,這里,作為屬性數(shù)據(jù)類型,準(zhǔn)備了7種,被分配以3比特。訪問規(guī)則表示可否寫入 (Set)、讀出(Get)、通知,分配有3比特。狀態(tài)改變時(shí)有無通告是表示 在屬性的狀態(tài)發(fā)生變化時(shí)是否經(jīng)由網(wǎng)絡(luò)執(zhí)行通知的指標(biāo)(標(biāo)志),并分 配有1比特。數(shù)據(jù)大小用于規(guī)定屬性的數(shù)據(jù)大小,在ECHONET標(biāo) 準(zhǔn)中,其最大值設(shè)為8640字節(jié),為表示該數(shù)值而分配了 14比特。
接下來,說明程序碼壓縮處理裝置的結(jié)構(gòu)和處理。設(shè)本實(shí)施方式 中的程序碼壓縮裝置包括控制處理單元101、存儲(chǔ)單元102、以及通 信單元103??刂铺幚韱卧?01具有處理數(shù)據(jù)*命令識(shí)別部101A和變 換部101B。在控制處理單元101中,利用數(shù)據(jù),命令識(shí)別部101A將 程序碼的各執(zhí)行碼與存儲(chǔ)單元102內(nèi)存儲(chǔ)的辭典進(jìn)行對(duì)照,將與辭典 不一致的字符串、數(shù)字等設(shè)定為處理數(shù)據(jù),將一致的字符串(腳本)設(shè) 為命令,通過這種方法對(duì)處理數(shù)據(jù)和命令執(zhí)行識(shí)別處理。這里,對(duì)于 執(zhí)行碼而言,例如,即可以基于操作員從輸入單元輸入的指示、數(shù)據(jù) 等,利用設(shè)置在控制處理單元101的數(shù)據(jù),命令識(shí)別部101A前級(jí)的程 序碼生成部(圖中未示)來生成,也可以在其他裝置中生成,對(duì)經(jīng)由通 信線路(也可以與ECHONET無關(guān))發(fā)送來的信號(hào)中包含的執(zhí)行碼進(jìn)行 處理。
變換部101B將處理數(shù)據(jù)和命令分別用二進(jìn)制形式的數(shù)據(jù)(以下, 稱為二進(jìn)制數(shù)據(jù))來表示,并每達(dá)到規(guī)定的數(shù)據(jù)量就產(chǎn)生數(shù)據(jù)。在本實(shí) 施方式中,將7比特設(shè)定為規(guī)定單位。例如,在處理數(shù)據(jù)無法用7來 分割的情況下,對(duì)殘存的比特例如補(bǔ)充"0"。這樣,對(duì)表示處理數(shù)據(jù) 的數(shù)據(jù)(以下,將該數(shù)據(jù)也稱為處理數(shù)據(jù)),分別對(duì)其起始比特附加"0", 對(duì)于用來判定命令的數(shù)據(jù)(以下,將該數(shù)據(jù)也稱為命令)附加"l"。即, 該比特成為用來判定是處理數(shù)據(jù)還是命令的判定用比特(標(biāo)志)。由此, 如圖9的下側(cè)所示,各執(zhí)行碼(程序碼)被分為以1字節(jié)(8比特)為單位 的數(shù)據(jù)(字節(jié)數(shù)據(jù))。如此,將已分成各要素(項(xiàng)目)的字符串的處理數(shù)據(jù) 匯總為字節(jié)數(shù)據(jù),并執(zhí)行編碼(encode)處理,從而實(shí)現(xiàn)數(shù)據(jù)量的降低。
另一方面,對(duì)命令而言,用二進(jìn)制數(shù)據(jù)表示與該命令一一對(duì)應(yīng)的 數(shù)值等(代碼值)。由此,能夠判定該二進(jìn)制數(shù)據(jù)表示的命令。該命令和二進(jìn)制數(shù)據(jù)的關(guān)系被相關(guān)聯(lián)地存儲(chǔ)在存儲(chǔ)單元102內(nèi),變換部101B 在生成數(shù)據(jù)時(shí)參照該數(shù)據(jù)。這里,若命令數(shù)目在128以下,則為了判 定命令,l字節(jié)就足夠了。在命令數(shù)例如為128以上等情況下則變?yōu)?需要2字節(jié)以上,但在這種情況下,對(duì)于執(zhí)行處理中使用(出現(xiàn))頻率 高的命令(例如屬性關(guān)聯(lián)等)而言,如果能夠用l字節(jié)的數(shù)據(jù)來執(zhí)行判 定,就能夠進(jìn)一步減輕有關(guān)程序碼整體的數(shù)據(jù)量。也可以利用游程長(zhǎng) 度法這種公知的比特串壓縮法,對(duì)利用根據(jù)本實(shí)施方式的方法生成的 字節(jié)數(shù)據(jù)執(zhí)行壓縮。
根據(jù)例如經(jīng)由網(wǎng)絡(luò)從插入設(shè)備端發(fā)送來的下載請(qǐng)求、或來自程序 碼壓縮處理裝置(控制處理單元101)—側(cè)的主動(dòng)配送,將如上生成的 已壓縮程序碼數(shù)據(jù)經(jīng)由通信單元103、有線或無線通信線路存儲(chǔ)到后 述實(shí)施方式4的插入設(shè)備的程序碼存儲(chǔ)單元124內(nèi)。
如上所述,根據(jù)實(shí)施方式3,對(duì)各執(zhí)行碼的處理數(shù)據(jù)和命令進(jìn)行 識(shí)別,處理數(shù)據(jù)匯總了各要素(項(xiàng)目)后作為字節(jié)數(shù)據(jù)、命令將對(duì)應(yīng)數(shù) 值設(shè)為字節(jié)數(shù)據(jù),將各數(shù)據(jù)分割成規(guī)定的單位(在本實(shí)施方式中是7 比特),將用于判定是包含處理數(shù)據(jù)的數(shù)據(jù)還是包含命令的數(shù)據(jù)的判定 用比特附加到各數(shù)據(jù)內(nèi),以將其分割成l字節(jié)數(shù)據(jù),由此,能夠?qū)μ?理數(shù)據(jù)和命令分別執(zhí)行壓縮。這樣,在進(jìn)行執(zhí)行處理時(shí),對(duì)每l字節(jié) 執(zhí)行讀取,從而能夠簡(jiǎn)單地判定該數(shù)據(jù)是包含處理數(shù)據(jù)還是包含命 令。由于通過將程序碼設(shè)為基于Forth等逆波蘭計(jì)數(shù)法的語言,按照 處理數(shù)據(jù)、命令的順序來構(gòu)成執(zhí)行碼,因此,能夠容易地識(shí)別處理數(shù) 據(jù)和命令。另外,通過將程序碼的分割單位設(shè)為1字節(jié),從而,在進(jìn) 行執(zhí)行處理時(shí),例如還能夠與單片機(jī)等這類處理裝置相對(duì)應(yīng)。這樣, 通過執(zhí)行降低包含執(zhí)行處理時(shí)使用(出現(xiàn))頻度高的命令的字節(jié)數(shù)等與 頻度相對(duì)應(yīng)的調(diào)整,能夠進(jìn)一步提高壓縮效果。
實(shí)施方式4
圖10圖示了有關(guān)本發(fā)明實(shí)施方式4的程序執(zhí)行裝置。在本實(shí)施 方式中,程序執(zhí)行裝置由代碼種類判定單元121、代碼擴(kuò)展單元122、執(zhí)行單元123、程序碼存儲(chǔ)單元124以及緩沖器存儲(chǔ)單元125構(gòu)成。 這樣,進(jìn)行基于實(shí)施方式3中生成的已壓縮程序碼的執(zhí)行處理。
代碼種類判定單元121按規(guī)定的數(shù)據(jù)量來讀取(輸入)存儲(chǔ)在程 序碼存儲(chǔ)單元124內(nèi)的壓縮(編碼)程序碼。在本實(shí)施方式中,與實(shí)施 方式3相一致,設(shè)規(guī)定數(shù)據(jù)量為1字節(jié)(8比特)。這樣,所讀取的數(shù) 據(jù)被用來判定是包含處理數(shù)據(jù)的數(shù)據(jù)(數(shù)據(jù)字節(jié)。不包含命令的數(shù)據(jù)) 還是包含命令的數(shù)據(jù)(命令字節(jié))。代碼種類判定單元121基于在實(shí)施 方式3中說明過的判定用比特(標(biāo)志)來執(zhí)行判定。之后,若判定為是 處理數(shù)據(jù),則將該處理數(shù)據(jù)存儲(chǔ)在緩沖器存儲(chǔ)單元125內(nèi),若判定為 命令,則將處理控制轉(zhuǎn)交給代碼擴(kuò)展單元122。
代碼擴(kuò)展單元122在代碼種類判定單元121判定為命令后,基于 緩沖器存儲(chǔ)單元125內(nèi)存儲(chǔ)的處理數(shù)據(jù)以及命令,來生成(擴(kuò)展、譯碼) 執(zhí)行碼。在生成執(zhí)行碼后,將處理控制轉(zhuǎn)交給執(zhí)行單元123。
執(zhí)行單元123基于代碼擴(kuò)展單元122生成的執(zhí)行碼來進(jìn)行執(zhí)行處 理。這里,在本實(shí)施方式中,設(shè)執(zhí)行單元123是一邊解釋(翻譯)執(zhí)行 碼, 一邊對(duì)處理數(shù)據(jù)執(zhí)行命令的執(zhí)行處理的解釋程序。因此,程序碼 被按照每個(gè)執(zhí)行碼地順序進(jìn)行執(zhí)行處理。這里,執(zhí)行單元123為了解 釋執(zhí)行碼,而在存儲(chǔ)單元(圖中未示)內(nèi)具有在實(shí)施方式3中說明過的 辭典。若執(zhí)行處理結(jié)束,則將處理控制轉(zhuǎn)交給代碼種類判定單元"HTL
程序碼存儲(chǔ)單元124和緩沖器存儲(chǔ)單元125都是存儲(chǔ)單元。這里, 在本實(shí)施方式中,將程序碼存儲(chǔ)單元124設(shè)為非易失性存儲(chǔ)器,但它 不是簡(jiǎn)單的ROM,而是能夠執(zhí)行追加、改變、刪除等部分或全部程 序碼的可重寫的存儲(chǔ)單元(例如,EPROM、 EEPROM等)。在重寫程 序碼的情況下,如在實(shí)施方式1中說明過的那樣,例如通過經(jīng)由網(wǎng)絡(luò) 的下載,插入設(shè)備具有的通信單元(圖中未示)接收包含程序碼的信號(hào), 將其存儲(chǔ)、保持在程序碼存儲(chǔ)單元124內(nèi)。
緩沖器存儲(chǔ)單元125例如設(shè)為易失性存儲(chǔ)器。緩沖器存儲(chǔ)單元 125是用于在代碼擴(kuò)展單元122生成執(zhí)行碼之前至少存儲(chǔ)處理數(shù)據(jù)的 暫時(shí)存儲(chǔ)單元,若輸入了下一個(gè)處理數(shù)據(jù),則不保留前面的數(shù)據(jù)。因此,緩沖器存儲(chǔ)單元125具有的存儲(chǔ)容量是任意的,但最好設(shè)為插入 設(shè)備(程序執(zhí)行裝置)執(zhí)行1次執(zhí)行處理時(shí)能夠存儲(chǔ)執(zhí)行碼的處理數(shù)據(jù) 部分(或執(zhí)行碼)的最大存儲(chǔ)容量。
本實(shí)施方式是逐字節(jié)地讀取進(jìn)行執(zhí)行處理的壓縮程序碼數(shù)據(jù),判 定該數(shù)據(jù)內(nèi)包含的是處理數(shù)據(jù)還是命令。若是處理數(shù)據(jù),則使其存儲(chǔ) 在緩沖器存儲(chǔ)單元125內(nèi),若判定為命令,則擴(kuò)展單元122將存儲(chǔ)在 緩沖器存儲(chǔ)單元125內(nèi)的處理數(shù)據(jù)和命令作成執(zhí)行碼。執(zhí)行單元123 對(duì)該執(zhí)行碼進(jìn)行執(zhí)行處理。由此,程序執(zhí)行裝置基于存儲(chǔ)在程序碼存 儲(chǔ)單元124內(nèi)的已壓縮程序碼,逐個(gè)執(zhí)行碼地進(jìn)行執(zhí)行處理。這里, 那些已經(jīng)結(jié)束執(zhí)行處理的執(zhí)行碼(程序碼)不會(huì)被保留在RAM等緩沖 器存儲(chǔ)單元125內(nèi),從而抑制了緩沖器存儲(chǔ)單元125的存儲(chǔ)容量,使 其不會(huì)超過用于暫時(shí)存儲(chǔ)1次執(zhí)行處理所必需的執(zhí)行碼的處理數(shù)據(jù) (或執(zhí)行碼)所需要的量。也可以使用在物理上各自獨(dú)立的單元來構(gòu)成 代碼種類判定單元121、代碼擴(kuò)展單元122和執(zhí)行單元123,但是, 程序執(zhí)行裝置通常由稱為微機(jī)等的計(jì)算機(jī)構(gòu)成,這些單元例如由以 CPU為中心的控制處理裝置構(gòu)成。這樣,控制處理裝置通過執(zhí)行各個(gè) 單元的處理,來實(shí)現(xiàn)程序執(zhí)行裝置的執(zhí)行處理。
圖ll是流程圖,表示程序執(zhí)行裝置中進(jìn)行執(zhí)行處理時(shí)的操作。 這里,特別以程序執(zhí)行裝置的代碼種類判定單元121、代碼擴(kuò)展單元 122以及執(zhí)行單元123執(zhí)行的處理為中心進(jìn)行說明。代碼種類判定單 元121以1字節(jié)為單位從程序碼存儲(chǔ)單元124中讀取已壓縮程序碼的 數(shù)據(jù)(S1)。然后,代碼種類判定單元121根據(jù)在實(shí)施方式1中說明過 的判定用比特是"0"還是"1",來判定所讀取的數(shù)據(jù)是命令還是處理數(shù) 據(jù)(不是命令)(S2)。在判定為是處理數(shù)據(jù)(不是命令)時(shí),在刪除判定用 比特后將其存儲(chǔ)在緩沖器存儲(chǔ)單元125內(nèi)(S3),并進(jìn)一步按1字節(jié)單 位來讀取已壓縮程序碼的數(shù)據(jù)(S1)。
另一方面,若判定為讀取的數(shù)據(jù)是命令,則將控制轉(zhuǎn)交給代碼擴(kuò) 展單元122。代碼擴(kuò)展單元122基于讀取的數(shù)據(jù)(二進(jìn)制數(shù)據(jù)),判定 該數(shù)據(jù)表示的命令,并將其變換為腳本格式的命令。在該判定中,使
20用了實(shí)施方式l中說明過的二進(jìn)制數(shù)據(jù)以及命令的關(guān)系。由于在能夠 判定為命令時(shí),了解由命令執(zhí)行處理的處理數(shù)據(jù)的要素(項(xiàng)目)和所分 配的數(shù)據(jù)量(比特?cái)?shù)),因此,基于處理數(shù)據(jù)的二進(jìn)制數(shù)據(jù),對(duì)各要素(項(xiàng)
目)的處理數(shù)據(jù)進(jìn)行分割。執(zhí)行以上的擴(kuò)展處理來產(chǎn)生執(zhí)行碼(S4)。
這樣,在控制從代碼擴(kuò)展單元122轉(zhuǎn)交給執(zhí)行單元123后,基于 代碼擴(kuò)展單元122生成的執(zhí)行碼來進(jìn)行執(zhí)行處理(S5)。在基于逆波蘭 計(jì)數(shù)法的語言中,各要素(項(xiàng)目)都推積在堆棧中,以便基于命令來執(zhí) 行處理。若基于執(zhí)行碼的執(zhí)行處理結(jié)束,則將控制轉(zhuǎn)交給代碼種類判 定單元121,執(zhí)行針對(duì)基于下一執(zhí)行碼的執(zhí)行處理的處理。如上所述, 對(duì)每個(gè)執(zhí)行碼順次進(jìn)行執(zhí)行處理后,對(duì)程序碼進(jìn)行執(zhí)行處理,并使插 入設(shè)備執(zhí)行操作。另外,將包含基于實(shí)施處理的數(shù)據(jù)的信號(hào)經(jīng)由網(wǎng)絡(luò) 發(fā)送給插入設(shè)備以外的設(shè)備,以使其動(dòng)作。
如上所述,由于根據(jù)實(shí)施方式4,按規(guī)定的數(shù)據(jù)量(在本實(shí)施方式 中為i字節(jié))從程序碼存儲(chǔ)單元124中讀取已壓縮的程序碼數(shù)據(jù),若代 碼種類判定單元121判定為包含處理數(shù)據(jù)的數(shù)據(jù),則使其暫時(shí)存儲(chǔ)在 緩沖器存儲(chǔ)單元125內(nèi),若判定為是包含命令的數(shù)據(jù),則代碼擴(kuò)展單 元122接著產(chǎn)生執(zhí)行碼,執(zhí)行單元123執(zhí)行基于該執(zhí)行碼的執(zhí)行處理, 因此,緩沖器存儲(chǔ)單元125也可以僅在產(chǎn)生執(zhí)行碼之前存儲(chǔ)處理數(shù)據(jù), 由此,在將其設(shè)置為緩沖器存儲(chǔ)單元時(shí),能減少應(yīng)存儲(chǔ)的容量。由于 從壓縮程序碼數(shù)據(jù)的讀取開始到執(zhí)行碼的執(zhí)行處理為止,程序執(zhí)行裝 置的所有處理都很簡(jiǎn)單,因此,即便不保持所生成的執(zhí)行碼(程序碼), 也能夠防止速度降低。如上所述,本實(shí)施方式的程序執(zhí)行裝置由于既 能降低與處理有關(guān)的存儲(chǔ)容量、又能維持執(zhí)行處理速度,因此,在將 其插入到對(duì)抑制操作控制成本的要求很高的家電設(shè)備內(nèi)的情況下,發(fā) 揮了特別的效果。由于經(jīng)由通信線路,將包含已壓縮程序碼數(shù)據(jù)的信 號(hào)發(fā)送給插入設(shè)備等,并改寫程序碼存儲(chǔ)單元124中的數(shù)據(jù),因此, 能夠更有效地、更高狀態(tài)地使程序碼存儲(chǔ)單元124的程序碼保持為最 新。
21實(shí)施方式5
圖12圖示了有關(guān)本發(fā)明實(shí)施方式5的已壓縮執(zhí)行碼的數(shù)據(jù)結(jié)構(gòu)。 在上述實(shí)施方式1中,將^t成二進(jìn)制數(shù)據(jù)的處理數(shù)據(jù)從頭開始按7比 特為一組(在所表述的數(shù)據(jù)串中所謂的左對(duì)齊)進(jìn)行分割,在不能用7 來分割處理數(shù)據(jù)的情況下,將剩余的比特補(bǔ)充"0"等。
這里,在執(zhí)行基于執(zhí)行碼的執(zhí)行處理時(shí)采用了堆棧這種數(shù)據(jù)結(jié)構(gòu) 的情況下,最后堆積的數(shù)據(jù)變?yōu)槠鹗紨?shù)據(jù),從該數(shù)據(jù)開始執(zhí)行處理(即, 變成從所表述的數(shù)據(jù)串右側(cè)的數(shù)據(jù)開始進(jìn)行處理)。例如,在能夠改變 要素(項(xiàng)目)個(gè)數(shù)的情況下,將該個(gè)數(shù)的數(shù)據(jù)顯示在堆棧的開頭。從這 一點(diǎn)來看,在同一處理系統(tǒng)中的統(tǒng)一是非常有益的。因此,如圖12(a) 所示,將二進(jìn)制數(shù)據(jù)做成所謂右對(duì)齊,即便在代碼擴(kuò)展單元122的擴(kuò) 展處理中,其開頭(不是補(bǔ)充數(shù)據(jù))也會(huì)變?yōu)樘幚頂?shù)據(jù)的一部分。
如圖12(b)所示,通過在最初讀入的1字節(jié)數(shù)據(jù)(不包含命令的數(shù) 據(jù))內(nèi),包含有表示不包含命令的數(shù)據(jù)的字節(jié)數(shù)的數(shù)據(jù),能夠在代碼種 類判定單元121中判定是否是包含命令的數(shù)據(jù)。在圖12(b)中,將5 比特(0~31的數(shù)值)分配給用于表示處理數(shù)據(jù)的字節(jié)數(shù)的數(shù)據(jù)。由此, 就沒有必要為每個(gè)字節(jié)數(shù)據(jù)來設(shè)置判定用比特。由此,特別是,包含 處理數(shù)據(jù)的數(shù)據(jù)的字節(jié)數(shù)(比特?cái)?shù))越多,就越能有效地執(zhí)行壓縮。另 外,由于知道了處理數(shù)據(jù)的字節(jié)數(shù),緊跟著處理數(shù)據(jù)的就是命令,因 此,也沒有必要為命令設(shè)置判定用比特。由此,與設(shè)置了判定用比特 的情況相比,例如,使能夠利用l字節(jié)來判定的命令數(shù)增至2倍。
實(shí)施方式6
在上述實(shí)施方式中,利用基于逆波蘭計(jì)數(shù)法的語言來表述程序 碼,將執(zhí)行單元123作為對(duì)該記述進(jìn)行解釋并進(jìn)行執(zhí)行處理的解釋程 序。但本發(fā)明并不限于此。例如,也可以將JavaVM(或JVM(Java,Java Virtual Machine JVM是Sun Microsystem,Inc.在美國以及其他國家 的商標(biāo)或注冊(cè)商標(biāo))等、執(zhí)行基于堆棧型語言的執(zhí)行碼的執(zhí)行處理的解 釋程序構(gòu)成為處理系統(tǒng)。由于能夠使用更通用的語言,因此,有可能 夠執(zhí)行更高級(jí)的代碼生成。
權(quán)利要求
1. 一種程序執(zhí)行裝置,其特征在于,具有第1存儲(chǔ)單元,用于存儲(chǔ)對(duì)由執(zhí)行碼構(gòu)成的程序碼執(zhí)行壓縮后的數(shù)據(jù),其中所述執(zhí)行碼由在執(zhí)行處理中所使用的處理數(shù)據(jù)和表示執(zhí)行處理內(nèi)容的命令順序排列而成;第2存儲(chǔ)單元,用于暫時(shí)存儲(chǔ)所述處理數(shù)據(jù);種類判定單元,每從所述第1存儲(chǔ)單元讀取了規(guī)定數(shù)據(jù)量的對(duì)程序碼執(zhí)行壓縮后的數(shù)據(jù),就判定是否是包含所述命令的數(shù)據(jù),在判定為是不包含所述命令的數(shù)據(jù)時(shí),使該數(shù)據(jù)內(nèi)的所述處理數(shù)據(jù)存儲(chǔ)在所述第2存儲(chǔ)單元內(nèi);代碼擴(kuò)展單元,在所述種類判定單元判定為是包含所述命令的數(shù)據(jù)時(shí),根據(jù)存儲(chǔ)在所述第2存儲(chǔ)單元內(nèi)的所述處理數(shù)據(jù)和命令來生成所述執(zhí)行碼;以及,執(zhí)行單元,基于該代碼擴(kuò)展單元生成的執(zhí)行碼,逐次執(zhí)行所述程序碼的執(zhí)行處理。
2. 如權(quán)利要求1所述的程序執(zhí)行裝置,其特征在于, 所述處理數(shù)據(jù)堆積在堆棧內(nèi),所述執(zhí)行單元基于用堆棧型語言記述的所述程序碼來進(jìn)行執(zhí)行處理,以使所述命令作用于所述堆棧以進(jìn) 行執(zhí)行處理。
3. 如權(quán)利要求1所述的程序執(zhí)行裝置,其特征在于,所述執(zhí)行單 元執(zhí)行根據(jù)以基于逆波蘭計(jì)數(shù)法的語言記述的所述程序碼的執(zhí)行處 理。
4. 如權(quán)利要求1所述的程序執(zhí)行裝置,其特征在于,所述規(guī)定的 數(shù)據(jù)量為l字節(jié)。
5. 如權(quán)利要求1所述的程序執(zhí)行裝置,其特征在于,所述規(guī)定數(shù) 據(jù)量中的1比特是所述判定單元用于判定是否是包含所述命令的代碼 數(shù)據(jù)的標(biāo)志數(shù)據(jù)。
6. 如權(quán)利要求1所述的程序執(zhí)行裝置,其特征在于,在最初讀取 的規(guī)定數(shù)據(jù)量的數(shù)據(jù)內(nèi)包含表示不包含所述命令的數(shù)據(jù)的數(shù)目的數(shù) 據(jù)時(shí),所述種類判定單元將不包含所述命令的數(shù)據(jù)的數(shù)目那么多的所 讀取的所述規(guī)定數(shù)據(jù)量的數(shù)據(jù)判定為不包含所述命令的數(shù)據(jù),這些數(shù) 據(jù)內(nèi)的所述處理數(shù)據(jù)被存儲(chǔ)到所述第2存儲(chǔ)單元內(nèi),并將下次讀取的 規(guī)定數(shù)據(jù)量的數(shù)據(jù)設(shè)定為包含所述命令的數(shù)據(jù)。
7. 如權(quán)利要求1所述的程序執(zhí)行裝置,其特征在于,就各命令而 言,基于命令被使用的頻度來設(shè)置包含所述命令的數(shù)據(jù)的數(shù)目。
8. 如權(quán)利要求1所述的程序執(zhí)行裝置,其特征在于,使對(duì)經(jīng)由通 信線路發(fā)送來的信號(hào)中所包含的所述程序碼執(zhí)行壓縮后的數(shù)據(jù)存儲(chǔ) 在所述第l存儲(chǔ)單元內(nèi)。
9. 一種程序執(zhí)行方法,其特征在于,具有每次以規(guī)定的數(shù)據(jù)量從第1存儲(chǔ)單元中讀取對(duì)由執(zhí)行碼構(gòu)成的 程序碼執(zhí)行壓縮后的數(shù)據(jù)的步驟,其中,所述執(zhí)行碼由在執(zhí)行處理中 所使用的處理數(shù)據(jù)和表示執(zhí)行處理內(nèi)容的命令順序排列而成;種類判 定單元判定在所讀取的數(shù)據(jù)中是否包含所述命令的步驟; 在判定為是不包含所述命令的數(shù)據(jù)、且所讀取的數(shù)據(jù)中包含所述 處理數(shù)據(jù)時(shí),將所述處理數(shù)據(jù)存儲(chǔ)在第2存儲(chǔ)單元內(nèi),而在判定為是 包含所述命令的數(shù)據(jù)時(shí),代碼擴(kuò)展單元根據(jù)存儲(chǔ)在所述第2存儲(chǔ)單元內(nèi)的所述處理數(shù)據(jù)和命令來生成所述執(zhí)行碼的步驟;以及執(zhí)行單元基于所述代碼擴(kuò)展單元生成的執(zhí)行碼,逐次執(zhí)行所述程 序碼的執(zhí)行處理的步驟。
10. —種用于壓縮由執(zhí)行碼構(gòu)成的程序碼的程序碼壓縮處理裝置,其中所述執(zhí)行碼由在執(zhí)行處理中所使用的處理數(shù)據(jù)和表示執(zhí)行處理內(nèi)容的命令順序排列而成,其特征在于,具有識(shí)別單元,用于識(shí)別各個(gè)所述執(zhí)行碼的所述處理數(shù)據(jù)和所述命 令;以及變換單元,在匯總每個(gè)要素的所述處理數(shù)據(jù)后將其變換為二進(jìn)制 形式、并將所述命令變換為對(duì)應(yīng)的數(shù)值后,按照規(guī)定的數(shù)據(jù)量對(duì)各數(shù) 據(jù)進(jìn)行分割,向分割后的數(shù)據(jù)分別附加用于判定是否是包含所述命令 的數(shù)據(jù)的標(biāo)志數(shù)據(jù)。
11. 一種程序碼壓縮處理方法,其特征在于,該方法針對(duì)構(gòu)成程 序碼的各執(zhí)行碼執(zhí)行以下步驟讀取順序排列有在執(zhí)行處理中所使用的處理數(shù)據(jù)和表示執(zhí)行處 理內(nèi)容的命令的執(zhí)行碼,并由識(shí)別單元識(shí)別所述執(zhí)行碼的所述處理數(shù) 據(jù)和所述命令的步驟;以及變換單元分別按照規(guī)定的數(shù)據(jù)量對(duì)所述處理數(shù)據(jù)和所述命令進(jìn) 行分割,并對(duì)分割后的數(shù)據(jù)分別附加用于判定是否是包含了所述命令 的數(shù)據(jù)的標(biāo)志數(shù)據(jù)的步驟。
12. —種設(shè)備,包括存儲(chǔ)單元,用于存儲(chǔ)按照權(quán)利要求11所述的方法進(jìn)行壓縮后的 程序碼;以及通信單元,用于將所述壓縮后的程序碼發(fā)送給如權(quán)利要求1~8中 任一所述的程序執(zhí)行裝置。
全文摘要
本發(fā)明提供一種能夠?qū)Τ绦虼a進(jìn)一步最優(yōu)化后生成新程序碼、特別是執(zhí)行與插入設(shè)備相對(duì)應(yīng)的生成的程序碼生成支持裝置、方法等。該裝置具備將用于變換程序碼數(shù)據(jù)的變換條件和由該變換內(nèi)容構(gòu)成的最優(yōu)化規(guī)則作為數(shù)據(jù)進(jìn)行存儲(chǔ)的存儲(chǔ)單元(6)、以及代碼最優(yōu)化單元(4)。所述代碼最優(yōu)化單元(4)具有用于分析程序碼的代碼分析部(4A);基于分析后的程序碼,與存儲(chǔ)單元內(nèi)存儲(chǔ)的最優(yōu)化規(guī)則進(jìn)行核對(duì),檢索程序碼中與變換條件一致的部分的條件檢索部(4B);以及,基于變換內(nèi)容,對(duì)與變換條件一致的部分進(jìn)行變換,生成新的程序碼數(shù)據(jù)的最優(yōu)化部(4C)。
文檔編號(hào)G06F9/44GK101458620SQ20081018495
公開日2009年6月17日 申請(qǐng)日期2006年2月2日 優(yōu)先權(quán)日2005年2月3日
發(fā)明者久代紀(jì)之, 伊藤山彥, 小泉吉秋, 落合淑子, 鈴木繁樹 申請(qǐng)人:三菱電機(jī)株式會(huì)社