程序码生成支持装置及方法、程序执行装置及方法、程序码压缩装置及方法及其程序的制作方法

文档序号:6566586阅读:153来源:国知局
专利名称:程序码生成支持装置及方法、程序执行装置及方法、程序码压缩装置及方法及其程序的制作方法
技术领域
本发明涉及支持生成程序码的程序码生成支持装置等。特别是, 涉及与执行处理该程序码的装置等相匹配地对程序码执行最优化。而 且,涉及基于程序码进行执行处理的程序执行装置、方法等,以及用 于实现该装置、方法的程序码压缩方法、装置等。
背景技术
在家电设备(空调、电水箱、洗衣机、照明灯装置等)等中,为了 控制其操作,安装有程序执行装置(以下,这种家电设备、家电设备适
配器等称为插入设备(incorporating apparatus ))。 这里,为了使程 序执行装置进行执行处理,需要预定的、被称为程序码的数据。该程 序码预先存储在设置在插入设备内的ROM (Read Only Memory:只 读存储器)等存储单元内,程序执行装置读取(输入)存储在ROM内的 程序码来进行执行处理。这样,就提出了用于支持生成这种程序码的 装置(例如请参见专利文献1)。
另外,存在这样一种程序执行装置(例如,请参见专利文献2): 对程序码执行压缩处理,以减少应存储的数据量,通过尽量减少ROM 等存储单元的存储容量,从而降低有关存储单元的成本。如此,今后, 减少程序码的数据量这一点在插入设备经由网络而相互连接、收发例 如包含程序码数据的信号这样的情况下,都很方便。
专利文献l:特开平9-16382号ziH艮
专利文献2:特开2002 - 318696号>^报

发明内容
发明要解决的问题
这里,使用程序码的环境没有必要完全一样,例如,由于随着插 入设备(特别是程序执行装置)的不同而有很大不同,因此,我们期望 生成与插入设备的特性等相吻合的程序码。特别是,若能使有关程序
码的数据量尽可能少,则在程序执行装置中,可使ROM或用于在进 行执行处理时暂时进行存储的緩冲区的存储容量减少与上述减少的 数据量相应的量。而且今后在插入设备经由网络相互连接、收发例如 包含程序码的信号这样的情况下也很方便。但是,在上述这种支持装 置中,仅仅生成程序码。
通常,若程序码被压缩,则程序执行装置的执行处理速度会降低。 因此,采用在由RAM (Randam Access Memory:随机存取存储器) 等构成的暂时性存储单元(緩冲器)内累积扩展的程序码的方法。为此, 需要RAM的容量很大。
因此,本发明的目的在于能够进一步最优化程序码从而生成新的 程序码、特别是依据插入设备来生成程序码的程序码生成支持装置、 方法等。另外,本发明的目的还在于,利用压缩的程序码来降低ROM 的存储容量,同时防止降低程序执行装置的执行处理速度,并且实现 能够降低应具备的緩沖器存储容量的程序执行装置、方法等。另外, 本发明的目的还在于实现用于实现该装置、该方法的程序码压缩方 法、装置等。
用于解决问题的手段
有关本发明的程序码生成支持装置具有存储单元,将用于变换
行存储;以及代码最优化单元,具有分析所述程序码的代码分析部; 条件检索部,基于分析后的所述程序码,与所述存储单元内存储的所 述最优化规则进行核对,检索所述程序码中与所述变换条件相一致的 部分;以及,最优化部,基于所述变换内容,对与所述变换条件相一 致的部分进行变换并生成新的程序码数据。
有关本发明的程序执行装置具有第l存储单元,用于存储对由
说明书第3/18页
执行码构成的程序码执行压缩后的数据,其中所述执行码由在执行处
理中所使用的处理数据和表示执行处理内容的命令顺序排列而成;第 2存储单元,用于暂时存储所述处理数据;种类判定单元,每从所述 第l存储单元读取了规定数据量的对程序码执行压缩后的数据,就判 定是否是包含所述命令的数据,在判定为是不包含所述命令的数据 时,使该数据内的所述处理数据存储在所述第2存储单元内;代码扩 展单元,在所述种类判定单元判定为是包含所述命令的数据时,根据 存储在所述第2存储单元内的所述处理数据和命令来生成所述执行 码;以及,执行单元,基于该代码扩展单元生成的执行码,逐次执行 所述程序码的执行处理。 发明效果
根据本发明,由于代码最优化单元针对程序码,由代码分析部执 行分析,条件检索部基于最优化规则来检索是否存在与条件一致的部 分,进而最优化部在执行了用于进行最优化的变换后生成新执行码(程 序码),所以能够执行最优化,使得插入设备具有的程序执行装置容易 进行执行处理等。特别是,通过汇总(去i灼"T)基于同一命令的执行 码连续的部分来产生新的执行码,能够降低程序码整体的数据量,另 外,在执行处理中,也通过一次汇总执行能够加快处理速度。
根据本发明,从第l存储单元中读取规定数据量的对程序码进行 压缩(编码)后的数据,若代码种类判定单元判定为是不包含命令的数
据,则将处理数据暂时存储在第2存储单元内,若判定为是命令,则 代码扩展单元基于处理数据和命令来生成执行码,并且执行单元基于
该执行码来进行执行处理,因此,第2存储单元可以在生成执行码之 前仅仅存储处理数据,由此,能够减少第2存储单元应当设置的存储 容量。由于从程序执行装置自第l存储单元读取数据开始到执行码的 执行处理为止的全体处理都很简单,因此,即便没有保持所生成的执 行码(程序码),也能够防止速度的降低。


图1图示了程序码生成支持装置中心的系统。
图2图示了使标准输入单元1显示于显示单元20上的画面的例
图3图示了执行码的一个例子。
图4图示了最优化规则的一个例子。
图5图示了最优化规则的另外一个例子。
图6图示了有关实施方式2的程序码生成支持装置。
图7图示了显示插入设备条件输入单元6的画面的例子。
图8图示了压缩后的执行数据。
图9图示了有关第1实施方式的程序码压缩处理。
图10图示了有关本发明实施方式2的程序执行装置。
图ll是一张流程图,表示程序执行装置的操作。
图12图示了有关实施方式3的压缩后的执行码。
符号说明
1 标准输入单元 2 代码生成单元 3 代码评估单元 4、 4-1代码最优化单元4A代码分析部4B条件检索部 4C、 4D最优化部4E处理数据,命令识别部 4F变换部 5 输出单元 6 插入设备条件输入单元 10 存储单元 10A 辞典部10B 最优化规则存储部20 显示单元 30输入单元 40打印装置50存储器读写装置
101 控制处理单元101A 处理数据*命令识别部101B变换
102 存储单元103 通信单元 121 代码种类判定单元 122 代码扩展单元 123 执行单元124 程序码存储单元 125 緩沖器存储单元
具体实施方式
实施方式1
图1图示了以有关本发明实施方式1的程序码生成支持装置为中
心的系统。程序生成支持装置包括标准输入单元1、代码生成单元 2、代码评估单元3、代码最优化单元4、输出单元5、存储单元IO、 显示单元20以及输入单元30。
图2图示了在显示单元20上显示标准输入单元1的画面的例子。 标准输入单元1例如使操作员用以输入标准的画面显示在显示单元20 上,并将从输入单元30输入的数据作为标准进行处理。处理过的数 据成为构成执行码的处理数据。这里。ECHONET (Energy Conservation and Homecare Network, ECHONET是ECHONET联 盟的商标),如图l所示,是用于执行使家电设备之间协同工作来进行 控制的网络(通信线路)的标准。在本实施方式中,生成用于执行利用 该标准而连接的设备、适配器等中的执行处理的程序码。各标准的要 素(项目)和处理数据的关系将在后面进行说明。
图3图示了执行码的一个例子。代码生成单元2基于标准输入单 元1处理过的数据而产生程序码。在图3中,其被描述为文本数据。 程序码由l个或多个执行码构成。执行码例如是在插入设备具有的程 序执行装置中按照解释程序(interpreter)来顺序进行执行处理时的单 位。在本实施方式中,使用Forth作为程序码中所用的语言。Forth 是基于简单的句法分析或不需要句法分析的逆波兰计数法(逆求一 , 》K記法)的语言。在本实施方式中,执行码包括表示程序执行装置 应执行的处理的命令数据(以下,称为命令。在Forth中称为word(命 令))和用于进行基于命令的处理的数据(以下称为处理数据),并按照处 理数据、命令的顺序来记述。这里,各命令及其处理内容的数据是预 先定义(关联)并登录的(称为辞典)。由此,在执行码内描述的字符串等 数据中,若登录在辞典内的就是命令,若没有登录则成为处理数据。 命令不仅可以预先确定,还可以在定义了命令的处理内容之后,登录 为辞典。就该辞典而言,在本实施方式中,设将其作为辞典部IOA存 储在存储单元10内。这里,使用Forth来产生程序码,但本发明能 够应用的程序码并不限于此。
这里,代码生成单元2在由位于后级的代码评估支持单元3执行
的处理中,在程序码显示于显示单元20上时,生成操作员易于进行 评估的评估用程序码。例如,或者生成的执行码的字符串长度不过分 长,或者利用不是单独定义的基本命令来进行生成,从而便于跟踪。
命令RGST—EPC被描述为用于执行处理对插入设备的属性信息 的登录。对象id(obj一id)是赋予插入设备的对象的id。 ECHONET属 性(epc)是可根据插入设备来设置的属性(例如空调的风量设置状态等) 代码。代码的值按照ECHONET的标准来确定。作为属性的数据类 型(type)有7种类型(若确定了插入设备和属性,就可以自动确定)。访 问规则(rule)表示可否进行写入、读出、通知。状态改变时有无通告 (aimo)是表示在属性状态发生变化时,是否经由网络予以通告的指标 (标志)。数据大小(size)用于规定属性的数据大小,在ECHONET标准 中其最大值为8640字节。
代码评估单元3支持操作员对代码生成单元2或其他单元生成的 程序码(执行码)的评估。例如,为了使操作员执行对所生成的程序码 的确认、去包(debag)等程序码的评估,将程序码显示于显示单元20 的画面上。程序执行装置具有在进行执行处理时使用的解释程序,能 够执行处理所生成的执行码。由此,操作员能够基于程序码(执行码) 来确认所执行的执行处理。
代码最优化单元4基于存储在存储单元10的最优化规则存储部 10B内的最优化规则来谋求程序码的最优化。代码最优化单元4由代 码分析部4A、条件检索部4B和最优化部4C构成。所谓最优化规则 使变换规则数据化,所述变换规则用于使程序执行装置能够更有效率 地进行通过汇总多个执行码来生成新的执行码等基于程序码的执行 处理。最优化规则在后面还会进一步描述。
代码分析部4A分析所输入的程序码。这里,程序分析部4A具 有计数器,对具有相同命令、且执行处理相同内容的执行码相连续的 部分,对其连续次数执行计数。条件检索部4B执行基于变换条件的 检索。即,将分析过的程序码和构成最优化规则的变换条件进行对照, 判定是否有与变换条件相符合的部分。此时,参照代码分析部4A的
计数器。最优化部4C对于条件检索部4B判定为与变换条件一致的部 分,执行用于执行最优化的变换,并产生新的执行码(最终为程序码)。
这里,就代码分析部4A、条件检索部4B和最优化部4C而言, 也可以分别构成物理上独立的单元,但在这里,通过由以CPU为中 心的控制处理装置分别执行各个单元的处理,来实现各部的处理。即 便在标准输入单元l、代码生成单元2、代码评估单元3、代码最优化 单元4、输出单元5的关系上,也是同样的,也可以使各单元独立, 但在本实施方式中,通过使控制处理装置执行各单元的处理来实现程 序码生成支持装置的处理。
输出单元5执行将程序码变换为与对应的输出设备一致的格式 的数据并输出到输出设备处理。例如,在输出设备为打印装置40的 情况下,将程序码变换为使打印装置打印成条型码、QR码(2维条型 码QR码是DENSO WAVE公司的注册商标)这样的数据,并对打印 媒体执行打印处理。为此,例如,即便没有设置插入设备专用的昂贵 通信装置,没有直接连接到通信线路上来执行信号的发送,也能够使 用便携式电话等具有的照相机、红外线通信技术等,向插入设备发送 包含数据的信号,从而存储程序码。由此,即便使用纸媒体等低价媒 体,也能够使插入设备内存储的程序码保持在最新状态。例如,也可 以将存储器读写装置50用作输出设备,执行利用电子存储媒体的数 据交换。另外,还可以将通信装置作为输出设备。须指出,在存储单 元10内,除了存储在辞典部10A内的辞典、存储在最优化规则存储 部10B内的最优化规则外,还可以存储用于使各单元屏幕显示于显示 单元20上的数据等用于执行程序码生成支持的程序等。
图4图示了最优化规则的一个例子。例如,如图4(a)所示,将表 示"如果程序码被描述为多次连续执行处理命令RGST_EPC (以 ECHONET属性登录为处理内容),则置换为以一次执行处理多个 ECHONET属性的登录为处理内容的命令RGST—EPCS"意图的规则 作为最优化规则,存储在最优化规则存储部10B内。图4(b)中将该内 容表示为脚本(记述)格式的数据。箭头前的内容表示条件检索部4B检
索时的变换条件,箭头偶的内容表示最优化部4C执行变换时的变换 内容(这里,由于是多次连续,因此,将n设定为大于等于2。该n由 代码分析部4A进行计数)。在有关命令RGST^EPCS的执行码中,处 理数据对登录的ECHONET属性,重复多次地登录对象id(obj—id)、 ECHONET属性(epc)、数据类型(type)、状态改变时有无通告(anno) 以及数据大小(size)的组合,从而被赋予重复执行的次数。该命令 RGST—EPCS也被登录到辞典部10A内。如此,汇总执行码来生成其 他执行码,从而减小了程序码的数据量、实现了最优化。由于汇总了 多个执行码来进行执行处理,因此,能够提高处理速度。
图5图示了最优化规则的另一个例子。例如,在图5中将表示"将 对相同序列(l字节)的不同要素的连续赋值置换为能够汇总后赋值的 命令SET—C—ARRAY"意图的规则作为最优化规则,存储在最优化规 则存储部10B内。图5(b)是将该内容表示为脚本(记述)格式的数据的 图。这里,char表示赋予值,c-addr是赋值对象的地址,offset表示 从起始地址开始的偏移量。附加在条件检索部4B执行检索时的变换 条件和最优化部4C执行变换时的变换内容的c-addr中的表示 c-addr的内容(字符串)是相同的。设n大于等于2,它由代码分析部 4A进行计数。例如,"1 BUF 0 + C!"执行向从地址BUF开始的第0 字节赋值1的执行处理。在有关命令SET_C_ARRAY的执行码中, 通过排列n次(重复执行的次数)赋予值(char)、排列n次表示地址的 "BUF"和偏移量,而向处理数据中赋予重复执行次数。
如上所述,根据实施方式1,针对代码生成单元2生成的程序码, 在代码组优化单元4中,代码分析部4A执行分析,条件检索部4B 基于最优化规则存储部10B内存储的最优化规则来检索是否存在与 变换条件一致的部分,最优化部4C对于条件检索部4B判定为与变换 条件一致的部分,执行用于执行最优化的变换,并进一步生成新的执 行码(程序码),因此,能够执行使插入设备具有的程序执行装置容易 进行执行处理等最优化。特别是,通过汇总基于同一命令的执行码连 续部分来生成新的执行码,能够降低程序码整体的数据量。即便在执 行处理中,也会因为执行一次汇总,而能加快处理速度。此时,通过
在代码评估支持单元3将程序码显示在显示单元20上时,以操作员 容易评估的形式来产生与代码生成单元2的生成有关的程序码,能够 使操作员容易执行确认、修正等。另外,由于利用输出单元5将程序 码变换为与输出设备一致的格式的数据,因此,能够按照各种输出设 备的格式来记录程序码。特别是,若变换为用于打印条形码、QR码 等的数据以便能够打印,则能够在低价媒体上进行程序码的记录。这 样,在向插入设备发送包含程序码的信号时,能够使用例如便携式电 话等通用的通信单元。
实施方式2
图6图示了有关本实施方式2的程序码生成支持装置。用于将程 序码存储(储存)在插入设备内的环境、插入设备具有的程序执行环境
基于程序码来进行执行处理的环境随着设备种类的不同而不同。特别 是,在程序码生成时,存储(储存)程序码的ROM的存储容量、执行 处理时等的RAM(Random Access Memory:随机存取存储器)的可用 存储容量成为重要的因素。因此,在本实施方式中,设置插入设备的 条件(基于程序码的执行处理环境),并在程序码生成时得以反映。在 图6中,赋予与图1的程序码生成支持装置相同的标记,由于执行与 实施方式1中说明过的单元相同的处理操作,因此,省略其说明。
图7图示了使插入设备条件输入单元6显示在显示装置20上的 画面的例子。插入设备条件输入单元6例如将用于使操作员输入插入 设备的特性、条件等的画面显示于显示单元20上,对从输入单元30 输入的指示的信号执行设置处理,并发送给代码最优化单元4和输出 单元5。在图7中,能够设置用于存储程序码的ROM的存储容量(代 码存储容量)、RAM的可用存储容量(可用RAM容量)、是否执行程 序码的压缩处理(二进制压缩)、将程序码输出到打印用媒体合适输出 到存储卡等电子存储媒体(输出媒体),以及,在选择了打印媒体的情 况下,是否变换为QR码(QR码是DENSO WAVE公司的注册商标)(变
换为QR码)。
本实施方式的代码最优化单元4-1利用最优化部4D来代替最优 化部4C,这一点与最优化单元4不同,最优化部4D除了执行最优化 部4C的处理之外,还基于在插入设备条件输入单元6内输入的插入 设备的ROM和RAM的存储容量来执行判断。在具有用于压缩程序 码的处理数据.命令识别部4E和变换部4F这一点上也不同。在本实 施方式中,将处理数据,命令识别部4E和变换部4F作为代码最优化 单元4-l的部分功能而构成,但是,也可以作为独立的程序码压缩处 理单元。
最优化部4D对于条件检索部4B判定为与变换条件一致的部分, 执行用于执行最优化的变换,之后,生成新的执行码,但此时,若汇 总的执行码变多,则处理数据的数据量就变大,存在新执行码的数据 量变大的可能。为此,随着插入设备的不同,程序执行装置进行执行 处理时,有可能超过暂时存储执行码等的RAM的存储容量。因此, 在最优化部4D基于经由插入设备条件输入单元6输入的可用RAM 容量的数据,判定出超过其容量的情况下,分别生成各执行码的数据 量为容量以下的多个执行码。在全体程序码的数据量超越了插入设备 所具有的用于存储程序码的ROM的存储容量的情况下,不管有没有 设置,都使处理数据*命令识别部4E和变换部4F执行压缩处理。执 行以上的判定等,并生成新的程序码。
图8图示了压缩过的执行数据。接下来,基于图3所记栽的执行 码来说明压缩处理。在基于插入设备条件输入单元6执行的二进制压 缩的输入、最优化部4D执行的判定来执行压缩处理的情况下,数据* 命令识别部4E将程序码的各执行码与辞典部10A内存储的辞典相对 比,将和辞典不一致的字符串、数字等设为处理数据,将一致的字符 串(脚本)设为命令,由此对处理数据和命令执行识别处理。
变换部4F将处理数据和命令分别用二进制数据来表示。这里, 为表示对象id而分配2比特、为表示ECHONET属性(印c)分配8比 特、为表示属性的数据类型分配3比特、为表示访问规则分配3比特、
为表示状态改变时有无通告分配1比特、为表示数据大小分配14比 特。在作为二进制数据进行表示后,每达到规定数据量就生成数据。 在本实施方式中,将7比特设置为规定数据量。例如,在处理数据不 是按7分割的数据量的情况下,例如用"0"来补充剩余的比特。这样, 对表示处理数据的数据(以下将该数据也称为处理数据),分别对其开 头的比特赋予"0",并对用于判别命令的数据(以下,将该数据也称为 命令)赋予"l"。即,这成为用于判定是处理数据还是命令的判定用比 特(标志)。由此,各执行码(程序码)被以1字节(8比特)为单位分成各 个字节码。如此,将已分成各项目(要素)的字符串的处理数据汇总处 理为二进制数据,以实现数据量的降低。
另 一方面,命令用与该命令——对应的二进制数据来表示。由此,
能够判定该二进制数据所表示的命令。该命令和二进制数据间的关系 是关联的,并作为数据存储在存储单元IO内,变换部4F在生成时参 照该数据。这里,若命令数在128以下,则l字节就足以用于判定命 令。例如,命令数分别为128以上等情况下,需要2字节以上,但在 这种情况下,也能够利用l字节的代码数据来判定在执行处理中使用 频度高的命令(例如属性关联等),因此,能够进一步降低程序码整体 的数据量。还可以利用游程长度方法等公知的比特串压缩法,对利用 本实施方式的方法生成的字节单位的代码数据执行压缩。
输出单元5基于经由插入设备条件输入单元6输入的输出媒体的 数据,来确定执行变换的格式并执行变换。此时,在选择电子存储媒 体作为输出媒体的情况下,向QR码的变换自动选择"不执行"。在选 择打印媒体作为输出媒体的情况下,向QR码的变换被选择为"执行"。
在插入设备具有的程序执行装置中,经存储媒体例如存储了 ROM程序码。按1字节单位来读取程序码,并基于判定用比特来判 定是包含命的数据还是包含处理数据的数据,在是包含处理数据的数 据的情况下,使其暂时存储在RAM内。在判定为包含命令的数据的 情况下,将其扩展为执行码,并进行执行处理。
如上所述,根据实施方式2,由于设置了用于输入插入设备(该插
入设备具有的程序执行装置)的程序码执行处理环境(ROM、 RAM的 存储容量等)的插入设备条件输入单元6,而且最优化部4D还基于该 设置来生成新的程序码,因此,能够生成与插入设备的特性、条件等 相应的更为详细的程序码。而且,由于具有处理数据*命令识别部4E 和变换部4F,从而能够执行程序码的压缩处理,因此,能够实现ROM 存储容量的削减,能够实现低成本化。这样,在压缩处理中,识别各 执行码的处理数据和命令,处理数据汇总各要素(项目)后作为二进制 数据、命令将对应数值设为二进制数据,按照7比特来分割各数据, 将用于判定是包含处理数据的数据还是包含命令的数据的判定用比 特附加到各数据内,以便将其分成l字节的数据,因此,能够分别压 缩处理数据和命令。
实施方式3
图9图示了有关本发明实施方式3的程序码压缩处理。在图9 上侧表示了执行码的一个例子。这里,记述为文本数据。程序码由1 个或多个执行码构成。首先,对执行码进行说明。在本实施方式中也 设定为使用Forth作为程序码所使用的语言,它是用于执行 ECHONET标准下的执行处理的代码。在本实施方式中,设在后述的 存储单元102中存储有辞典。
也像实施方式1所述的那样,命令RGST—EPC被记述为用于执 行处理插入设备属性信息的登录。对象id是附加给插入设备的对象的 id。为表示对象id而分配了 2比特。ECHONET属性是可根据插入设 备的种类来设置的属性(例如,空调中风量设置状态等)代码。代码值 是按ECHONET标准而定的,分配有8比特。另外,这里,作为属 性数据类型,准备了7种,被分配以3比特。访问规则表示可否写入 (Set)、读出(Get)、通知,分配有3比特。状态改变时有无通告是表示 在属性的状态发生变化时是否经由网络执行通知的指标(标志),并分 配有1比特。数据大小用于规定属性的数据大小,在ECHONET标 准中,其最大值设为8640字节,为表示该数值而分配了 14比特。 接下来,说明程序码压缩处理装置的结构和处理。设本实施方式
中的程序码压缩装置包括控制处理单元101、存储单元102、以及通 信单元103。控制处理单元101具有处理数据*命令识别部101A和变 换部101B。在控制处理单元101中,利用数据*命令识别部101A将 程序码的各执行码与存储单元102内存储的辞典进行对照,将与辞典 不一致的字符串、数字等设定为处理数据,将一致的字符串(脚本)设 为命令,通过这种方法对处理数据和命令执行识别处理。这里,对于 执行码而言,例如,即可以基于操作员从输入单元输入的指示、数据 等,利用设置在控制处理单元101的数据,命令识别部101A前级的程 序码生成部(图中未示)来生成,也可以在其他装置中生成,对经由通 信线路(也可以与ECHONET无关)发送来的信号中包含的执行码进行 处理。
变换部101B将处理数据和命令分别用二进制形式的数据(以下, 称为二进制数据)来表示,并每达到规定的数据量就产生数据。在本实 施方式中,将7比特设定为规定单位。例如,在处理数据无法用7来 分割的情况下,对残存的比特例如补充"0"。这样,对表示处理数据 的数据(以下,将该数据也称为处理数据),分别对其起始比特附加"0", 对于用来判定命令的数据(以下,将该数据也称为命令)附加"l"。即, 该比特成为用来判定是处理数据还是命令的判定用比特(标志)。由此, 如图9的下侧所示,各执行码(程序码)被分为以1字节(8比特)为单位 的数据(字节数据)。如此,将已分成各要素(项目)的字符串的处理数据 汇总为字节数据,并执行编码(encode)处理,从而实现数据量的降低。
另一方面,对命令而言,用二进制数据表示与该命令--对应的
数值等(代码值)。由此,能够判定该二进制数据表示的命令。该命令 和二进制数据的关系被相关联地存储在存储单元102内,变换部101B 在生成数据时参照该数据。这里,若命令数目在128以下,则为了判 定命令,l字节就足够了。在命令数例如为128以上等情况下则变为 需要2字节以上,但在这种情况下,对于执行处理中使用(出现)频率 高的命令(例如属性关联等)而言,如果能够用1字节的数据来执行判
定,就能够进一步减轻有关程序码整体的数据量。也可以利用游程长 度法这种公知的比特串压缩法,对利用根据本实施方式的方法生成的 字节数据执行压缩。
根据例如经由网络从插入设备端发送来的下栽请求、或来自程序
码压缩处理装置(控制处理单元101)—侧的主动配送,将如上生成的 已压缩程序码数据经由通信单元103、有线或无线通信线路存储到后 述实施方式4的插入设备的程序码存储单元124内。
如上所述,根据实施方式3,对各执行码的处理数据和命令进行 识别,处理数据汇总了各要素(项目)后作为字节数据、命令将对应数 值设为字节数据,将各数据分割成规定的单位(在本实施方式中是7 比特),将用于判定是包含处理数据的数据还是包含命令的数据的判定 用比特附加到各数据内,以将其分割成l字节数据,由此,能够对处 理数据和命令分别执行压缩。这样,在进行执行处理时,对每l字节 执行读取,从而能够简单地判定该数据是包含处理数据还是包含命 令。由于通过将程序码设为基于Forth等逆波兰计数法的语言,按照 处理数据、命令的顺序来构成执行码,因此,能够容易地识别处理数 据和命令。另外,通过将程序码的分割单位设为1字节,从而,在进 行执行处理时,例如还能够与单片机等这类处理装置相对应。这样, 通过执行降低包含执行处理时使用(出现)频度高的命令的字节数等与 频度相对应的调整,能够进一步提高压缩效果。
实施方式4
图10图示了有关本发明实施方式4的程序执行装置。在本实施 方式中,程序执行装置由代码种类判定单元121、代码扩展单元122、 执行单元123、程序码存储单元124以及緩冲器存储单元125构成。 这样,进行基于实施方式3中生成的已压缩程序码的执行处理。
代码种类判定单元121按规定的数据量来读取(输入)存储在程 序码存储单元124内的压缩(编码)程序码。在本实施方式中,与实施 方式3相一致,设规定数据量为1字节(8比特)。这样,所读取的数
据被用来判定是包含处理数据的数据(数据字节。不包含命令的数据)
还是包含命令的数据(命令字节)。代码种类判定单元121基于在实施 方式3中说明过的判定用比特(标志)来执行判定。之后,若判定为是 处理数据,则将该处理数据存储在緩冲器存储单元125内,若判定为 命令,则将处理控制转交给代码扩展单元122。
代码扩展单元122在代码种类判定单元121判定为命令后,基于 緩冲器存储单元125内存储的处理数据以及命令,来生成(扩展、译码) 执行码。在生成执行码后,将处理控制转交给执行单元123。
执行单元123基于代码扩展单元122生成的执行码来进行执行处 理。这里,在本实施方式中,设执行单元123是一边解释(翻译)执行 码, 一边对处理数据执行命令的执行处理的解释程序。因此,程序码 被按照每个执行码地顺序进行执行处理。这里,执行单元123为了解 释执行码,而在存储单元(图中未示)内具有在实施方式3中说明过的 辞典。若执行处理结束,则将处理控制转交给代码种类判定单元121。
程序码存储单元124和緩冲器存储单元125都是存储单元。这里, 在本实施方式中,将程序码存储单元124设为非易失性存储器,但它 不是简单的ROM,而是能够执行追加、改变、删除等部分或全部程 序码的可重写的存储单元(例如,EPROM、 EEPROM等)。在重写程 序码的情况下,如在实施方式l中说明过的那样,例如通过经由网络 的下载,插入设备具有的通信单元(图中未示)接收包含程序码的信号, 将其存储、保持在程序码存储单元124内。
緩冲器存储单元125例如设为易失性存储器。緩冲器存储单元 125是用于在代码扩展单元122生成执行码之前至少存储处理数据的 暂时存储单元,若输入了下一个处理数据,则不保留前面的数据。因 此,緩冲器存储单元125具有的存储容量是任意的,但最好设为插入 设备(程序执行装置)执行1次执行处理时能够存储执行码的处理数据 部分(或执行码)的最大存储容量。
本实施方式是逐字节地读取进行执行处理的压缩程序码数据,判 定该数据内包含的是处理数据还是命令。若是处理数据,则使其存储
在緩冲器存储单元125内,若判定为命令,则扩展单元122将存储在 緩冲器存储单元125内的处理数据和命令作成执行码。执行单元123 对该执行码进行执行处理。由此,程序执行装置基于存储在程序码存 储单元124内的已压缩程序码,逐个执行码地进行执行处理。这里, 那些已经结束执行处理的执行码(程序码)不会被保留在RAM等緩冲 器存储单元125内,从而抑制了緩冲器存储单元125的存储容量,使 其不会超过用于暂时存储1次执行处理所必需的执行码的处理数据 (或执行码)所需要的量。也可以使用在物理上各自独立的单元来构成 代码种类判定单元121、代码扩展单元122和执行单元123,但是, 程序执行装置通常由称为微机等的计算机构成,这些单元例如由以 CPU为中心的控制处理装置构成。这样,控制处理装置通过执行各个 单元的处理,来实现程序执行装置的执行处理。
图ll是流程图,表示程序执行装置中进行执行处理时的操作。 这里,特别以程序执行装置的代码种类判定单元121、代码扩展单元 122以及执行单元123执行的处理为中心进行说明。代码种类判定单 元121以1字节为单位从程序码存储单元124中读取已压缩程序码的 数据(S1)。然后,代码种类判定单元121根据在实施方式1中说明过 的判定用比特是"0"还是"1",来判定所读取的数据是命令还是处理数 据(不是命令)(S2)。在判定为是处理数据(不是命令)时,在删除判定用 比特后将其存储在緩冲器存储单元125内(S3),并进一步按1字节单 位来读取已压缩程序码的数据(S1)。
另一方面,若判定为读取的数据是命令,则将控制转交给代码扩 展单元122。代码扩展单元122基于读取的数据(二进制数据),判定 该数据表示的命令,并将其变换为脚本格式的命令。在该判定中,使 用了实施方式l中说明过的二进制数据以及命令的关系。由于在能够 判定为命令时,了解由命令执行处理的处理数据的要素(项目)和所分 配的数据量(比特数),因此,基于处理数据的二进制数据,对各要素(项 目)的处理数据进行分割。执行以上的扩展处理来产生执行码(S4)。
这样,在控制从代码扩展单元122转交给执行单元123后,基于
代码扩展单元122生成的执行码来进行执行处理(S5)。在基于逆波兰 计数法的语言中,各要素(项目)都推积在堆栈中,以便基于命令来执 行处理。若基于执行码的执行处理结束,则将控制转交给代码种类判 定单元121,执行针对基于下一执行码的执行处理的处理。如上所述, 对每个执行码顺次进行执行处理后,对程序码进行执行处理,并使插 入设备执行操作。另外,将包含基于实施处理的数据的信号经由网络 发送给插入设备以外的设备,以使其动作。
如上所述,由于根据实施方式4,按规定的数据量(在本实施方式 中为1字节)从程序码存储单元124中读取已压缩的程序码数据,若代 码种类判定单元121判定为包含处理数据的数据,则使其暂时存储在 緩沖器存储单元125内,若判定为是包含命令的数据,则代码扩展单 元122接着产生执行码,执行单元123执行基于该执行码的执行处理, 因此,緩冲器存储单元125也可以仅在产生执行码之前存储处理数据, 由此,在将其设置为緩冲器存储单元时,能减少应存储的容量。由于 从压缩程序码数据的读取开始到执行码的执行处理为止,程序执行装
置的所有处理都很简单,因此,即便不保持所生成的执行码(程序码), 也能够防止速度降低。如上所述,本实施方式的程序执行装置由于既 能降低与处理有关的存储容量、又能维持执行处理速度,因此,在将 其插入到对抑制操作控制成本的要求很高的家电设备内的情况下,发 挥了特别的效果。由于经由通信线路,将包含已压缩程序码数据的信 号发送给插入设备等,并改写程序码存储单元124中的数据,因此, 能够更有效地、更高状态地使程序码存储单元124的程序码保持为最 新。
实施方式5
图12图示了有关本发明实施方式5的已压缩执行码的数据结构。 在上述实施方式1中,将做成二进制数据的处理数据从头开始按7比 特为一组(在所表述的数据串中所谓的左对齐)进行分割,在不能用7 来分割处理数据的情况下,将剩佘的比特补充"0"等。
这里,在执行基于执行码的执行处理时采用了堆栈这种数据结构 的情况下,最后堆积的数据变为起始数据,从该数据开始执行处理(即, 变成从所表述的数据串右侧的数据开始进行处理)。例如,在能够改变 要素(项目)个数的情况下,将该个数的数据显示在堆栈的开头。从这
一点来看,在同一处理系统中的统一是非常有益的。因此,如图12(a) 所示,将二进制数据做成所谓右对齐,即便在代码扩展单元122的扩 展处理中,其开头(不是补充数据)也会变为处理数据的一部分。
如图12(b)所示,通过在最初读入的1字节数据(不包含命令的数 据)内,包含有表示不包含命令的数据的字节数的数据,能够在代码种 类判定单元121中判定是否是包含命令的数据。在图12(b)中,将5 比特(0~31的数值)分配给用于表示处理数据的字节数的数据。由此, 就没有必要为每个字节数据来设置判定用比特。由此,特别是,包含 处理数据的数据的字节数(比特数)越多,就越能有效地执行压缩。另 外,由于知道了处理数据的字节数,紧跟着处理数据的就是命令,因 此,也没有必要为命令设置判定用比特。由此,与设置了判定用比特 的情况相比,例如,使能够利用1字节来判定的命令数增至2倍。
实施方式6
在上述实施方式中,利用基于逆波兰计数法的语言来表述程序 码,将执行单元123作为对该记述进行解释并进行执行处理的解释程 序。但本发明并不限于此。例如,也可以将JavaVM(或JVM(Java,Java Virtual Machine JVM是Sun Microsystem,Inc.在美国以及其他国家 的商标或注册商标)等、执行基于堆栈型语言的执行码的执行处理的解 释程序构成为处理系统。由于能够使用更通用的语言,因此,有可能 够执行更高级的代码生成。
权利要求
1.一种程序码生成支持装置,其特征在于,具有存储单元,将用于变换程序码数据的变换条件和由变换内容构成的最优化规则作为数据进行存储;以及代码最优化单元,具有分析所述程序码的代码分析部;条件检索部,基于分析后的所述程序码,与所述存储单元内存储的所述最优化规则进行核对,检索所述程序码中与所述变换条件相一致的部分;以及,最优化部,基于所述变换内容,对与所述变换条件相一致的部分进行变换并生成新的程序码数据。
2. —种程序码生成支持装置,其特征在于,具有存储单元,针对由执行码构成的程序码数据,将由根据基于同一 所述命令的执行码的连续次数而确定的变换条件和变换内容构成的 最优化规则作为数据进行存储,其中所述执行码由在执行处理中使用 的处理数据和表示执行处理内容的命令构成;以及代码最优化单元,具有代码分析部,分析所述程序码并对所述 连续次数进行计数;条件检索部,将分析后的所述程序码与所述存储 单元内存储的所述最优化规则进行核对、并基于所述计数值检索所述 程序码中与所述变换条件相一致的部分;以及,最优化部,基于所述 变换内容,对与所述变换条件相一致的部分进行变换,并生成新的程 序码数据。
3. 如权利要求1或2所述的程序码生成支持装置,其特征在于, 在所述代码最优化单元的前级,还具有将用于生成所述程序码的标准作为数据而输入的标准输入单元、以及生成人类用以评估的评估 用程序码的代码生成单元,其中所述代码最优化单元基于所述评估用 程序码来生成所述新的程序码数据。
4. 如权利要求1 3之一所述的程序码生成支持装置,其特征在于, 还具有插入设备条件输入单元,用于设定所述程序码的执行处理环 境。
5. 如权利要求4所述的程序码生成支持装置,其特征在于,还具 有程序码压缩处理单元,该程序码压缩处理单元基于所述插入设备条 件输入单元的判断,对所述程序码执行压缩处理。
6. 如权利要求5所述的程序码生成支持装置,其特征在于,所述 压缩处理单元针对由在执行处理中所使用的处理数据和表示执行处 理内容的命令顺序排列而成的执行码所构成的程序码,在识别所述各 执行码的所述处理数据和所述命令,汇总每个要素的所述处理数据后 将其变换为二进制形式,并将所述命令变换为对应数值之后,对各个 数据均按每规定数据量进行分割,对分割后的数据分别附加用于判定 是否是包含所述命令的数据的标志数据后执行压缩。
7. 如权利要求1~6之一所述的程序码生成支持装置,其特征在于, 还具有输出单元,该输出单元基于所述程序码,将其变换为可作为电 子数据从打印媒体中读取的格式的数据。
8. —种程序码生成支持方法,其特征在于,具有 在分析单元中分析所生成的程序码的步骤; 条件检索单元执行存储单元内所存储的、用于对程序码执行变换的变换条件数据与分析后的所述程序码的核对,并检索所述程序码中 与所述变换条件相一致的部分的步骤;以及在变换单元中,基于所述存储单元内存储的变换内容数据,对与 所述变换条件一致的部分执行变换,并生成新的程序码数据的步骤。
9.一种程序码生成支持方法的程序,其特征在于,它使计算机执 行在分析单元中分析所生成的程序码的步骤;条件检索单元执行存储单元内所存储的、用于对程序码执行变换 的变换条件数据与分析后的所述程序码的核对,并检索所述程序码中 与所述变换条件相一致的部分的步骤;以及在变换单元中,基于所述存储单元内存储的变换内容数据,对与 所述变换条件一致的部分执行变换,并生成新的程序码数据的步骤。
10. —种程序执行装置,其特征在于,具有第1存储单元,用于存储对由执行码构成的程序码执行压缩后的 数据,其中所述执行码由在执行处理中所使用的处理数据和表示执行 处理内容的命令顺序排列而成;第2存储单元,用于暂时存储所述处理数据;种类判定单元,每从所述第l存储单元读取了规定数据量的对程 序码执行压缩后的数据,就判定是否是包含所述命令的数据,在判定 为是不包含所述命令的数据时,使该数据内的所述处理数据存储在所 述第2存储单元内;代码扩展单元,在所述种类判定单元判定为是包含所述命令的数 据时,根据存储在所述第2存储单元内的所述处理数据和命令来生成 所述执行码;以及,执行单元,基于该代码扩展单元生成的执行码,逐次执行所述程 序码的执行处理。
11. 如权利要求10所述的程序执行装置,其特征在于, 所述处理数据堆积在堆栈内,所述执行单元基于用堆栈型语言记述的所述程序码来进行执行处理,以使所述命令作用于所述堆栈以进 行执行处理。
12.如权利要求10所述的程序执行装置,其特征在于,所述执行 单元执行根据以基于逆波兰计数法的语言记述的所述程序码的执行 处理。
13. 如权利要求10-12之一所述的程序执行装置,其特征在于, 所述规定的数据量为l字节。
14. 如权利要求10-13之一所述的程序执行装置,其特征在于, 所述规定数据量中的1比特是所述判定单元用于判定是否是包含所述 命令的代码数据的标志数据。
15. 如权利要求10-14之一所述的程序执行装置,其特征在于, 在最初读取的规定数据量的数据内包含表示不包含所述命令的数据 的数目的数据时,所述种类判定单元将不包含所述命令的数据的数目 那么多的所读取的所述规定数据量的数据判定为不包含所述命令的 数据,这些数据内的所述处理数据被存储到所述第2存储单元内,并 将下次读取的规定数据量的数据设定为包含所述命令的数据。
16. 如权利要求10-15之一所述的程序执行装置,其特征在于, 就各命令而言,基于命令所使用的频度来设置包含所述命令的数据的 数目。
17. 如权利要求10-16之一所述的程序执行装置,其特征在于, 使对经由通信线路发送来的信号中所包含的所述程序码执行压缩后 的数据存储在所述第1存储单元内。
18. —种程序执行方法,其特征在于,具有 每次以规定的数据量从第1存储单元中读取对由执行码构成的程序码执行压缩后的数据的步骤,其中,所述执行码由在执行处理中 所使用的处理数据和表示执行处理内容的命令顺序排列而成;种类判定单元判定在所读取的数据中是否包含所述命令的步骤;在判定为是不包含所述命令的数据、且所读取的数据中包含所述 处理数据时,将所述处理数据存储在第2存储单元内,而在判定为是 包含所述命令的数据时,代码扩展单元根据存储在所述第2存储单元内的所述处理数据和命令来生成所述执行码的步骤;以及执行单元基于所述代码扩展单元生成的执行码,顺序执行所述程 序码的执行处理的步骤。
19. 一种使计算机执行的程序执行方法的程序,其特征在于,使 计算机执行以下步骤每次以规定的数据量从第1存储单元中读取对由执行码构成的 程序码执行压缩后的数据的步骤,其中,所述执行码由在执行处理中 所使用的处理数据和表示执行处理内容的命令顺序排列而成;种类判定单元判定在所读取的数据中是否包含所述命令的步骤;在判定为是不包含所述命令的数据、且所读取的数据中包含所述 处理数据时,将所述处理数据存储在第2存储单元内,而在判定为是 包含所述命令的数据时,代码扩展单元根据存储在所述第2存储单元 内的所述处理数据和命令来生成所述执行码的步骤;以及执行单元基于所述代码扩展单元生成的执行码,顺序执行所述程 序码的执行处理的步骤。
20. —种用于压缩由执行码构成的程序码的程序码压缩处理装 置,其中所述执行码由在执行处理中所使用的处理数据和表示执行处 理内容的命令顺序排列而成,其特征在于,具有识别单元,用于识别各个所述执行码的所述处理数据和所述命 令;以及变换单元,在汇总每个要素的所述处理数据后将其变换为二进制 形式、并将所述命令变换为对应的数值后,按照规定的数据量对各数 据进行分割,向分割后的数据分别附加用于判定是否是包含所述命令的数据的标志数据。
21. —种程序码压缩处理方法,其特征在于,该方法针对构成程 序码的各执行码执行以下步骤读取顺序排列有在执行处理中所使用的处理数据和表示执行处 理内容的命令的执行码,并由识别单元识别所述执行码的所述处理数 据和所述命令的步骤;以及变换单元分别按照规定的数据量对所述处理数据和所述命令进 行分割,并对分割后的数据分别附加用于判定是否是包含了所述命令 的数据的标志数据的步骤。
22. —种使计算机执行程序码压缩处理方法的程序,用于使计算 机针对构成所述程序码的各执行码执行以下步骤读取顺序排列有在执行处理中所使用的处理数据和表示执行处 理内容的命令的执行码,并由识别单元识别所述执行码的所述处理数 据和所述命令的步骤;以及变换单元分别按照规定的数据量对所述处理数据和所述命令进 行分割,并对分割后的数据分别附加用于判定是否是包含了所述命令 的数据的标志数据的步骤。
全文摘要
本发明提供一种能够对程序码进一步最优化后生成新程序码、特别是执行与插入设备相对应的生成的程序码生成支持装置、方法等。该装置具备将用于变换程序码数据的变换条件和由该变换内容构成的最优化规则作为数据进行存储的存储单元(6)、以及代码最优化单元(4)。所述代码最优化单元(4)具有用于分析程序码的代码分析部(4A);基于分析后的程序码,与存储单元内存储的最优化规则进行核对,检索程序码中与变换条件一致的部分的条件检索部(4B);以及,基于变换内容,对与变换条件一致的部分进行变换,生成新的程序码数据的最优化部(4C)。
文档编号G06F9/45GK101116054SQ20068000403
公开日2008年1月30日 申请日期2006年2月2日 优先权日2005年2月3日
发明者久代纪之, 伊藤山彦, 小泉吉秋, 落合淑子, 铃木繁树 申请人:三菱电机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1