CN100345116C - 程序自动变换方法及程序自动变换装置 - Google Patents
程序自动变换方法及程序自动变换装置 Download PDFInfo
- Publication number
- CN100345116C CN100345116C CNB2003801004739A CN200380100473A CN100345116C CN 100345116 C CN100345116 C CN 100345116C CN B2003801004739 A CNB2003801004739 A CN B2003801004739A CN 200380100473 A CN200380100473 A CN 200380100473A CN 100345116 C CN100345116 C CN 100345116C
- Authority
- CN
- China
- Prior art keywords
- instruction
- style information
- program
- source program
- conversion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000004458 analytical method Methods 0.000 claims abstract description 143
- 238000006243 chemical reaction Methods 0.000 claims abstract description 80
- 230000009466 transformation Effects 0.000 claims description 33
- 238000003860 storage Methods 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 12
- 230000009471 action Effects 0.000 claims description 11
- 238000004519 manufacturing process Methods 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 4
- 230000005012 migration Effects 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 11
- 230000001131 transforming effect Effects 0.000 description 8
- 238000000151 deposition Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010195 expression analysis Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明的程序自动变换方法具备:在旧源程序中,对第一指令样式信息出现了几次进行分析的分析步骤;将分析结果进行输出的分析结果输出步骤;将第一指令样式信息的出现次数,被分析为规定次数(规定次数为2以上)以上的与该第一指令样式信息所对应的旧源程序的记叙部位,对应与该第一指令样式信息成对的第二指令样式信息地,进行变换的指令样式变换步骤;将指令样式变换步骤中作为变换所述旧源程序的结果的新源程序进行输出的新程序输出步骤;以及,对在分析步骤中第一指令样式信息的出现次数,被分析为不满规定次数的与该第一指令样式信息所对应的旧源程序的记叙部位,通过用户的手工操作将该旧源程序的记叙部位更改为新源程序的输入进行受理的步骤。能高效地,并且,使不合适的地方较少地进行程序移植。
Description
技术领域
本发明涉及一种对程序进行分析,并将该程序的一部分或者全部自动变换的程序自动变换装置及其程序等。
背景技术
作为现有的第一种技术,有一种可以自动变换源程序或脚本的技术。这种技术,可自动检测出通过编译程序进行相减所产生的记叙的不同,自动修正或者列表来提高开发效率。本技术对用C语言编写的原始程序进行语法分析,生成每1个权标的数据库和中间文件,删除或更改成为数据库上的对象的字符串,将数据库或中间文件的信息生成C语言文件,进而生成目标程序。
另外,作为现有的第二种技术,有一种以在特定的计算机上开发的程序或对象(object)为基础,自动生成能够用其他计算机运行的软件的技术。本技术中,可以以被给予的计算机资源为基础而运行的目标代码,通过程序段分割器,被分割为指令代码区域D2和数据代码区域D3。然后,通过指令代码变换器,对指令表或***源语进行分析,将指令代码区域D2,变换为基于高级程序语言指令语句。另外,数据代码区域D3,对与参照的指令代码的类别相应的数据型进行判别,并通过语法变换器,变换为基于高级程序语言的数据定义语句。并且,参照区域变换器,对于数据定义语句,附加用于指令语句使用的参照名,变换为指令语句使用参照名的形式后生成高级语言的程序。
但是,所述第一种现有技术,以能自动变换记叙变换对象的源程序的语言标准所具有的全部指令为前提。
另外,所述第二种现有技术,以能自动变换在特定的计算机上的全部的程序或对象为条件。即,在现有技术中,为了变换一程序的动作环境,而没有考虑使一程序在变换后的环境中也能高效地动作。因此,现有技术中,不能判断对作为变换对象的源程序的哪一个指令样式(pattern)进行自动变换,对哪一个指令样式用手工操作进行变换。在现有技术中,在开发对一个程序进行自动变换或者半自动变换的自动变换程序时,不能判断应该开发对应哪个指令样式的自动变换程序,高效地变换源程序也就无法进行。具体来说,现有技术中,以开发在变换对象的程序中只出现一次的指令样式也能自动变换的程序为前提。
发明内容
本第一个发明的程序自动变换方法,在存放部中存放1个以上的,作为表示旧源程序的指令样式的信息的第一指令样式信息和作为表示新源程序的指令样式信息的第二指令样式信息的信息对,并具备:在旧源程序中,对所述1个以上的第一指令样式信息出现了几次用分析模块进行分析的分析步骤;将所述分析步骤中的分析结果用输出模块进行输出的分析结果输出步骤;将在所述分析步骤中第一指令样式信息的出现次数,被分析为规定次数(规定次数为2以上)以上的与该第一指令样式信息所对应的旧源程序的记叙部位,对应与该第一指令样式信息成对的第二指令样式信息地,用变换模块进行变换的指令样式变换步骤;将所述指令样式变换步骤中作为变换所述旧源程序的结果的新源程序用输出模块进行输出的新程序输出步骤;以及,对在所述分析步骤中第一指令样式信息的出现次数,被分析为不满所述规定次数的与该第一指令样式信息所对应的旧源程序的记叙部位,通过用户的手工操作将该旧源程序的记叙部位更改为新源程序,受理用输入手段进行的输入的步骤,是一种用于使在某种环境下能动作的程序在其他环境下动作的程序自动变换方法,通过这种自动变换方法,能够高效地,并且,使不合适的地方较少地进行程序移植。
另外,第二个发明是在第一个发明中,所述新程序输出步骤,在新源程序中,将用所述指令样式变换步骤变换的部位和没有变换的部位在视觉上相区别地输出的程序自动变换方法,通过这个程序自动变换方法,编程者检查用观察变换后的程序时,能够更高效地进行检查。
另外,所述的程序变换方法,可用程序实现,也可用专用电路等的硬件实现,这时,上述的功能,可以作为程序或者程序自动变换装置来实现。另外,上述的程序变换方法,也可称为生产移植目的地的程序的程序生产方法。
附图说明
图1为本发明的实施方式1中的程序分析装置的块图。
图2为说明关于本发明的实施方式1中的程序分析装置的动作的流程图。
图3为本实施方式1中的指令样式信息管理表。
图4为本实施方式1中的指令样式出现次数管理表。
图5为本实施方式1中的程序示例图。
图6为本实施方式1中的指令样式出现次数管理表。
图7为本实施方式1中的指令样式出现次数管理表。
图8为本实施方式1中的分析结果的示例图。
图9为本实施方式1中的分析结果的显示示例图。
图10为本实施方式2中的程序自动变换装置的块图。
图11为说明本实施方式2中的程序自动变换装置的动作的流程图。
图12为本实施方式2中的指令方式信息管理表的示例图。
图13为本实施方式2中的变换后的新程序的示例图。
图14为本实施方式2中的新程序的示例图。
具体实施方式
下面,参照附图对涉及本发明的程序分析装置及程序自动变换装置等的实施方式进行说明。另外,因为在实施的方式中附相同符号的构成要素进行同样的动作,再次进行的说明有时被省略。
(实施方式1)
图1所示为程序分析装置的块图。程序分析装置具有:指令样式信息存放部101;程序存放部102;分析部103;以及,分析结果输出部104。程序分析装置,例如为备有MPU、存储器和硬盘的个人计算机。
指令样式信息存放部101,存放有1个以上的作为表示程序指令样式的信息的指令样式信息。指令样式信息存放部101,可以用非易失性记录媒体或者也可用易失性记录媒体来实现。
程序存放部102,存放有程序。程序存放部102,可以用非易失性记录媒体或者也可用易失性记录媒体来实现。程序,通常为源程序,并且其语言可为任意语言。程序也包含被称为所谓的脚本的HTML、XML等。另外,程序也可以为过程型的程序、说明型的程序等任意类型。另外,程序还包含用于运行程序的数据群(头文件等)。
分析部103,对在程序存放部102中存放的程序中,1个以上的指令样式信息出现过多少次进行分析。分析部103,通常由MPU或存储器等来实现。分析部103分析用的处理次序,通常用软件实现,该软件被记录在ROM等记录媒体上。但也可以用硬件(专用电路)来实现。
分析结果输出部104,输出分析部103中的分析结果。所谓输出,通常指送至显示器的显示,但还包含送打印机的打印,或发送到其他装置等。另外,所谓输出,也包含送到硬盘等记录媒体进行存储的概念。另外,分析结果输出部104,可以认为包含显示器也可以认为不包含。分析结果输出部104,例如,用输出设备的驱动软件得到实现。
下面,用附图2对涉及本程序分析装置的运行进行说明。
(步骤S201)分析部103,读入程序存放部102的程序。此程序是作为分析对象的程序。程序存放器102中存放了多个程序时,分析部103,例如,读入用户指示的程序。
(步骤S202)分析部103,读入指令样式信息存放部101中存放的1个以上的指令样式信息。
(步骤S203)分析部103,将作为指令样式信息的出现次数的指令样式出现次数全部置0。此外,与全部的指令样式信息相对应的指令样式出现次数,例如,存储在分析部103保持的存储器中。
(步骤S204)分析部103,在计数器i中赋1。此计数器是用步骤S201读入的程序的程序计数器。即,分析部103,对用步骤S201读入的程序的第i行通过下面的处理进行分析。此外,这里,设程序是1行1指令样式的程序。
(步骤S205)分析部103,在用步骤S201读入的程序中,判断第i的程序源行是否存在。若存在第i行的程序源行则进到步骤S206,若不存在第i行的程序源行则跳转到步骤S213。
(步骤S206)分析部103,在计数器j中赋1。计数器j是在用步骤S202读入的1个以上的指令样式信息中,用于取得分析中使用的指令样式信息的计数器。
(步骤S207)分析部103,判断第i行的程序源行,是否为与第j的指令样式信息中对应的指令样式行。第i行的程序源行若为第j的指令样式进到步骤S208,若不为第j的指令样式跳到步骤S210。对第i行的程序源行是否与第j的指令样式信息相对应的判断,可用语法分析,词法分析来进行,因为是现有技术,这里省略详细的说明。
(步骤S208)分析部103,将与第j的指令样式信息对应的指令样式出现次数自加1。
(步骤S209)分析部103,令i自加1。返回到步骤S205。
(步骤S210)分析部103,令j自加1。
(步骤S211)分析部103,判断在指令样式信息存放部101中是否存在第j的指令样式。若存在第j的指令样式返回到S207,若不存在第j的指令样式进到步骤S212。
(步骤S212)分析部103,进行“意思为哪个指令样式也不符合”的出错输出。但是,也可不进行这个出错输出处理。
(步骤S213)分析结果输出部104,输出分析结果。分析结果就是各指令样式信息的指令样式出现次数。
下面,对关于本实施方式中的程序分析装置等的具体动作进行说明。图3是指令样式信息存放部101保持有的指令样式信息管理表。指令样式信息管理表,存放有多个具有“ID”“指令样式信息”的记录。“ID”为识别记录的信息,也是表管理上使用的信息。“指令样式信息”是存放指令样式信息的属性。
另外,图4是分析部103保持有的指令样式出现次数管理表。指令样式出现次数管理表具有1个以上的具有“ID”“出现次数”的记录。“ID”,与图3的指令样式信息管理表的“ID”相对应。“出现次数”,表示指令样式的出现次数。“出现次数”的初值,全部为“0”。
图5是程序存放部102中存放有的程序的示例。程序分析装置,根据用户的指示,开始对图5的程序的分析。图5的程序中用“*”开头的行为注释行。另外,程序分析装置,判断为注释行后不对该行进行分析。
分析部103,首先,读入图5的程序的第1行。由于第1行是注释行,移到下一行(使程序计数器递增)。分析部103,由于从第2行到第8行都是注释行,所以不进行分析。
接下来,分析部103,读入程序的第9行“IDENTIFICATIONDIVISION.”。分析部103,将程序的第9行,判断为与图3的指令样式信息管理表的“ID=1”的指令样式信息相对应。然后,分析部103,将图4的指令样式出现次数管理表的“ID”=“1”的记录的“出现次数”的值自加1。其结果是图6的指令样式出现次数管理表。
然后,分析部103,读入程序的第10行“PROGRAM-ID.PSD712.”。分析部103,程序的第10行,判断为与图3的指令样式信息管理表的“ID=2”的指令信息相对应。此外,图3的指令样式信息管理表的“参数1”“参数2”等意思是参数(变量)。在程序中,参数由英文数字的字符串构成。这里,“PSD712”为参数。然后,分析部103,将图6的指令样式出现次数管理表的“ID”=“2”的“出现次数”的值自加1。
对图5的程序的所有行进行以上的处理。然后,得到图7所示的指令样式出现次数管理表。
接下来,分析结果输出部104,输出图8所示的分析结果。分析结果,具有“ID”“次数”“指令样式”。“次数”为出现次数。另外,图8的分析结果,由图3的指令样式信息管理表和图7的指令样式出现次数管理表构成。具体来说,图8的分析结果为,将图3的指令样式信息管理表的“ID”和,图7的指令样式出现次数管理表的“ID”作为基础,经结合运算而输出的结果。
以上,通过本实施方式,可以对作为变换对象的源程序包含的指令样式进行分析,其结果,能够开发可以高效地变换源程序的自动变换程序。此外,关于收到本实施的方式中的分析结果后,自动变换程序的处理,在实施方式2以后进行叙述。
另外,在本实施方式中,可以将出现一定次数以上的指令样式与其他的指令样式在视觉上相区别地进行表示。这时,例如,表示如图9所示的分析结果。图9中,将出现3次以上的指令样式与其他的指令样式在视觉上相区别地进行表示。另外,将出现一定次数以上的指令样式与其他的指令样式视觉上相区别地进行表示的样式,不限于图9中的样式,任何样式都可以。
另外,在本实施的方式中说明的动作,也可以用计算机能够读取的程序来实现。该程序,可在CD-ROM等记录媒体上记录并传播,也可通过网络传输进行传播,也可以用广播进行传播。这点,在其他的实施方式中也是同样。此外,实现本实施方式中说明的动作的程序,在计算机中,存放了1个以上的作为表示程序的指令样式的信息的指令样式信息,是用于在程序中实行分析1个以上的指令样式信息出现了几次的分析步骤、和将分析步骤中的分析结果进行输出的分析结果输出步骤的程序。
还有,在本实施方式中,虽然用一个程序分析装置进行程序的分析,但是也可以用多个装置分担处理。即,只要存放有1个以上的作为表示程序的指令样式的信息的指令样式信息,在程序中,通过具备分析不少于1的指令样式信息出现了几次的分析步骤和输出分析步骤中的分析结果的分析结果输出步骤的程序分析方法,能够用1个以上的装置对程序进行分析,就可实现所述的效果。
(实施方式2)
图10是程序自动变换装置的块图。程序自动变换装置具备:指令样式对应信息存放部1001;程序存放部102;分析部103;条件存放部1002;指令样式存放部变换部1003;以及,新程序输出部1004。程序自动变换装置例如,是备有MPU、存储器和硬盘等的个人计算机。
指令样式对应信息存放部1001,存放有1个以上的、作为表示旧程序(变换对象的程序)的指令样式的信息的第一指令样式信息和作为表示新程序(变换后的程序)的指令样式的信息的第二指令样式信息的信息对。指令样式对应信息存放部1001,可由非易失性的记录媒体,或者由易失性的记录媒体来实现。
条件存放部1002,存放有将与第一指令样式信息对应的旧程序的一部分对应第二指令样式信息地自动变换的条件。条件存放部1002,可由非易失性的记录媒体,或者由易失性的记录媒体来实现。条件,一般被嵌入到实现指令样式变换部1003进行的处理的程序中(也包括在头文件等中被定义的情况)。此外,条件是基于分析部103的分析结果的条件。
指令样式变换部1003,对程序存放部102中存放的程序(旧程序)中,与条件存放部1002中存放的条件相吻合的与第一指令方式信息相对应的旧程序的一部分,对应与该第一指令样式信息成对的第二指令样式信息地进行变换处理。指令样式变换部1003,通常,通过MPU或存储器等得到实现。用于指令样式变换部1003变换信息的处理次序,通常,用软件实现,该软件被记录在ROM等的记录媒体上。但是,也可以用硬件(专用电路)来实现。
新程序输出部1004,将作为指令样式变换部1003变换程序的结果的新程序输出。所谓输出,通常,就是所说的送显示器显示,但也包含:送打印机打印;发送到其他得装置;存储到记录媒体(硬盘、数字多用光盘)中等。另外,新程序输出部1004,认为包含和认为不包含输出显示器或记录媒体都可以。新程序输出部1004,例如,用输出设备的驱动软件等得到实现。
下面,用图11的流程图对关于本程序自动变换装置的动作进行说明。
(步骤S1101)运行程序分析子程序。本程序分析子程序是用图2的流程图说明的程序的分析处理,输出在作为变换对象的程序的旧程序中的每个指令样式的出现次数。
(步骤S1102)指令样式变换部1003,读入程序存放部102的程序。程序存放部102中存有2个以上的程序时,指令样式变换部1003,例如,读入用户指示的程序。
(步骤S1103)指令样式变换部1003,读入指令样式对应信息存放部1001保持有的1个以上的第一指令样式信息。
(步骤S1104)指令样式变换部1003,向计数器i中赋1。此计数器是用步骤S1102读入的程序的程序计数器。即,指令样式变换部1003,将用S1102读入的程序的第i行通过以下的处理进行变换。此外,这里,设程序是1行1个指令样式的程序。
(步骤S1105)指令样式变换部1003,在用步骤S1102读入的程序中,判断第i行的程序源行是否存在。若第i行的程序源行存在进到S1106,若第i行的程序源行不存在则跳转到S1116。
(步骤S1106)指令样式变换部1003,向计数器j中赋1。计数器j是在用步骤S1103读入的1个以上的第一指令样式信息中,用于取得变换中使用的第一指令样式信息的计数器。
(步骤S1107)指令样式变换部1003,判断第i行的程序源行,是否与第j的第一指令信息相对应。若与第j的第一指令方式信息相对应的进到S1108,若与第j的第一指令样式信息不对应跳转到S1113。同时,第i行的程序源行是否与第j的第一指令方式信息相对应,可以通过对第i行的程序的语法分析,词法分析来判断。
(步骤S1108)指令样式变换部1003,基于步骤S1101的程序分析子程序的分析结果,判断第一指令样式信息是否与条件存放部1002的条件相吻合。若第j的第一指令样式信息与条件相吻合进到步骤S1109,若第j的第一指令样式不与条件吻合跳转到S1115。
(步骤S1109)指令样式变换部1003,从指令样式对应信息存放部1001取得与第j的第一指令样式信息配对的第二指令样式信息。
(步骤S1110)指令样式变换部1003,将第i行的程序源行,变换为用步骤S1109取得的第二指令样式信息所表示的指令样式。
(步骤S1111)指令样式变换部1003,将用步骤S1110变换的第i行源行添加到新程序中。同时,新程序,例如,存放在某种文件中,并在初期化阶段(图中未表示)进行文件生成和文件打开。
(步骤S1112)将计数器i递增。返回步骤S1105。
(步骤S1113)将计数器j递增。
(步骤S1114)指令样式变换部1003,判断是否存在第j的第一指令样式信息。若存在第j的第一指令样式信息返回步骤S1107,若不存在第j的第一指令样式信息进到步骤S1115。
(步骤S1115)指令样式变换部1003,将第i行的源行添加到新程序中。这里第i行的源行,例如,为注释行。
(步骤S1116)新程序输出部1004,输出变换后的程序(新程序)。这里的输出,包含只进行存放在记录媒体(硬盘等)中的处理。
同时,第一指令样式信息与条件存放部1002的条件不吻合,关于没有由第一指令样式变换为第二指令样式的第一指令样式,编程者,用键盘等输入部件,通过手工操作将程序改写为第二指令样式。即,程序自动变换装置具备,图中没有表示出的键盘或鼠标等输入部件。
以下,对关于本实施方式中的程序变换装置的具体的动作进行说明。图12是指令样式对应信息存放部1001所保持的指令样式信息管理表。指令样式信息管理表,存放了多个具有“ID”“第一指令样式信息”“第二指令样式信息”的记录。“ID”为用于识别记录的信息。指令样式信息管理表是对应与在变换对象的程序中出现的第一指令样式信息的源行成对的第二指令样式信息地进行变换的情况下使用的对应表。具体来说,“第一指令样式信息”为“SOURCE-COMPUTER.XXXXXXX.”的情况时,表示“第二指令样式信息”变换为“#DEL#SOURCE-COMPUTER.XXXXXX.#CHG#SOURCE-COMPUTER.IBM-AS400.”。此外“XXXXXX”,表示任意的参数名。另外“#DEL#”表示已删除。“#CHG#”表示变换的结果。另外,本源行中“*”为注释行,“#”到“#”表示注释。
另外,图5是程序存放部102中存放的旧程序示例。图8是表示分析部103分析的结果的指令样式出现次数管理表。还有,设条件存放部1002,保存有,将出现次数在2次以上的第一指令样式信息的程序行变换为第二指令样式信息的条件。
然后,图13中表示,指令样式变换部1003,将图5的旧程序变换生成,并且新程序输出部1004将新程序输出的示例。在图13中,新程序中新生成的行用下划线进行表示。即,在新程序中,将变换后的行和没有变换的行在视觉上相区别地表示。
图13的新程序中,①是通过指令样式信息管理表的“ID=1”的行进行变化的部位。②是通过指令样式信息管理表的“ID=2”的行进行变化的部位。
另外,图12的指令样式信息管理表中,为了说明的方便,写了只对旧程序的1行,对应新程序n行(n为自然数)的情况,但是也可以对旧程序m行(m为2以上的自然数),对应新程序n行(n为自然数)的情况。
以上,通过本实施方式,可以进行对作为对象的源程序包含的指令样式的分析,其结果,能够对源程序进行高效地自动变换或者半自动变换。具体来说,对出现次数为没有必要开发用于变换源程序的程序来进行变换的一定次数的指令样式,通过手工操作修正,只对出现一定次数(例如,2次以上的出现次数)以上的数的指令样式,开发用于变换源程序的程序,通过使用该变换程序进行自动变换,能够高效地变换程序。通过此自动变换装置,例如,使在某种环境下能动作的程序在新的环境下能动作的操作能非常高效地,并且安全地进行。
另外,在本实施方式中,对出现次数少于一定次数以至于没有必要开发程序的指令样式,用手工操作进行修正,因而程序自动变换装置,具备用于手工操作的输入部件。输入部件例如是键盘或鼠标等。
另外,在本实施方式中,如图14中所示,在变换后的新程序中,可用对手工操作变换的部位、自动变换的部位、没有进行变换的部位在视觉上相区别的方式,对新程序进行存储或表示等。图14的新程序中,“@”到“@”为表示用手工操作操作的注释行。“@DEL@”表示用手工操作删除的行,“@ADD@”表示用手工操作添加的行。
另外,在本实施方式中,用于判断是自动变换还是用手工操作进行变换的条件虽然是将程序中的第一指令样式信息的出现次数设为参数(上述示例中,自动变换的条件为出现次数在2次以上),但也可通过其他的条件来决定。另外,也可构成对要自动变换的第一指令样式通过用户输入来指示。
另外,本实施方式中说明的动作,也可用计算机能够读取的程序来实现。该程序,可以记录在CD-ROM等媒体上并传播,也可通过网络传输传播,还可通过广播传播。这点,在其他的实施方式中也是一样。此外,实现本实施方式中所说明的动作的程序,在计算机中,存放有1个以上的作为表示旧源程序的指令样式的信息的第一指令样式信息和表示新源程序的指令样式的信息的第二指令样式信息对,是用于实现以下步骤的程序,这些步骤包括:在旧源程序中,分析所述1个以上的第一指令样式信息出现了几次的分析步骤;输出所述分析步骤中的分析结果的分析结果输出步骤;将分析为在规定次数(规定次数为2以上)以上的与该第一指令样式信息对应的旧源程序的记叙部位,对应与该第一指令样式信息成对的第二指令样式信息地,进行变换的指令样式变换步骤;将作为用所述指令样式变换步骤变换所述旧源程序的结果的新程序输出的新程序输出步骤;以及,对在所述分析步骤中第一指令样式信息的出现次数,被分析为不满所述规定次数的与该第一指令样式信息所对应的旧源程序的记叙部位,通过用户的手工操作将该旧源程序的记叙部位更改为新源程序的输入进行受理的步骤。
另外,在本实施方式中,虽为用一个程序自动变换装置进行程序的变换,但也可用多个装置分担处理。即,以下的程序自动变换方法也可以用多个装置来实现。在存储部中存放有,1个以上的作为表示旧程序的指令样式的信息的第一指令样式信息和作为表示新程序的指令样式信息的第二指令样式信息的信息对,并且具备:在旧源程序中,对所述1个以上的第一指令样式信息出现了几次用分析模块进行分析的分析步骤;将所述分析步骤中的分析结果用输出模块进行输出的输出步骤;将在所述分析步骤中被分析为在所述规定次数(规定次数为2以上)以上的与该第一指令样式信息对应的旧源程序的记叙部位,对应与该第一指令样式信息成对的第二指令样式信息地,用变换模块进行变换的指令样式变换步骤;将作为用所述指令样式变换步骤变换所述旧源程序的结果的新程序,用输出模块进行输出的新程序输出步骤;以及,对在所述分析步骤中第一指令样式信息的出现次数,被分析为不满所述规定次数的与该第一指令样式信息所对应的旧源程序的记叙部位,通过用户的手工操作将该旧源程序的记叙部位更改为新源程序的输入进行受理的步骤,通过用于能使某种环境下能动作的程序在其他环境下能动作的程序自动变换方法,高效地,并且,使不合适的地方较少地进行程序移植。
另外,在本实施方式中,所述的程序自动变换装置可称是能对生产在新环境(即,移植目的地的环境)下能动作的程序的方法进行实施的装置。即,程序自动变换装置,实现以下的程序生产方法。其是在存储部中存放有,1个以上的作为表示旧程序的指令样式的信息的第一指令样式信息和作为表示新程序的指令样式信息的第二指令样式信息的信息对,并且具备:在旧源程序中,对所述1个以上的第一指令样式信息出现了几次用分析模块进行分析的分析步骤;将所述分析步骤中的分析结果输出的用输出模块进行输出步骤;将在所述分析步骤中被分析为在规定次数(规定次数为2以上)以上的第一指令样式信息对应的旧源程序的记录部位,对应与该第一指令样式信息成对的第二指令样式信息地,用变换模块进行变换的指令样式变换步骤;将作为用所述指令样式变换步骤变换所述旧源程序的结果的新程序,用输出模块进行输出的新程序输出步骤;以及,对在所述分析步骤中第一指令样式信息的出现次数,被分析为不满所述规定次数的与该第一指令样式信息所对应的旧源程序的记叙部位,通过用户的手工操作将该旧源程序的记叙部位更改为新源程序的输入通过输入部件进行受理的步骤,为生产用于使某种环境下能动作的程序在其他环境下能动作的程序的程序的生产方法。另外,所述的程序的生产方法中的新程序输出步骤,也可为在新源程序中,将用所述指令样式变换步骤变换的部位和没有变换的部位视觉上相区别地进行输出的程序的产生方法。
还有,本实施方式中,实现所述的程序的生产方法的程序生产装置可称是生产在如以下的新环境(即,移植目的地的环境)下动作的程序的装置。即,该生产装置,包括:存放有1个以上的作为表示旧程序的指令样式的信息的第一指令样式信息和作为表示新程序的指令样式信息的第二指令样式信息的信息对的指令样式对应信息存放部;在旧源程序中,对1个以上的第一指令样式信息出现了几次进行分析的分析部;将分析步骤中的分析结果输出的输出部;将在分析部中第一指令样式信息的出现次数被分析为在规定次数(规定次数为2以上)以上的第一指令样式信息所对应的旧源程序的记叙部位,对应与该第一指令样式信息成对的第二指令样式信息地,进行变换的指令样式变换部;将作为在指令样式变换部中变换旧源程序的结果的新源程序输出的新程序输出部;以及,对在分析部中第一指令样式信息的出现次数,被分析为不满规定的次数的与该第一指令样式信息所对应的旧源程序的记叙部位,通过用户的手工操作将该旧源程序的记叙部位更改为新源程序的输入进行受理的输入受理部,能生产用于使在某种环境下能动作的旧源程序能在其他的环境下动作的新源程序的程序生产装置。同时,如上述,上述的新程序输出部,也可在新源程序中,将指令样式变换部变换了的部位和没有进行变换的部位,在视觉上区别地进行输出。
生产上的利用可能性
本发明中涉及的程序变换方法及装置等,可以对作为变换对象的程序所包含的指令样式进行分析,其结果,可用作能够高效地移植程序的方法及装置等。
Claims (8)
1.一种程序自动变换方法,用于使在某种环境下动作的程序在其他环境下动作,其特征在于:
在存储部中存放有1个以上的、表示旧源程序的指令样式的信息——第一指令样式信息和表示新源程序的指令样式信息——第二指令样式信息的信息对,
具备:在旧源程序中,对所述1个以上的第一指令样式信息的出现次数,用分析模块进行分析的分析步骤;
将所述分析步骤中的分析结果用输出模块进行输出的输出步骤;
当在所述分析步骤中得出第一指令样式信息的出现次数为规定次数以上的分析时,则用变换模块对该第一指令样式信息对应的旧源程序的记叙部位进行变换,并使其对应与该第一指令样式信息成对的第二指令样式信息的指令样式变换步骤,其中所述规定次数为2次以上;
将用所述指令样式变换步骤变换所述旧源程序的结果——新源程序,用输出模块进行输出的新程序输出步骤;以及
当在所述分析步骤中得出第一指令样式信息的出现次数小于所述规定次数的分析时,则针对该第一指令样式信息对应的旧源程序的记叙部位,用输入部件受理通过用户的手工操作将该旧源程序的记叙部位更改为新源程序的输入的步骤。
2.据权利要求1所述的程序自动变换方法,其特征在于:所述的新程序输出步骤,在新源程序中,将用所述指令样式变换步骤变换的部位和没有变换的部位在视觉上相区别地进行输出。
3.一种程序自动变换装置,其特征在于:具备:
存放有1个以上的、表示旧源程序的指令样式的信息——第一指令样式信息和表示新源程序的指令样式信息——第二指令样式信息的信息对的指令样式对应信息存放部;
在旧源程序中,对1个以上的所述第一指令样式信息的出现次数进行分析的分析部;
将所述分析部的分析结果输出的输出部;
当在所述分析部中得出第一指令样式信息的出现次数为规定次数以上的分析时,则对该第一指令样式信息对应的旧源程序的记叙部位进行变换,并使其对应与该第一指令样式信息成对的第二指令样式信息的指令样式变换部,其中所述规定次数为2次以上;
将在所述指令样式变换部中变换旧源程序的结果——新源程序输出的新程序输出部;以及
当在所述分析部中得出第一指令样式信息的出现次数小于所述规定次数的分析时,则针对该第一指令样式信息对应的旧源程序的记叙部位,受理通过用户的手工操作将该旧源程序的记叙部位更改为新源程序的输入的受理输入部。
4.根据权利要求3所述的程序自动变换装置,其特征在于:
所述的新程序输出部,在新源程序中,将用所述指令样式变换部变换的部位和没有变换的部位在视觉上相区别地进行输出。
5.一种程序的生产方法,生产用于使某种环境下动作的旧源程序在其他环境下动作的新源程序,其特征在于:具备:
在旧源程序中,对1个以上的第一指令样式信息的出现次数进行分析的分析步骤;
将所述分析步骤中的分析结果输出的输出步骤;
当在所述分析步骤中得出第一指令样式信息的出现次数为规定次数以上的分析时,则对该第一指令样式信息对应的旧源程序的记叙部位进行变换,并使其对应与该第一指令样式信息成对的第二指令样式信息的指令样式变换步骤,其中所述规定次数为2次以上;
将用所述指令样式变换步骤中变换所述旧源程序的结果——新源程序,进行输出的新程序输出步骤;以及
当在所述分析步骤中得出第一指令样式信息的出现次数小于所述规定次数的分析时,则针对该第一指令样式信息对应的旧源程序的记叙部位,受理通过用户的手工操作将该旧源程序的记叙部位更改为新源程序的输入的步骤。
6.根据权利要求5所述的程序生产方法,其特征在于:
所述新程序输出步骤,在新源程序中,将用所述指令样式变换步骤变换的部位和没有变换的部位在视觉上相区别地进行输出。
7.一种程序的生产装置,用于生产使某种环境下动作的旧源程序在其他环境下动作的新源程序,其特征在于:包括:
存放有1个以上的、表示旧源程序的指令样式的信息——第一指令样式信息和表示新源程序的指令样式信息——第二指令样式信息的信息对的指令样式对应信息存放部;
在旧源程序中,对1个以上的所述第一指令样式信息的出现次数进行分析的分析部;
将所述分析部的分析结果输出的输出部;
当在所述分析部中得出第一指令样式信息的出现次数为规定次数以上的分析时,则对该第一指令样式信息对应的旧源程序的记叙部位进行变换,并使其对应与该第一指令样式信息成对的第二指令样式信息的指令样式变换部,其中所述规定次数为2次以上;
将在所述指令样式变换部中变换旧源程序的结果——新源程序输出的新程序输出部;以及
当在所述分析部中得出第一指令样式信息的出现次数小于所述规定次数的分析时,则针对该第一指令样式信息对应的旧源程序的记叙部位,受理通过用户的手工操作将该旧源程序的记叙部位更改为新源程序的输入的受理输入部。
8.根据权利要求7所述的程序的生产装置,其特征在于:
所述的新程序输出部,在新源程序中,将指令样式变换部变换了的部位和没有进行变换的部位,在视觉上区别地进行输出。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002354264A JP3494376B1 (ja) | 2002-12-05 | 2002-12-05 | プログラム解析装置およびプログラム |
JP354264/2002 | 2002-12-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1692334A CN1692334A (zh) | 2005-11-02 |
CN100345116C true CN100345116C (zh) | 2007-10-24 |
Family
ID=31712378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003801004739A Expired - Lifetime CN100345116C (zh) | 2002-12-05 | 2003-11-28 | 程序自动变换方法及程序自动变换装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7831964B2 (zh) |
JP (1) | JP3494376B1 (zh) |
KR (1) | KR100688444B1 (zh) |
CN (1) | CN100345116C (zh) |
AU (1) | AU2003284504A1 (zh) |
WO (1) | WO2004051470A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100673499B1 (ko) * | 2005-01-13 | 2007-01-24 | 한국과학기술연구원 | 디지털 합금 다원 화합물 반도체의 분산 브랙 반사경 |
JP4712512B2 (ja) * | 2005-10-14 | 2011-06-29 | 富士通株式会社 | プログラム変換プログラム、プログラム変換装置、プログラム変換方法 |
JP4115511B1 (ja) * | 2007-05-08 | 2008-07-09 | 株式会社システムズ | プログラムパターン分析装置、パターン出現状況情報生産方法、パターン情報生成装置、およびプログラム |
US8490052B2 (en) * | 2008-10-14 | 2013-07-16 | Microsoft Corporation | Declarative programming model for authoring and execution control and data flow for resource oriented system |
US8533666B2 (en) * | 2008-10-17 | 2013-09-10 | Microsoft Corporation | Interactive design environments to visually model, debug and execute resource oriented programs |
US8635694B2 (en) * | 2009-01-10 | 2014-01-21 | Kaspersky Lab Zao | Systems and methods for malware classification |
JP2012053657A (ja) * | 2010-09-01 | 2012-03-15 | Systems:Kk | 情報処理装置、情報処理方法、及びプログラム |
JP5124660B2 (ja) * | 2011-02-01 | 2013-01-23 | 株式会社システムズ | プログラムの生産方法および生産装置 |
US8621442B2 (en) * | 2011-02-09 | 2013-12-31 | Beek Fund B.V. L.L.C. | Quicker translation of a computer program source code |
KR20130097252A (ko) * | 2012-02-23 | 2013-09-03 | 삼성전자주식회사 | 소스 코드 분석에 의한 응용 프로그램 분석을 위한 방법 및 장치 |
JP6019843B2 (ja) * | 2012-07-11 | 2016-11-02 | 富士通株式会社 | 拡張言語仕様情報提供方法、拡張言語仕様情報提供プログラム、およびコンパイル装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH053630A (ja) * | 1991-06-26 | 1993-01-08 | Toshiba Corp | 電力系統運用訓練シミユレータ |
JPH0910397A (ja) * | 1995-06-29 | 1997-01-14 | Ace Denken:Kk | 遊技機 |
US6014519A (en) * | 1996-08-19 | 2000-01-11 | Nec Corporation | Language processing unit and a language processing method to translate a source program and generate an object module file |
CN1311881A (zh) * | 1998-06-04 | 2001-09-05 | 松下电器产业株式会社 | 语言变换规则产生装置、语言变换装置及程序记录媒体 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0769830B2 (ja) * | 1987-08-18 | 1995-07-31 | 日本電気株式会社 | 展開制御機能をもつプログラム翻訳装置 |
JPH0542513Y2 (zh) | 1987-09-16 | 1993-10-26 | ||
JPH01290036A (ja) | 1988-05-18 | 1989-11-21 | Nec Corp | ソースメンバの文字列圧縮方式 |
JPH0553822A (ja) | 1991-08-27 | 1993-03-05 | Matsushita Electric Ind Co Ltd | 共通部分式文の削除方法及びその装置 |
JPH05324343A (ja) | 1992-05-22 | 1993-12-07 | Hitachi Software Eng Co Ltd | プログラムコンバートシステム |
JPH0778742B2 (ja) * | 1992-08-12 | 1995-08-23 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピユータ・プログラム言語変換装置及びその方法 |
JPH086815A (ja) * | 1994-06-21 | 1996-01-12 | Mitsubishi Electric Corp | デバッグ装置、コンパイラ及び統計解析装置 |
JPH1046837A (ja) * | 1996-07-31 | 1998-02-17 | Concrete Kooring Kk | 工事用機械装置 |
US5950004A (en) * | 1996-09-13 | 1999-09-07 | The United States Of America As Represented By The Secretary Of The Navy | Model-based process for translating test programs |
US6044220A (en) * | 1997-02-25 | 2000-03-28 | Motorola, Inc. | Method and apparatus for operating a data processor to execute software written using a foreign instruction set |
JPH11224199A (ja) * | 1998-02-06 | 1999-08-17 | Matsushita Electric Ind Co Ltd | 翻訳装置と情報処理装置および記録媒体 |
US6901588B1 (en) * | 2000-04-17 | 2005-05-31 | Codemesh, Inc. | Sharing components between programming languages by use of polymorphic proxy |
JP2002001486A (ja) * | 2000-06-20 | 2002-01-08 | Asahi Tec Corp | 地下構造物用蓋体の鋳型装置 |
JP2002014826A (ja) | 2000-06-29 | 2002-01-18 | Toshiba Corp | インタプリタおよびそのプログラム実行方法 |
US7086046B2 (en) * | 2001-07-30 | 2006-08-01 | International Business Machines Corporation | Method and apparatus for displaying compiler-optimizated code |
-
2002
- 2002-12-05 JP JP2002354264A patent/JP3494376B1/ja not_active Expired - Fee Related
-
2003
- 2003-11-28 CN CNB2003801004739A patent/CN100345116C/zh not_active Expired - Lifetime
- 2003-11-28 US US10/518,090 patent/US7831964B2/en active Active
- 2003-11-28 WO PCT/JP2003/015305 patent/WO2004051470A1/ja active Application Filing
- 2003-11-28 AU AU2003284504A patent/AU2003284504A1/en not_active Abandoned
- 2003-11-28 KR KR1020047018061A patent/KR100688444B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH053630A (ja) * | 1991-06-26 | 1993-01-08 | Toshiba Corp | 電力系統運用訓練シミユレータ |
JPH0910397A (ja) * | 1995-06-29 | 1997-01-14 | Ace Denken:Kk | 遊技機 |
US6014519A (en) * | 1996-08-19 | 2000-01-11 | Nec Corporation | Language processing unit and a language processing method to translate a source program and generate an object module file |
CN1311881A (zh) * | 1998-06-04 | 2001-09-05 | 松下电器产业株式会社 | 语言变换规则产生装置、语言变换装置及程序记录媒体 |
Non-Patent Citations (1)
Title |
---|
PASCAL语言程序转换成C语言程序的尝试 梁彩霞,兵工自动化 1996 * |
Also Published As
Publication number | Publication date |
---|---|
AU2003284504A1 (en) | 2004-06-23 |
US7831964B2 (en) | 2010-11-09 |
WO2004051470A1 (ja) | 2004-06-17 |
KR20050030896A (ko) | 2005-03-31 |
JP3494376B1 (ja) | 2004-02-09 |
JP2004185508A (ja) | 2004-07-02 |
KR100688444B1 (ko) | 2007-03-02 |
US20060156292A1 (en) | 2006-07-13 |
CN1692334A (zh) | 2005-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100345116C (zh) | 程序自动变换方法及程序自动变换装置 | |
US8850310B2 (en) | Data entry suggestion lists for designated document data entry areas based on data from other document data entry areas | |
CN103930868B (zh) | 定制优化/转换/处理策略的***和方法 | |
CN1290901A (zh) | 用于提供随机输入源生成的文本的替换方式的方法和*** | |
US8745581B2 (en) | Method and system for selectively copying portions of a document contents in a computing system (smart copy and paste | |
CN105051721A (zh) | 为电子表格将自然语言描述转换为因因域而异而异的语言的程序 | |
CN101038550A (zh) | 信息处理装置和方法 | |
CN1457041A (zh) | 为一个自然语言理解***用来自动注解训练数据的一个*** | |
CN1655120A (zh) | 在集成开发环境中作为设计器的主宿的应用程序 | |
CN1371047A (zh) | 用户接口设计装置 | |
CN1364266A (zh) | 操纵分级组织的信息 | |
CN103718159B (zh) | 图像处理软件开发方法、图像处理软件开发装置 | |
WO2011148511A1 (ja) | 情報生成プログラム/装置/方法、情報検索プログラム/装置/方法 | |
CN102446167B (zh) | 一种基于逻辑模板对复杂字符串逻辑处理的方法和装置 | |
CN1877531A (zh) | 一种嵌入式编译体系扫描器的实现方法 | |
CN102707938B (zh) | 表形式软件规格制作支援方法及装置 | |
CN100337196C (zh) | 图解编程装置及可编程显示器 | |
CN1474408A (zh) | 面向任务的非线性超视频编辑方法及其装置 | |
CN101059758A (zh) | 屏幕转换程序生成方法及设备 | |
CN1462966A (zh) | 简繁体中文内码转换方法以及*** | |
US20130159327A1 (en) | Apparatus and method for visualizing data | |
CN1470986A (zh) | 基于流程记录对***性能的自动分析 | |
CN101685463A (zh) | 专利文献的分类标引方法 | |
CN1567222A (zh) | 程序生成装置 | |
CN105224331A (zh) | 一种可视化编程页面交叉链接方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20071024 |
|
CX01 | Expiry of patent term |