首页> 中国专利> 程序模式分析装置、模式出现状况信息产生方法、模式信息生成装置及程序

程序模式分析装置、模式出现状况信息产生方法、模式信息生成装置及程序

摘要

以往技术中存在不能分析成为转换对象的源程序,无法提高转换率的问题。本发明提供的程序模式分析装置具备:模式信息保存部(201),可保存一个以上的第一源程序的第一指令模式信息;第一源程序接受部(202),接受第一源程序;比较部(203),从第一源程序中取出一个以上转换单位信息,将取出的各个转换单位信息和被保存在模式信息包存部(201)的第一指令模式信息进行比较;以及模式存储部(204),将表示指令模式的信息、即比较指令模式信息,作为第一指令模式信息存储到模式信息保存部(201),其中,该指令模式与被比较部(203)判断为同第一指令模式信息的哪一个都不一致的转换单位信息相对应。

著录项

  • 公开/公告号CN101675415A

    专利类型发明专利

  • 公开/公告日2010-03-17

    原文格式PDF

  • 申请/专利权人 株式会社智系统;

    申请/专利号CN200880015061.8

  • 发明设计人 小河原隆史;

    申请日2008-04-18

  • 分类号G06F9/44;G06F9/45;

  • 代理机构北京鸿元知识产权代理有限公司;

  • 代理人陈英俊

  • 地址 日本东京

  • 入库时间 2023-12-17 23:44:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-06-19

    授权

    授权

  • 2010-05-12

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20080418

    实质审查的生效

  • 2010-03-17

    公开

    公开

说明书

技术领域

本发明涉及一种在作为转换对象的源程序的分析中使用的程序模式分析装置等。

背景技术

以往,作为自动转换源程序的技术,已经存在着对因编译差而产生的记述内容的差异进行自动检测、自动修正或编制列表,以便提高开发作业效率的技术(例如,参照专利文献1)。该技术是,对用C语言描述的原始程序进行词法分析,制作每一个记号(Token)的数据库和中间文件,删除及变更数据库上的作为对象的字符串,并且,把数据库或中间文件的信息生成为C语言文件,生成目标程序。

专利文献1:日本专利文献特开2002-41286号公报(第1页、图1等)

在如上所述的以往的自动转换源程序的技术中,源程序的转换率不一定很高,此外,可自动转换的语言也受到限制,通用性较低。因此,需要对每个转换的源程序,研究如何进行转换为好、例如用手工作业还是使用自动工具等,或者,需要判断利用什么样的自动转换工具比较恰当,作为用于转换的自动转换工具,要制作与哪个指令模式对应的自动转换工具等。

但是,在以往技术中,存在不能恰当地进行转换源程序时所必要的分析的问题。例如,不能准确且迅速地分析以下问题:从第一源程序转换为第二源程序的语言时认为需要转换的指令模式中,哪个指令模式是在要转换的第一源程序中实际使用的;以及,不认为需要转换的指令模式有哪些且有多少。因此,不能恰当地决定在转换源程序时,要进行怎样的转换,需要多少工时数,或者使用什么样的自动转换工具等。其结果,无法进行有效的源程序的转换。

另外,没提供恰当地分析源程序、并且利用其分析结果提高源程序的转换率的装置等。

发明内容

本发明的程序模式分析装置具备:模式信息存储部,可保存一个以上的第一指令模式信息,所述第一指令模式信息是表示第一源程序的指令模式的信息;第一源程序接受部,接受第一源程序;比较部,从所述第一源程序中取出一个以上作为转换单位的信息的转换单位信息,并且将取出的各个转换单位信息和被保存在所述模式信息包存部的所述第一指令模式信息进行比较,其中,该转换单位是转换所述第一源程序时的单位;以及模式存储部,将表示指令模式的信息、即比较指令模式信息,作为所述第一指令模式信息存储到所述模式信息保存部,其中,所述指令模式与被所述比较部判断为同所述第一指令模式信息的哪一个都不一致的所述转换单位信息相对应。

根据这样的结构,可追加第一源程序的转换所需要的第一指令模式信息。其结果,通过将追加的第一指令模式信息用于第一源程序的转换,可提高第一源程序的转换率。另外,能够与第一源程序相对应地,将第一指令模式信息最佳化。

此外,本发明的程序模式分析装置是,在上述的程序模式分析装置中,比较部从所述第一源程序中取出一个以上按照预先指定的规则决定的信息即转换单位信息,将取出的各个转换单位信息和被保存在所述模式信息保存部的所述第一指令模式信息进行比较,

根据这样的结构,可以恰当地比较第一源程序和第一指令模式信息。

另外,本发明的程序模式分析装置是,在上述的程序模式分析装置中,还具备保存有作为预先指定的信息的一个以上指定信息的指定信息保存部,所述比较部从所述第一源程序中取出一个以上转换单位信息,将取出的各个转换单位信息和被保存在所述模式信息保存部的所述第一指令模式信息进行比较,所述转换单位信息是被保存在所述指定信息保存部的指定信息中的一个出现之后,到下次出现一个指定信息的范围内的信息。

根据这样的结构,可以恰当地比较第一源程序和第一指令模式信息。

另外,本发明的程序模式分析装置是,在上述的程序模式分析装置中,所述指定信息包含所述第一源程序中使用的指令字。

根据这样的结构,可以恰当地比较第一源程序和第一指令模式信息。

另外,本发明的程序模式分析装置是,在上述的程序模式分析装置中,当比较部判断为与所述第一指令模式信息的哪一个都不一致的情况下,所述模式存储部将所述转换单位信息变更为与该转换单位信息对应的所述比较指令信息,将变更后的所述比较指令模式信息作为所述第一指令模式信息存储到所述模式信息保存部。

根据这样的结构,可以追加第一源程序的转换所必要的第一指令模式信息。其结果,能够提高第一源程序的转换率。

另外,本发明的程序模式分析装置是,在上述的程序模式分析装置中,所述比较部将所述转换单位信息变更为与该转换单位信息对应的所述比较指令模式信息,并且同所述第一指令模式信息进行比较,当所述比较部判断为与所述第一指令模式信息的哪一个都不一致的情况下,所述模式存储部将所述比较部变更的所述比较指令模式信息作为所述第一指令模式信息存储到所述模式信息保存部。

根据这样的结构,可以追加第一源程序的转换所必要的第一指令模式信息。其结果,能够提高第一源程序的转换率。此外,通过将转换单位信息变更为比较指令模式信息,并且同第一指令模式信息进行比较,例如可以还包含着变量等非保留字等的属性或数据类型等进行与第一指令模式信息的比较,可进行更高精度的比较。其结果,可以追加表示更细致的转换条件的第一指令模式信息,可进行更高精度的转换。

另外,本发明的程序模式分析装置是,在上述的程序模式分析装置中,还具备:用户指定字保存部,可保存作为用户指定的字符串的用户指定字;以及转换字保存部,可保存与字符串的转换条件对应起来的转换字;所述比较部具备:取出单元,从所述第一源程序中取出作为转换单位的信息的所述转换单位信息,所述转换单位是转换所述第一源程序时的单位;指令模式构造单元,将所述转换单位信息中的、符合与被保存在所述转换字保存部的转换字相对应的转换条件、并且是被保存在所述用户指定字保存部的用户指定字之外的字符串,转换为与该转换条件对应起来的转换字,以构造所述比较指令模式信息;以及模式比较单元,比较所述比较指令模式信息和所述第一指令模式信息。

根据这样的结构,可以追加第一源程序的转换所必要的第一指令模式信息。其结果,能够提高第一源程序的转换率。此外,通过将转换单位信息变更为比较指令模式信息,并且同第一指令模式信息进行比较,可进行更高精度的比较,可以追加表示更细致的转换条件的第一指令模式信息,可进行更高精度的转换。

另外,本发明的程序模式分析装置是,在上述的程序模式分析装置中,所述转换条件是指定成为检索对象的字符串的信息即线索字符串和表示成为转换对象的字符串相对于该线索字符串的位置的信息的组合,所述指令模式构造单元检索所述转换单位信息中的、与所述线索字符串一致的字符串,并且,对于一致的字符串,将位于表示成为所述转换对象的字符串位置的信息所示的位置上的字符串,转换成与包含所述线索字符串的转换条件对应的转换字,由此构造所述比较指令模式信息。

根据这样的结构,将转换单位信息内的字符串转换成转换字时,可以用各种条件指定成为转换对象的字符串,可以提高将转换单位信息转换成比较指令模式信息时的自由度。

另外,本发明的程序模式分析装置是,在上述的程序模式分析装置中,还具备:对应模式存储部,在与所述第一源程序内的、配置有所述转换单位信息的位置相对应的位置,存储将与该转换单位信息一致的所述第一指令模式信息对应起来的信息。

根据这样的结构,在实际执行程序的转换时,只看到将该第一指令模式信息对应起来的第一源程序,就可以知道如何进行转换,可提高方便性。

此外,本发明的程序模式分析装置是,在上述的程序模式分析装置中,还具备:各程序对应模式存储部,存储将与所述第一源程序的转换单位信息相一致的所述第一指令模式信息和该第一源程序对应起来的信息。

根据这样的结构,可以根据表示该模式出现状况的信息,判断或确认在第一源程序内出现的第一指令模式,或者,可以调查其出现频度等,并且,在转换第一源程序时,可以判断应该进行怎样的转换,可以恰当地分析成为转换对象的第一源程序。从而,可进行有效的第一源程序的转换。

此外,本发明的程序模式分析装置是,在上述的程序模式分析装置中,具备:模式信息包存部,可保存一个以上的第一指令模式信息,该第一指令模式信息是表示第一源程序的指令模式的信息;第一源程序接受部,接受第一源程序;比较部,从所述第一源程序中取出一个以上作为转换单位的信息的转换单位信息,并且将取出的各个转换单位信息和被保存在所述模式信息保存部的所述第一指令模式信息进行比较,其中,该转换单位是转换所述第一源程序时的单位;以及模式出现状存储部,将所述比较部判断为与所述第一指令模式信息的某一个相一致的所述转换单位信息和被判断为一致的第一指令模式信息对应起来存储,并且,将判断为同所述第一指令模式信息的哪一个都不一致的所述转换单位信息和表示没有一致的情况的信息对应起来存储。

根据这样的结构,可以判断或确认在第一源程序的哪个行上出现了什么样的第一指令模式;可以在转换第一源程序时,判断要进行怎样的转换等;可以恰当地分析成为转换对象的第一源程序。由此,可以进行有效的第一源程序的转换。再者,根据表示对应的第一指令模式不存在的信息,可以识别对应的第一指令模式不存在的执行单位,能够掌握在第一源程序内,作为被保存在模式信息保存部101的第一指令模式以外的指令的模式,存在什么样的模式。从而,可以抽出认为作为第一指令模式信息进行登记比较好的指令的模式,新追加到第一指令模式中,可以与第一源程序对应地,使被保存在模式信息保存部的第一指令模式信息最佳化。

根据本发明涉及的程序模式分析装置,可以恰当地分析成为转换对象的源程序。

此外,根据本发明涉及的程序模式分析装置,可以利用成为转换对象的源程序的分析结果,提高源程序的转换率。

附图说明

图1是第一实施方式涉及的程序模式分析装置的框图。

图2是说明第一实施方式涉及的程序模式分析装置的动作的流程图。

图3是表示第一实施方式涉及的指令模式信息管理表的图。

图4是表示第一实施方式涉及的源程序例子的图。

图5是表示第一实施方式涉及的模式出现状况管理表的图。

图6是表示第一实施方式涉及的模式出现状况管理表的图。

图7是表示第一实施方式涉及的累计结果管理表的图。

图8是第二实施方式涉及的程序模式分析装置的框图。

图9是说明第二实施方式涉及的程序模式分析装置的动作的流程图。

图10是说明第二实施方式涉及的程序模式分析装置的动作的流程图。

图11是表示第二实施方式涉及的指令模式信息管理表的一个例子的图。

图12是表示第二实施方式涉及的第一源程序的一个例子的图。

图13是表示第二实施方式涉及的指定信息管理表的一个例子的图。

图14是用于说明第二实施方式涉及的转换单位信息的图。

图15是表示第二实施方式涉及的用户指定语管理表的一个例子的图。

图16是表示第二实施方式涉及的转换语管理表的一个例子的图。

图17是表示第二实施方式涉及的存储有对应的模式的第一源程序的一个例子的图。

图18是表示各程序的对应模式信息的一个例子的图。

图19是表示第二实施方式涉及的指令模式信息管理表的显示例的图。

图20是表示第二实施方式涉及的模式出现状况信息的显示例的图。

图21是用于说明第二实施方式涉及的比较指令模式信息的转换处理的一个例子的图。

图22是用于说明第二实施方式涉及的比较指令模式信息的转换处理的一个例子的图。

图23是表示各实施方式涉及的计算机系统的一个外观例的示意图。

图24是表示各实施方式涉及的计算机系统的一个构成例的示意图。

具体实施方式

下面,参照附图说明程序模式分析装置等的具体实施方式。而且,在实施方式中赋予了相同标记的构成要素执行同样动作,因此,有时会省略重复说明。

(第一实施方式)

图1是第一实施方式涉及的程序模式分析装置的框图。

程序模式分析装置具备模式信息保存部101、源程序接受部102、比较部103、模式出现状况存储部104、模式出现状况保存部105、累计部106和输出部107。

在模式信息保存部101中,可保存一个以上的将第一源程序转换为第二源程序时表示作为转换对象的第一源程序的指令模式的信息,即第一指令模式信息。作为具体例子,第一指令模式信息是表示第一源程序中的出现保留字的模式、出现非保留字的模式、或者出现保留字及非保留字的模式中至少一个的信息。保留字是指,由程序语言的规范等规定的、不能作为变量名、函数名、类名等的标识符名使用的字句要素(例如单词)。在模式信息保存部101中,例如通过未图示的接受部等存储需要进行转换的第一源程序的指令模式的信息。并且,在模式信息保存部101中,也可以将第一源程序的第一指令模式信息,和由该第一指令模式信息转换成的、表示第二源程序的指令模式的第二指令模式信息对应起来保存。第一源程序和第二源程序可以是COBOL语言、C语言、perl语言等任何种类语言的源程序。此外,也可以是脚本程序等。在此,设第一源程序和第二源程序是成为所谓移植源和移植对象的源程序。模式信息保存部101既可以用非易失性的记录介质实现,也可以用易失性的记录介质实现。

源程序接受部102接受第一源程序。在此所说的接受是指,例如来自输入单元的接受、从其它设备等发送来的输入信号的接收、从记录介质等的信息读取等。输入单元可以是0-9数字键盘、普通键盘、鼠标或利用菜单画面的输入装置等,任意种都可以。源程序接受部102可以用通信设备或读取信息的设备等的设备驱动器,0-9数字盘、普通键盘等输入单元的设备驱动器,或者菜单画面的控制软件等实现。

比较部103按执行第一源程序时的各单位、即执行单位,比较该第一源程序和保存在模式信息保存部中的第一指令模式信息。作为执行单位的具体例子是第一源程序的行。行,可以根据第一源程序的语言来断开,也可以用行号来断开,也可以用分号等控制标记来断。具体地说,比较部103比较第一源程序的各执行单位和保存在模式信息保存部101的一个以上的第一指令模式信息,判断它们是否一致。在此,比较部103判断的一致,可以是完全一致,也可以是部分一致。并且,在本实施方式中,特别说明的是,比较部103判断第一指令模式信息的保留字部分的出现模式和第一源程序的执行单位内的保留字部分的出现模式的一致性,第一指令模式信息的非保留字部分的出现模式和第一源程序的执行单位内的非保留字部分的出现模式的一致性,或者第一指令模式信息的保留字及非保留字出现的模式和第一源程序的执行单位内的保留字及非保留字出现的模式的一致性中的至少一个的情况。具体地说,在这里,如果该保留字的出现模式之间、非保留字的出现模式之间、或者保留字与非保留字的出现模式之间完全一致,则认为所比较的第一源程序的执行单位和第一指令模式信息一致。在此所说的出现模式是,还包含保留字之间、保留字与非保留字的排列顺序的模式。出现模式可以是特定的保留字或非保留字出现的模式,也可以是不特定的保留字或非保留字出现的模式。此外,也可以是它们的组合。比较部103通常可以由MPU或存储器等实现。比较部的处理步骤通常由软件实现,该软件被记录在ROM等记录介质中。但是,也可以由硬件(专用电路)实现。

模式出现状况存储部104,将已判断为同第一指令模式信息的某一个相一致的第一源程序的执行单位、和判断为一致的第一指令模式信息对应起来存储。另外,将已判断为同第一指令模式信息不一致的第一源程序的执行单位,和表示全都不一致的信息、例如““无对应”或“else”等信息对应起来存储。所谓对应起来存储,例如等同于将一致的第一源程序的执行单位和第一指令模式信息,作为同一记录的两个属性值进行存储。在此,说明模式出现状况存储部104的存储目的地为模式出现状况保存部105的情况,但存储目的地不限于此。并且,在此所述的存储是包含用于暂时保存的存储在内的概念。模式出现状况存储部的处理步骤通常由软件实现,该软件被记录在ROM等记录介质中。但是,也可以由硬件(专用电路)实现。

在模式出现状况保存部105中,通过模式出现状况存储部104将比较部103比较结果被判断为一致的第一源程序的执行单位和第一指令模式信息对应起来存储。并且,在此记载的保存是还包含暂时存储的概念。模式出现状况保存部105可以由非易失性的记录介质或易失性的记录介质实现。

累计部106利用模式出现状况存储部104存储的信息,对模式出现状况存储部104同第一指令模式信息的执行单元对应起来存储的第一指令模式中、相同的第一指令模式的出现次数进行累计。虽然只出现一次的第一指令模式的出现次数也可以计为一次,但也可以不累计。累计部106通常可以由MPU或存储器等实现。累计部106的处理步骤通常由软件实现,该软件被记录在ROM等记录介质上。但是,也可以由硬件(专用电路)实现。。

输出部107输出模式出现状况存储部104存储的信息。将模式出现状况存储部104存储的信息称为模式出现状况信息。具体地说,模式出现状况存储部104读取在模式出现状况保存部105中对应起来存储的、比较部103比较的结果被判断为一致的第一源程序的执行单位和第一指令模式信息,并输出。此外,也可以是,除了模式出现状况存储部104存储的信息之外,输出部107还按各个第一指令模式输出累计部106的累计结果,或者是,输出部107按各个第一指令模式输出累计部106的累计结果,以代替模式出现状况存储部104存储的信息。再者,也可以是,只输出累计部106的累计结果中的、关于出现次数为N(N大于等于1)次以上的第一指令模式的出现次数的累计结果。该判断过程可以是,将累计部106的累计结果值和N进行比较,只有大于等于N时,将该累计结果和对应的第一指令模式一起输出。在此记载的输出,是包含显示器上的显示、通过打印机在纸等上的打字、在记录介质等的存储、向外部装置的发送等的概念。可以认为输出部107包括显示器、打印机等输出设备,也可以认为不包括这些输出设备。输出部107可以由输出设备的驱动程序、或者输出设备的驱动程序和输出设备等实现。此外,输出部107也可以具备用于判断累计结果的出现次数是否为N次以上的MPU或存储器等。

接着,利用图2的流程图说明程序模式分析装置的工作。在此,作为例子说明第一源程序的执行单位是行的情况。

(步骤S201)源程序接受部102接受第一源程序。第一源程序是转换对象的程序,并且是分析对象的程序。例如,当第一源程序被保存在存储器等的情况下,源程序接受部102读入并接受该第一源程序。

(步骤S202)比较部103读入在模式信息保存部101保存的一个以上的第一指令模式。

(步骤S203)比较部103将1代入到计数器i。该计数器是在步骤S201读入的第一源程序的程序计数器。即,比较部103通过以下处理来解析在步骤S201读入的第一源程序的第i行。在此,假设程序是一行一指令模式的程序。

(步骤S204)比较部103判断在步骤S201读入的第一源程序中是否存在第i个源程序行。如果存在第i个源程序行,则进到步骤S205;如不存在,则进到步骤S209。

(步骤S205)比较部103将1代入到计数器j。计数器j是用于取得在步骤S202读入的1个以上第一指令模式信息中的、比较中利用的第一指令模式信息的计数器。

(步骤S206)比较部103判断第i个源程序行是不是同第j个的第一指令模式一致的行。如果第i个源程序行与第j个的第一指令模式一致,则进到步骤S207;如果不一致,则进到步骤S212。并且,第i个源程序行与第j个的第一指令模式是否一致的判断,可以通过语法解析或字句解析等进行。具体例子在后面描述。

(步骤S207)模式出现状况存储部104将第i个源程序行和第j个的第一指令模式对应起来存储到模式出现状况存储部104。也可以是,不采用分别存储源程序行和第一指令模式的方法,而是将各自对应的识别信息、例如源程序行的行号、第一指令模式的ID等对应起来存储。

(步骤S208)比较部103使计数器i增1。然后,返回到步骤S204。

(步骤S209)累计部106对与源程序行对应起来被保存在模式出现状况保存部105的第一指令模式中的、相同的第一指令模式的出现次数进行累计。不限定累计方法。例如,可以是,从模式信息保存部101依次读取第一指令模式信息,对与所读取的各第一指令模式信息相一致的第一指令模式,从模式出现状况保存部105被读出的数量进行计数,由此对出现次数进行累计。此外,也可以是,依次读取被保存在模式出现状况保存部105的第一指令模式,对与各第一指令模式相一致的第一指令模式从模式出现状况保存部105被读出的数量进行计数,由此对出现次数进行累计。该情况下,可以对已经计数一次的第一指令模式,附加用于使其在下次以后不再被读取的信息、例如标记。累计部106将累计结果暂时存储到例如未图示的存储器等。

(步骤S210)输出部107输出在步骤S207及步骤S214由模式出现状况存储部104存储的、将一致的源程序行与第一指令模式对应起来的信息,和将源程序行与表示不存在一致的第一指令模式的信息对应起来的信息,例如进行显示。

(步骤S211)输出部107将累计部106在步骤S209累计的累计结果,同第一指令模式对应起来输出,例如进行显示。然后,结束处理。

(步骤S212)比较部103使计数器j增1。

(步骤S213)比较部103判断在步骤S202读入的第一指令模式中是否有第j个的第一指令模式。如果有第j个的第一指令模式,则返回到步骤S206,若没有,则进到步骤S214。

(步骤S214)比较部103将表示不存在与第i个源程序行一致的第一指令模式的信息,和第i个源程序行对应起来存储。然后,进到步骤S208。

并且,也可以在步骤S210中,对于各第一指令模式,判断在步骤S209得到的出现结果的累计结果值是否大于等于预先设定的N(N大于等于1),只有在大于等于N的情况下,将累计结果值和第一指令模式对应起来输出。

另外,在图2所示的流程图中,不需要第一指令模式的累计结果的输出等的情况下,也可以省略步骤S209的处理等。

此外,在图2所示的流程图中,当仅输出所出现的第一指令模式的累计结果的情况下,也可以省略步骤S214的处理等。

在图2所示的流程图中,通过电源关或处理结束的中断,结束处理。

下面,说明本实施方式涉及的程序模式分析装置的具体动作。图3是保存在模式信息保存部101中的指令模式信息管理表。指令模式信息管理表保存着具有“ID”、“第一指令模式”的多个记录。“ID”是识别记录的信息,在管理表上是被利用的信息。“第一指令模式”是保存第一指令模式信息的属性。在此,第一指令模式信息由保留字、或者保留字和非保留字的组合构成。在该第一指令模式信息中,保留字用英文大写的字符串表示,非保留字用日文字、或者日文字与数字的组合表示。例如,在“SELECT变量01ASSIGNTO变量02”中,“SELECT”、“ASSIGN”、“TO”是保留字,非保留字是“变量01”、“变量02”。非保留字对应于正规表现。这些非保留字表示例如由{[a-z、A-Z、0-9…]*},即a至z的小写或大写的字母、或者0至9的数字等任意字符构成的1个字符以上的字符串。在此,“*”指定1个字符以上的字符数。

此外,图4表示的是源程序接受部102接受的源程序的例子。在此,说明程序模式分析装置按照用户的指示接收图4所示的程序并开始进行分析的情况。在图4的源程序中以“*”开始的行是注释行。另外,在该源程序中,对作为执行单位的各行赋予了行号。通常,通过以该行号单位读取源代码,能够读取每行的源代码。但是,当包含规定的控制符等的情况下,也可以将多行判断为一个执行单位。并且,当判断为注释行的情况下,程序分析装置不对该行进行分析。

首先,按照用户的指示等,源程序接受部102从存储器等读取图4所示的源程序,并接受源程序。接受的源程序被暂时存储在未图示的存储器等。

接着,比较部103从模式信息保存部101读入第一指令模式信息。读入的信息被暂时存储在未图示的存储器等。

接着,比较部103首先读入被暂时存储在存储器等的图4所示的源程序的第1行。由于第1行是包含“*”的注释行,转移到下一行。即,使程序计数器递增。由于第2行至第8行也是注释行,因此比较部103不进行比较。

接着,比较部103读入源程序的第9行的“IDENTIFICATION DIVISION”。然后,比较部103比较读入的行和各第一指令模式信息,在此进行模式匹配。

具体地说,首先取得源程序的第9行的最初字符串。在此,最初的字符串是“IDENTIFICATION”。接着,读入图3所示的第一指令模式信息的第一个记录。然后,比较源程序的第9行的最初字符串和第一指令模式信息的第一个记录的最初字符串。在此,由于第一指令模式信息的第一个记录的最初字符串是作为保留字的“IDENTIFICATION”,因此,将该保留字和第一指令模式信息的第一个记录的最初字符串比较,判断是否完全一致。在此,利用空格来判断一个字符串、即保留字和非保留字的分界。在此,判断为源程序的第9行源代码的最初字符串和第一指令模式信息的第一个记录的最初字符串一致。因此,进行源程序的第9个源代码的下一个字符串。在此,程序的第9行源代码的第二个字符串是“IDENTIFICATION”,第一指令模式信息的第一个记录的第二个字符串是作为保留字的“IDENTIFICATION”。因此,比较这两者判断是否完全一致。在此,判断为一致。然后,由于程序的第9行源代码中没有下一个字符串,第一指令模式信息的第一个记录中也没有下一个字符串,因此判断为第一指令模式信息的第一个记录的第一指令模式和源程序的第9行源代码相一致,比较结束。

然后,模式出现状况存储部104将该源程序的第9行源代码和第一指令模式信息的第一个记录的第一指令模式对应起来,存储到模式出现状况保存部105。

图5是管理被存储在模式出现状况保存部105的源程序的行和第一指令模式之间的对应关系的模式出现状况管理表。模式出现状况管理表可保存具有“源程序ID”、“行号”、“源代码”、“第一指令模式”的记录。“源程序ID”是用于识别源程序的信息。在此,假设图4所示源程序的识别信息是“PSD712”。该“源程序ID”可以取自源程序的文件名等,也可以由用户指定。另外,还可以利用检索等取得在源程序内记载的源代码的识别信息。“行号”是成为分析的对象的行号码。即,除了注释行等之外的行的行号。“源代码”是由行号指定的行中实际记载的源代码。另外,“第一指令模式”是,比较部103进行比较的结果判断为与同一记录的“源代码”对应时的第一指令模式。在该模式出现状况管理表中,每当分析源程序的行时,记录依次增加。

接着,比较部103读入源程序的第10行的“PROGAM-ID PSD712”。然后,比较部103进行读入的行和各第一指令模式信息的比较。

具体地说,首先取得源程序的第10行的最初字符串。在此,最初字符串是“PROGAM-ID”。接着,读入图3所示的第一指令模式信息的第一个记录。然后,比较源程序的第10行的最初字符串和第一指令模式信息的第一个记录的最初字符串。在此,由于第一指令模式信息的第一个记录的最初字符串是作为保留字的“IDENTIFICATION”,因此,将该保留字和第一指令模式信息的第一个记录的最初字符串比较,判断是否完全一致。在此,判断为不一致。接着,比较源程序的第10行的最初字符串和第一指令模式信息的下一个记录的最初字符串。在此,第二个记录的最初字符串是作为保留字的“CONFIGURATION”,所以判断为不一致。其次,比较源程序的第10行的最初字符串和第一指令模式信息的下一个记录即第三个记录的最初字符串。在此,第三个记录的最初字符串是作为保留字的“PROGAM-ID”,所以判断为同源程序的第10行的最初字符串一致。因此,接着,进行源程序的第10行的第二个字符串“PSD712”和第一指令模式信息的第三个记录的第二个字符串的比较。但是,第三个记录的第二个字符串是指定非保留字的字符串“变量1”,对应于表示字符串的组的正规表现。因此,如果源程序的第10行的第二个字符串“PSD712”是满足该正规表现的字符串,则判断为一致。在此,由于“PSD712”是满足该正规表现的字符串,所以,判断为源程序的第10行的第二个字符串“PSD712”和第一指令模式信息的第三个记录的第二个字符串相一致。然后,由于源程序的第10行中没有第三个字符串,第一指令模式信息的第三个记录中也没有第三个字符串,因此,判断为源程序的第10行源代码和第一指令模式信息的第三个记录的第一指令模式相一致,比较结束。

然后,模式出现状况存储部104将该源程序的第10行源代码和第一指令模式信息的第三个记录的第一指令模式对应起来,存储到模式出现状况保存部105。

接着,由于源程序的第11行是注释行,所以读入源程序的第12行的“ENVIRONMENT DIVISION”。其次,比较部103进行读入的行和各第一指令模式信息的比较。

具体地说,首先取得源程序的第12行的最初字符串。在此,最初字符串是“ENVIRONMENT”。然后,读入图3所示的第一指令模式信息的第一个记录。之后,比较源程序的第12行的最初字符串和第一指令模式信息的第一个记录的最初字符串。在此,第一指令模式信息的第一个记录的最初字符串是作为保留字的“IDENTIFICATION”,所以,将该保留字和第一指令模式信息的第一个记录的最初字符串进行比较,判断是否完全一致。在此,判断为不一致。以下,同样地比较源程序的第12行的最初字符串和第一指令模式信息的第二个以后记录的最初字符串,检测出一致的记录。在此,假设没有一致的记录,比较部103判断为不存在与源程序的第12行相一致的第一指令模式,比较结束。

然后,模式出现状况存储部104将表示不存在对应的第一指令模式的值、在此例如“else”和源程序的第12行源代码对应起来,存储到模式出现状况保存部105。

以下,对图4所示源程序的全部行进行同样的处理,结束比较部103的比较处理。

图6是比较处理结束时刻的模式出现状况管理表。该模式出现状况管理表相当于上述的模式出现状况信息。该模式出现状况管理表具有与源程序的除注释行以外的全部行相对应的记录。

接着,累计部106对于图6所示的模式出现状况管理表的“第一指令模式”属性,计数相同的第一指令模式出现的次数。例如,读取模式出现状况管理表的第一个记录的“第一指令模式”属性的属性值“IDENTIFICATIONDIVISION”,在第二个以后的记录中,累计具有完全一致的“第一指令模式”属性的记录数量。然后,同样地,对于第二个记录以后的记录,也进行同样的累计。并且,已经有一次被判断为对于其它记录的“第一指令模式”具有完全一致的“第一指令模式”属性的记录,赋予了表示已进行了一次累计的信息、例如标志信息等,以便不进行重复累计。因此,对于被赋予了该信息的记录的“第一指令模式”属性,不将相同的第一指令模式出现的次数进行计数。另外,在此,也不进行“第一指令模式”属性是“else”的记录数的计数。然后,累计部106将累计结果和第一指令模式对应起来暂时存储到未图示的存储器等。

图7是用于管理累计部106的第一指令模式出现次数的累计结果的累计结果管理表。累计结果管理表保存着具有“源程序ID”、“模式ID”、“第一指令模式”、“出现次数”的多个记录。“源程序ID”是用于识别源程序的信息。“模式ID”是为了识别在源程序中利用的第一指令模式而赋予的识别信息。“第一指令模式”表示在源程序中利用的第一指令模式。“出现次数”是第一指令模式的出现次数的累计结果值。

接着,输出部107利用显示器等分别显示图6所示的模式出现状况管理表和图7所示的累计结果管理表,或者利用打印机把它们打印出来。

而且,在上述具体例子中,也可以是,从累计结果管理表仅抽出“出现次数”大于等于规定值N(N是1以上的整数)的记录,利用显示器显示、或者利用打印机打印出由该抽出的记录构成的表、即抽出累计结果管理表。该N的值,可以是预先设定在未图示的存储器等,也可以是通过未图示的接受部等从用户处适当接受。例如,出现频度为1次的第一指令模式那样的、登记用于转换第一指令模式的作业时间和实际的用手工作业转换第一源程序的作业时间相同的情况下,用自动转换工具处理的必要性不是很高,此外,可以想到,若用自动转换工具进行转换,在转换后需要检查自动转换是否顺利进行,反而会增加作业时间,因此不必考虑将其作为自动转换工具的处理对象的指令模式。所以,特别是N设为2以上的值的情况下,通过不显示出现频度小于N次的第一指令模式的记录,从而不显示不必考虑转换的第一指令模式,使得用户能够容易地判断源程序的转换方法等。

如上所述,根据本实施方式,将判断为与第一指令模式的某一个相一致的第一源程序的各行源代码,和判断为一致的第一指令模式对应起来输出,而且,将判断为与第一指令模式的不一致的第一源程序的各行源代码,和表示没有相一致的第一指令模式的信息对应起来输出,从而,能够判断或确认在源程序的哪一行出现了什么样的第一指令模式。由此,在转换源程序时,能够适当地决定进行什么样的转换、或者使用什么样的自动转换工具等。其结果,能够进行有效的源程序的转换。另外,能够确认源程序的各行和第一指令模式的对应关系是否取的适当。

另外,根据本实施方式,能够掌握利用工具自动转换源代码时的效果。此外,通过上述的掌握效果,本实施方式的模式分析装置在开发自动转换工具时,或者计算源代码的移植工作时间时非常有效。

另外,本实施方式涉及的模式分析装置可用于掌握源代码的标准化程度,进而掌握源代码的品质。例如,在源代码中对应的第一指令模式较少的情况下,可以判断为没实现源代码的标准化。

此外,根据本实施方式,能够根据输出结果来确认偏离了编程标准化的源代码,或者检查其出现频度。由此,例如可以掌握程序员的程序设计习惯或编程时的独特规则等,可以选择适当的转换方法,或者进行自动转换工具的开发。

再者,在本实施方式中,根据表示不存在对应的第一指令模式的信息、例如“else”,可以识别不存在对应的第一指令模式的行或代码。由此,根据该行或源代码,可以掌握作为被保存在模式信息保存部101的第一指令模式以外的指令的模式,存在什么样的模式。由此,可以抽出认为作为第一指令模式新登记为佳的指令的模式,追加到第一指令模式,能够按照源程序使保存在模式信息保存部101的第一指令模式信息最佳化。如上所述,通过利用反馈了分析结果的第一指令模式信息再次进行与上述记载相同的分析,可以减少不存在对应的第一指令模式的行,能够更准确地分析应该进行什么样的转换等。

此外,在本实施方式中,利用保存在模式信息保存部101的指令模式信息进行源程序的分析,因此,通过变更被保存在模式信息保存部101的指令模式信息,能够进行将源程序变更为其它各种语言时的源程序分析,可获得较高的通用性。另外,通过追加、更新指令模式信息,可进行精度更高的分析。

另外,通过累计并输出在源程序中出现的第一指令模式的出现次数,可以容易地知道哪个第一指令模式以怎样的频度出现,在转换源程序时,能够适当地判断进行怎样的转换、或者使用怎样的自动转换工具等。

在上述具体例子中,也可以是,输出部107从模式出现状况保存部105读取并输出同表示没有一致情况的信息对应起来存储在模式出现状况保存部105中的、构成作为第一源程序的执行单位的行的信息,即源代码。作为具体例子,可以是例如输出部107利用检索等,读取(即抽出)图6所示模式出现状况管理表的记录中的、“第一指令模式”属性的值是表示不存在对应的第一指令模式的值例如“else”的记录,并输出由抽出的记录构成的表。通过利用这样的信息,能够容易地掌握作为被保存在模式信息保存部101的第一指令模式以外的指令模式,还有什么样的模式。由此,能够容易且迅速地进行认为作为第一指令模式新登记为佳的指令模式的抽出,或者向第一指令模式追加所抽出指令的模式的工作。

在上述实施方式中,各处理(各功能)可以由单一的装置(系统)集中处理而实现,或者,也可以由多个装置进行分散处理而实现。

另外,在上述实施方式中,各结构要素可以由专用的硬件构成,或者,可以由软件实现的结构要素,可以通过执行程序来实现。例如,通过CPU等程序执行部读取并执行记录在硬盘或半导体存储器等记录介质中的软件/程序,可实现各结构要素。

而且,实现上述实施方式涉及的程序分析装置的软件是如下所述的程序。即,该程序使计算机执行如下各单元的功能:接受部,接受第一源程序;比较部,将所述第一源程序和一个以上第一指令模式信息进行比较,该一个以上第一指令模式信息是表示将第一源程序转换为第二源程序时的、成为转换对象的第一源程序的指令模式的信息,并且是按执行该第一源程序时的单位即执行单位保存的;模式出现状况存储部,所述比较部将判断为与所述第一指令模式信息的某一个一致的所述第一源程序的执行单位,和判断为一致的第一指令模式信息对应起来存储在此,并且,将判断为与所述第一指令模式信息不一致的第一源程序的执行单位,和表示没有一致情况的信息对应起来存储在此;输出部,输出所述模式出现状况存储部存储的信息。

另外,在上述程序的基础上,该程序还使计算机执行如下单元的功能:累计部,利用所述模式出现状况存储部存储的信息,对所述模式出现状况存储部同第一指令模式信息的执行单位对应起来存储的第一指令模式中的、相同的第一指令模式的出现次数进行累计。该程序还能使所述输出部按各个第一指令模式来输出所述累计部的累计结果。

而且,在上述程序中,在上述程序实现的功能中不包含只能由硬件实现的功能。例如,接受信息的接受部、输出信息的输出部等单元中的调制解调器或接口等只能由硬件实现的功能,不包含在上述程序实现的功能中。

此外,该程序可以通过从服务器等下载来执行,也可以通过读取记录在规定记录介质(例如CD-ROM等光盘或磁盘、半导体存储器等)上的程序来执行。

另外,执行该程序的计算机可以是一台,也可以是多台。即,可以进行集中处理,或者,可以进行分散处理。

此外,在上述实施方式中,存在于一个装置上的2个以上通信单元(信息发送部等),在物理上可以由一个媒体实现,这是毋庸置疑的。

毋庸置疑,本发明不限于上述的实施方式,可进行各种变更,这些变更也将被包含在本发明的保护范围内。

在上述实施方式中,说明了程序模式分析装置是独立装置的情况,但是,程序模式分析装置可以是独立的装置,也可以是服务器·客户机系统中的服务器装置。当后者的情况下,输出部或接受部通过通信线路接受输入,或者输出画面。

(第二实施方式)

本实施方式涉及的程序分析装置的特点是,比较从第一源程序取出的成为转换单位的信息和第一指令模式信息,当不一致的情况下,向第一指令模式信息追加与转换单位信息对应的指令模式的信息。并且,为了解释权利要求中记载的技术用语的含义而参照本发明的详细说明时,如果实施方式1的记载和实施方式2之间的用语含义和处理内容的说明存在不同,以实施方式2的记载为优先。

图8是本实施方式涉及的程序分析装置的框图。

程序分析装置2具备模式信息保存部201、第一源程序接受部202、比较部203、模式存储部204、转换字保存部205、指定信息保存部206、模式出现状况存储部207、对应模式存储部208、各程序对应模式存储部209、用户指定字保存部211、模式出现状况保存部213、对应模式保存部214、各程序对应模式保存部215、输出部216。

比较部202具备取得单元20301、指令模式构造单元20302和模式比较单元20303。

在模式信息保存部201中,能保存一个以上的表示将第一源程序转换为第二元程序时的、成为转换对象的第一源程序的指令模式的信息,即第一指令模式信息。“将第一源程序转换为第二源程序时”是指,进行用于将旧源程序移植到新源程序的转换、所谓移植等的情况。该实施方式中的指令模式是指,在第一源程序中利用的指令中字符串等信息出现的模式等。第一指令信息是指,例如表示在第一源程序中可利用的指令中字符串等信息出现的模式等的信息。此外,第一指令模式信息也可以是,用表示是未固定的信息的、预先指定的字句要素(例如单词)替换了在指令中出现的字符串等信息中的一部分例如变量、文字、函数名等的信息。该替换的信息,在此例如称为转换字。关于该转换字,希望是可以判断在配置该转换字的位置配置的信息的数据类型、数据大小、属性等的信息。例如,第一指令模式信息由指令字、用户指定字、转换字和其它字符串中的一个以上的组合构成。在后面详细说明指令字、用户指定字、转换字等的详细内容。另外,也可以将指令模式考虑成在第一源程序中保留字(例如指令字)出现的模式、非保留字(例如变量、字面量(literal)字符、函数名等)出现的模式、或者保留字及非保留字出现的模式,该情况下,第一指令模式信息也可以是,例如表示第一源程序中保留字出现的模式、非保留字出现的模式、或者保留字及非保留字出现的模式中至少一个的信息。如果举具体例子,第一指令模式信息是“指令字<自变量1><自变量2>”这样的表示保留字和非保留字的排列模式的信息。该情况下,“指令字”是“OPEN”、“MOVE”、“CALL”等保留字,<自变量1>、<自变量2>是作为变量字符串的非保留字。此外,第一指令模式信息也可以是表示特定的保留字、例如指令字和不特定的保留字按怎样顺序排列的信息等。保留字是指,由程序语言的规范等规定的、不能作为变量名、函数名、类名等的标识符名使用的字句要素(例如单词)。

在模式信息保存部201,例如通过未图示的接受部等,存储了需要转换的第一源程序的第一指令模式信息。第一源程序的第一指令模式信息可以考虑成与第一源程序的语言等对应的第一指令模式信息,即在第一源程序的语言等中可能出现的指令模式的信息。并且,也可以是,将第一源程序的第一指令模式信息,和表示由该第一源程序转变的第二源程序的指令模式的第二指令模式信息对应起来,保存在模式信息保存部101中。除了对应的源程序是第二源程序这点之外,第二指令模式信息和上述的第一指令模式信息相同。第一源程序和第二源程序可以是分别用COBOL语言、C语言、perl语言等任一种语言的源程序。另外,也可以是脚本程序等。另外,也可以是兼容了这些语言的语言所构成的程序。在此,作为例子,设第一源程序和第二源程序是成为所谓移植源和移植对象的源程序。模式信息保存部101既可以用非易失性的记录介质实现,也可以用易失性的记录介质实现。

源程序接受部202接受第一源程序。在此所说的接受是指,例如来自输入单元的接受、从其它设备等发送来的输入信号的接收、从记录介质等的信息读取等。输入单元可以是0-9数字键盘、普通键盘、鼠标或利用菜单画面的输入装置等,任意种都可以。源程序接受部102可以用通信设备或读取信息的设备等的设备驱动器,0-9数字盘、普通键盘等输入单元的设备驱动器,或者菜单画面的控制软件等实现。

比较部203从第一源程序中取出一个以上的作为转换单位的信息的转换单位信息,该转换单位是转换第一源程序时的单位,并且,将该取出的各个转换单位信息和保存在模式信息保存部201的第一指令模式信息进行比较。

转换单位是指,例如将第一源程序转换成其它的源程序、例如第二源程序时进行处理的信息的单位。作为具体例子,可以理解成,移植第一源程序时进行转换的字符串等信息的单位。也可以将转换单位理解成,通过第一源程序内的比较部203进行与第一指令模式信息的比较的单位,即比较单位。

转换单位是例如第一源程序中的、按照规定的规则决定的字符串等信息的单位。规定的规则,可以是任意的规则。例如,可以是这样的规则:将第一源程序内的、由用户等事先指定的1个以上规定信息中的某一个断开的范围内的信息,作为转换单位信息。此外,还可以是这样的规则:将第一源程序内的规定信息与规定信息之间的信息,作为转换单位信息。该规定信息例如是后述的指定信息。可以在转换单位信息中包含该规定信息,也可以不包含。

转换单位信息例如是第一源程序中的、作为预先指定的信息的指定信息中的一个出现开始到下一次出现一个指定信息为止的范围内的信息,该指定信息被保存在后述的指定信息保存部206等。或者,也可以理解成,第一源程序中的、由该指定信息断开的信息。从出现指定信息中的一个开始到下一次出现一个指定信息的这期间范围内的信息中,可以包含先前出现的指定信息,也可以不包含。另外,从出现指定信息中的一个开始到下一次出现一个指定信息的这期间范围内的信息中,可以包含该下一次出现的指定信息,也可以不包含。

指定信息是例如由用户指定的字符串等信息。在此,可以认为字符串包括句号、逗号等标记。指定信息也可以是预先指定的换行符、TAB等控制码等。可以将换行符、TAB等控制码理解成字符串。另外,指定信息可以是例如在第一源程序中使用的指令字,即用于第一源程序的语言等的全部指令字或一部分指令字。此外,指定信息也可以是这些信息的组合。

上述的规定的规则,可以是上述规则之外的规则,例如将用行号等断开的信息决定为转换单位信息的规则。即,也可以是将第一源程序的行决定为转换单位信息的规则。也可以是,表示该规则的信息,例如被保存在未图示的存储器等。

比较部203例如从第一源程序中取出一个以上的由预先指定的规则决定的信息即转换单位信息,将该取出的各个转换单位信息和保存在模式信息保存部201的第一指令模式信息进行比较。

例如,比较部进行检索,从第一源程序中检测出与保存在指定信息保存部206的指定信息一致的信息,取出一个以上的第一源程序内的、从出现被保存在指定信息保存部206的指定信息中的一个开始到下一次出现一个指定信息为止的范围内的信息,即转换单位信息,并且,将取出的各个转换单位信息和保存在模式信息保存部201的第一指令模式信息进行比较。

另外,例如,比较部203对第一源程序进行检索,检测出保存在、指定信息保存部206的一个以上指令字,并且,取出一个以上的第一源程序内的、从出现被保存在指定信息保存部206的指令字中的一个开始到下一次出现一个指令字为止的范围内的信息,即转换单位信息,并且,将取出的各个转换单位信息和保存在模式信息保存部201的第一指令模式信息进行比较。在此所说的指令字是能够成为转换单位信息的最初字句的字句,对于源程序有含义的字句。在此所说的指令字,例如是运算符、指令部或令牌的全部或一部分。此外,也可以认为,是COBOL等语言所特有的指令字。该情况下,也可以认为指定信息保存部206是指令字的保存部。

具体地说,比较部203比较第一源程序的各转换单位信息和被保存在模式信息保存部201的一个以上的第一指令模式信息,判断它们是否一致。在此,比较部103判断的所谓一致,可以是完全一致,也可以是部分一致。此外,也可以将第一指令模式信息的一部分和转换单位信息的一部分相一致的情况,判断成一致。另外,也可以将两者的保留字或非保留字的排列一致的情况,判断成一致。此外,例如,也可以将指令字和自变量的数量等一致的情况,判断成一致。此外,在此也可以将第一指令模式信息和转换单位信息相对应的时候,认为是一致。

不限定比较部203如何比较第一源程序的各转换单位信息和被保存在模式信息保存部201的一个以上第一指令模式信息。例如,可以是,比较部203将转换单位信息变更为表示与该转换单位信息对应的指令模式的信息、即比较指令模式信息,然后比较变更后的比较指令模式信息和第一指令模式信息。该比较指令模式信息例如是与上述的第一指令模式信息同样的、表示指令模式的信息。例如,也可以是,比较部203直接比较全体的转换单位信息和全体的第一指令模式信息。此外,也可以是,在比较时去除(例如删除)空格等预先指定的记号的区别、段落号码、注释等。此外,也可以是,例如比较部203将转换单位信息中的非固定信息以外的信息(以下称为固定信息)的出现模式和被保存在模式信息保存部201的一个以上的第一指令模式信息内的固定信息的出现模式进行比较,判断它们是否一致,其中,该非固定信息是变量、函数名、字面量字符等用户可指定值或字符串的信息。另外,也可以是,比较部203判断第一指令模式信息的非固定信息部分的出现模式和第一源程序的转换单位信息内的非固定信息部分的出现模式之间的一致性,或者,第一指令模式信息的固定信息及非固定信息出现的模式和第一源程序的转换单位信息内的固定信息及非固定信息出现的模式之间的一致性。此外,也可以将它们组合后进行判断。此外,也可以是,将非固定信息中的由用户等指定的信息,例如用户指定的字符串即用户指定字等指定为固定信息之后,进行上述的比较及判断。另外,也可以是,比较部203将转换单位信息中的一部分或全部非固定字转换成与该非固定字对应的字符串之后,同第一指令模式信息进行比较。此外,也可以是,在转换为与非固定字对应的字符串时,判断非固定字的属性、数据类型、模式,并且,根据其模式转换为指定的字符串。

作为具体例子,只要固定信息的出现模式之间、非固定信息的出现模式之间、或者固定信息和非固定信息的出现模式之间完全一致,比较部203就认为所比较的第一源程序的转换单位信息和第一指令模式信息相一致。在此记载的出现模式是指,例如还包含固定信息之间、非固定信息之间、或固定信息与非固定信息的排列顺序等的模式。出现模式可以是特定的固定信息或非固定信息出现的模式,也可以是不特定的固定信息或非固定信息出现的模式。此外,也可以是它们的组合。

另外,也可以是,比较部203判断第一指令模式信息的保留字部分的出现模式和第一源程序的转换单位信息内的保留字部分的出现模式之间的一致性、第一指令模式信息的非保留字部分的出现模式和第一源程序的转换单位信息内的非保留字部分的出现模式之间的一致性、或者第一指令模式信息的保留字及非保留字出现的模式和第一源程序的转换单位信息内的保留字及非保留字出现的模式之间的一致性中的至少一个。具体地说,如果保留字的出现模式之间、非保留字的出现模式之间、或者保留字和非保留字的出现模式之间完全一致,可以认为所比较的第一源程序的转换单位信息和第一指令模式信息一致。在此所说的出现模式是,例如还包含保留字之间、或保留字与非保留字的排列顺序的模式。出现模式可以是特性的保留字或非保留字出现的模式,也可以是不特定的保留字或非保留字出现的模式。此外,也可以是它们的组合。

此外,比较部203通常可以由MPU或存储器等实现。比较部203的处理步骤通常由软件实现,该软件被记录在ROM等记录介质中。但是,也可以由硬件(专用电路)实现。

在该实施方式中,说明了如下内容,即比较部203具备取得单元20301、指令模式构造单元20302和模式比较单元20303,指令模式构造单元20302将取得单元20301取得的一个以上的转换单位信息变更为表示与该转换单位信息对应的指令模式的信息、即比较指令模式信息,模式比较单元20303比较该变更后的比较指令模式信息和第一指令模式信息。

取得单元20301从第一源程序中取出作为转换单位的信息的转换单位信息,该转换单位是转换该第一源程序时的单位。取得单元20301例如从第一源程序中取出一个以上按照预先指定的规则决定的信息即转换单位信息。作为该规则,可利用如上所述的规则。例如,取得单元20301依次比较构成第一源程序的字句要素(例如单词)和被保存在指定信息保存部206的指定信息。然后,取出第一源程序内的、被保存在指定信息保存部206的指定信息中的一个出现开始到下一次出现一个指定信息为止的范围内的信息、即转换单位信息。作为具体例子,将指定信息作为在第一源程序中使用的指令字,取得单元20301从第一源程序中依次取出从被保存在指定信息保存部206的指令字中的一个出现开始到下一次出现一个指令字为止的范围内的信息、即转换单位信息。更具体地说,也可以取出从指令字中的一个出现开始到下一次出现一个指令字之前为止的范围内的信息。该情况下,在转换单位信息中包含先前的指令字,不包含之后出现的指令字,而且,转换单位信息中只包含一个指令字。另外,也可以是,取得单元20301取出从一个指令字出现开始到出现指令字之前或者包含句号为止的范围,或者是,从出现一个句号之后到指令字出现之前或包含句号为止的范围的信息。另外,也可以是,取得单元20301在取出从指定信息中的一个出现开始到下一次出现一个指定信息为止的范围内的信息时,删除转换处理等中不需要的信息等,例如换行符、行号、注释、句号等信息,或者将其替换为预先指定的信息等。取得单元20301通常可以由MPU或存储器等实现。取得单元20301的处理步骤通常由软件实现,该软件被记录在ROM等记录介质中。但是,也可以由硬件(专用电路)实现。

指令模式构造单元20302将取得单元20301取得的转换单位信息中的、符合与转换字对应的转换条件且属于用户指定字以外的字符串,转换为与该转换条件对应起来的转换字,由此构造比较指令模式信息。

转换字是指与可出现在第一源程序中的字符串的转换条件相对应的字符串。转换字例如被保存在后述的转换字保存部205。此外,转换字也可以与转换条件对应起来被保存在转换字保存部205。具体地说,是在上述的变量、函数名、字面量字符等非固定字的替换中使用的一个以上的字符串。在比较指令模式信息等中,转换字是用于表示已配置了具有规定的属性和数据类型等的非固定字的字符串。具体地说,与非固定字相对应地,根据是否符合预先准备的一个以上转换条件的某一个,来进行该替换。转换条件是指定非固定字出现的规则、非固定字的属性或数据类型等的信息。例如,转换条件是线索字符串、成为转换对象的字符串的位置、和判断一致或不一致中的哪一个的信息的组合。线索字符串是指,用于指定为确定成为转换对象的字符串而使用的特定字符串、字符串的属性和字符串长度的信息。也可以将线索字符串称为线索句。字符串的位置,是表示成为转换对象的字符串相对于例如线索字符串的位置,例如前后或线索字符串自身的信息。判断一致或不一致中的哪一个的信息,是指定线索字符串和转换单位信息内的字符串一致、或者不一致这两个中的哪个情况下判断为满足条件的信息。通过使转换条件具有这样的构成,可提高指定成为转换对象的字符串时的自由度。具体地说,转换条件是,指定将在预先指定的字符串之后配置的变量等替换成叫做“变量项目”的转换字的如此规则的信息,或者是指定将字面量字符替换成“常数”等转换字的如此规则的信息,或者是指定将阶层化的变量等数字中的最上级的变量替换为叫做“集团项目”的转换字的如此规则的信息。指令模式构造单元20302将符合这样的转换条件的、取得单元20301取得的转换单位信息中包含的用户指定字以外的字符串,转换成与该转换条件对应起来的转换字,来构造比较指令模式信息。比较指令模式信息是表示与转换单位信息对应的指令模式的信息。

用户指定字是指,用户指定的字符串。用户指定字,例如是不希望转换成上述转换字的字符串,例如是,成为向上述转换字进行转换的转换对象的字符串、即符合上述转换条件的字符串中,不希望转换成转换字的字符串。例如,当设定了将字面量字符转换“字符项目”这样的转换字的转换条件的情况下,如果将字面量字符[“DDD”]指定为用户指定字,就可以使转换单位信息中的字符串[“DDD”]不发生转换而保留,其它的字面量字符例如[“EEE”]等被转换成作为转换字的“字符项目”这样的字符串。而且,在此,假设被符号“”包围的字符串是字面量字符。转换字例如被保存在后述的转换字保存部205。此外,用户指定字例如被保存在后述的用户指定字保存部211。

而且,也可以是,指令模式构造单元20302将取得单元20301所取得的转换单位信息中除了上述指定信息的至少一部分的字符串中的、符合与保存在后述的转换字保存部205的转换字对应的转换条件且属于用户指定字以外的的字符串,转换为与该转换条件对应起来的转换字,来构造所述比较指令模式信息,其中,上述指定信息被保存在指定信息保存部206,该用户指定字被保存在后述的用户指定字保存部211。

另外,也可以是,指令模式构造单元20302预先在未图示的保存部等中准备与被保存在指定信息保存部206的上述指定信息同样的、表示用户指定的指令字等的除外指定信息,并且将取得单元20301所取得的转换单位信息中除了该除外指定信息所表示的字符串之外的字符串中的、符合与保存在后述的转换字保存部205的转换字对应的转换条件且属于用户指定字以外的的字符串,转换为与该转换条件对应起来的转换字,来构造所述比较指令模式信息,其中,该用户指定字被保存在后述的用户指定字保存部211。

另外,也可以是,指令模式构造单元20302将取得单元20301所取得的转换单位信息中除了保留字之外的字符串中的、符合与保存在后述的转换字保存部205的转换字对应的转换条件且属于用户指定字以外的的字符串,转换为与该转换条件对应起来的转换字,来构造所述比较指令模式信息,其中,该用户指定字被保存在后述的用户指定字保存部211。

指令模式构造单元20302通常可以由MPU或存储器等实现。指令模式构造单元20302的处理步骤通常由软件实现,该软件被记录在ROM等记录介质中。但是,也可以由硬件(专用电路)实现。

模式比较单元20303比较由指令模式构造单元20302构造的比较指令模式信息和被保存在模式信息保存部201的各第一指令模式信息。具体地说,模式比较单元20303判断指令模式构造单元20303构造的比较指令模式信息和被保存在模式信息保存部201的各第一指令模式信息是否一致,从而判断比较指令模式信息是否与被保存在模式信息保存部201的第一指令模式信息中的某一个相一致。在此所说的一致,通常说的是完全一致,但是,也可以忽略空格、行号、换行符等在源程序的转换时被忽略的信息等的不一致。而且,关于判断指令模式信息之间的一致性的处理,可以利用判断字符串的一致性的处理等公知技术,在此省略其说明。

模式比较单元20303通常可以由MPU或存储器等实现。模式比较单元20303的处理步骤通常由软件实现,该软件被记录在ROM等记录介质中。但是,也可以由硬件(专用电路)实现。

模式存储部204将比较指令模式信息作为第一指令模式信息存储到模式信息保存部201,在此,该比较指令模式信息是表示与比较部203判断为同第一指令模式信息的哪一个都不一致的转换单位信息相对应的指令模式的信息。模式存储部204可以用任意方法取得比较指令模式信息。例如,可以将比较部203判断为不一致的转换单位信息,直接作为比较指令模式信息而取得,也可以是,从该转换单位信息中删除源程序的转换时不需要的换行符等标记,或者赋予进行管理等时必要的字符串或标记等,来构造比较指令模式信息。此外,也可以是,模式存储部204将比较部203判断为不一致的转换单位信息的一部分,例如一部分或全部非保留字、以及一部分或全部上述非固定字替换成预先指定的字符串等,来构造比较指令模式信息。如此替换的情况下,也可以是,与上述的指令模式构造单元20302的同样地利用转换条件,自转换单位信息构造比较指令模式信息。此外,如上所述地,在比较部203进行由指令模式构造单元20302构造的比较指令模式信息和第一指令模式信息的比较的情况下,也可以将判断为不一致的比较指令模式信息直接存储到模式信息保存部201。

模式存储部204通常可以由MPU或存储器等实现。模式存储部204的处理步骤通常由软件实现,该软件被记录在ROM等记录介质中。但是,也可以由硬件(专用电路)实现。

在转换字保存部205中可保存与字符串的转换条件对应起来的转换字。在转换字保存部205,还可以保存与转换字对应起来的转换条件。字符串的转换条件是指,上述字符串的排列模式、数据类型、前后的关键字等条件。保存在转换字保存部205的转换字,同表示转换条件的信息对应起来进行管理。例如,相对应的转换字和转换条件作为一个记录的2个属性值进行管理。转换字保存部205希望采用非易失性的记录介质,但也可以采用易失性的记录介质。

在指定信息保存部206保存着由用户等预先指定的信息、即一个以上的指定信息。如上所述,指定信息例如是包含预先指定的字符串或标记等的信息。指定信息保存部206希望采用非易失性的记录介质,但也可以采用易失性的记录介质。

模式出现状况存储部207将比较部203判断为与第一指令模式信息的某一个相一致的转换单位信息和判断为一致的第一指令模式信息对应起来存储。在此,将该对应起来的信息称为模式出现状况信息。另外,模式出现状况存储部207将由比较部203判断为与第一指令模式信息的哪一个都不一致的转换单位信息,和表示没有一致的信息、例如“无对应”或“else”等信息对应起来存储。对应起来存储是指,例如将一致的第一源程序的转换单位信息和第一指令模式信息作为同一记录的2个属性值存储等。例如,可以在管理第一源程序的转换单位信息的管理表等中,设置保存用于表示不一致的所谓标志等信息的列等,对于判断为与第一指令模式信息的哪一个都不一致的转换单位信息,作为该列的值,保存表示不一致的标志的信息。即,可以设置表示不一致的标志。或者,也可以是,对于一致的转换单位信息,设置表示一致的标志。这种方法在其他实施方式中也同样采用。在此,说明了模式出现状况存储部207的存储目的地为后述的模式出现状况保存部213的情况,但不限定存储目的地。而且,在此所说的存储是包含暂时存储的概念。模式出现状况存储部207通常可以由MPU或存储器等实现。模式出现状况存储部207的处理步骤通常由软件实现,该软件被记录在ROM等记录介质中。但是,也可以由硬件(专用电路)实现。

对应模式存储部208在第一源程序接受部202接受的第一源程序内的、与配置有转换单位信息的位置相对应的位置,存储将与该转换单位信息一致的第一指令模式信息对应起来的信息。然后,在后述的对应模式保存部214存储将该第一指令模式信息对应起来存储的第一源程序。另外,例如,对于比较部203判断为与第一指令模式信息的哪一个都不对应的转换单位信息,模式存储部204将与该转换单位信息对应的比较指令模式信息,作为新的第一指令模式信息存储到模式存储部204。因此,对应模式存储部208把将该模式存储部204存储的第一指令模式信息建立了对应的信息,存储到第一源程序内的、与配置有判断为不一致的转换单位信息的位置相对应的位置。第一源程序内的、与配置有转换单位信息的位置相对应的位置是指,只要是能够对配置有转换单位信息的位置进行确定的位置即可。例如,希望的是,靠近配置有各转换单位信息的位置而设置的注释区域,或者各转换单位信息的靠近的之前或之后的位置等。所谓将第一指令模式信息对应起来的信息,可以是第一指令模式信息自身,也可以是用于识别第一指令模式信息的识别信息等。如此地,在第一源程序内的、与配置了各转换单位信息的位置相对应的位置、例如与各转换单位信息对应的注释区域等,配置例如第一指令模式信息的识别信息等,作为将第一指令模式信息对应起来的信息,并且,通过将这样的第一源程序存储到对应模式存储部214等,就已经对该第一源程序内的各转换单位信息指定了同哪个第一指令模式信息相对应。例如将第一源程序自动转换成第二源程序时,将与第一源程序内的第一指令模式信息一致的信息,参照着与该一致的第一指令模式信息对应的第二指令模式信息进行转换,如果利用存储了对应模式存储部208存储的第一源程序,就能够判断第一源程序内的各转换单位信息和哪个第一指令模式信息一致,因此,不必再次比较第一源程序内的各转换单位和第一指令模式信息的哪个相一致,能够谋求处理的高速化。而且,也可以是,将第一源程序存储到对应模式保存部214时,对应模式存储部208适当地删除或变更第一源程序的换行符等标记等。而且,希望在第一源程序接受部202接受的第一源程序内的、与配置有转换单位信息的位置对应的位置,存储将与该转换单位信息一致的第一指令模式信息对应起来的信息,但是,例如在利用专用的显示工具显示源程序的情况下,只要结果上能够显示成在第一源程序接受部202接受的第一源程序内的、与配置有转换单位信息的位置对应的位置,存储了与该转换单位信息一致的第一指令模式信息的样子,第一指令模式信息也可以实际上存储在第一源程序以外的场所。而且,在此所述的存储,是还包含暂时存储的概念。对应模式存储部208通常可以由MPU或存储器等实现。对应模式存储部208的处理步骤通常由软件实现,该软件被记录在ROM等记录介质中。但是,也可以由硬件(专用电路)实现。

各程序对应模式存储部209存储将与第一源程序的转换单位信息一致的第一指令模式信息和该第一源程序对应起来的信息。在此,将与第一源程序的转换单位信息一致的第一指令模式信息和该第一源程序对应起来的信息,称为各程序对应模式信息。所谓各程序对应模式信息,只要结果上能够示出哪个第一源程序和哪个第一指令模式信息相对应就可以,可以是将第一指令模式信息和该第一源程序直接对应起来的信息,也可以是通过各自的识别信息等间接对应起来的信息。例如,各程序对应模式存储部209把将用于识别第一源程序接受部202接受的第一源程序的识别信息和用于识别与构成第一源程序的转换单位信息相一致的第一指令模式信息对应起来的信息,例如将对应的识别信息作为同一记录的2个属性值而持有的管理信息等,存储到各程序对应模式保存部215。通过利用如此对应起来的信息,可以掌握怎样的第一指令信息以何种程度存在于各第一源程序中,累计或分析第一指令模式信息的出现次数,从而,能够判断如何进行第一源程序的转换处理才更有效率。而且,在将第一指令模式信息和该第一源程序对应起来的信息中,也可以包含表示与某个第一指令模式信息对应的转换单位信息,存在于第一源程序的哪个位置的信息,例如,表示在哪一行存在与哪个第一指令模式信息对应的转换单位信息的的信息等。而且,在此所述的存储,是包含暂时存储的概念。各程序对应模式存储部209通常可以由MPU或存储器等实现。对应模式存储部208的处理步骤通常由软件实现,该软件被记录在ROM等记录介质中。但是,也可以由硬件(专用电路)实现。

在用户指定字保存部211中,可保存上述的用户指定字。用户指定字保存部211希望采用非易失性的记录介质,也可以采用易失性的记录介质实现。

在模式出现状况保存部213可保存模式出现状况信息。具体地说,在模式出现状况保存部213,可保存将比较部203判断为与第一指令模式信息的某一个相一致的转换单位信息和判断为一致的第一指令模式信息对应起来的信息,以及,在模式出现状况保存部213,还可以保存将比较部203判断为与第一指令模式信息的哪一个都不一致的转换单位信息和表示不存在一致性的信息对应起来的信息。模式出现状况保存部213希望采用非易失性的记录介质,也可以采用易失性的记录介质实现。

在对应模式保存部214可保存第一源程序,在该第一源程序内的、与配置有转换单位信息的位置对应的位置,存储了将与该转换单位信息一致的第一指令模式信息对应起来的信息。对应模式保存部214希望采用非易失性的记录介质,也可以采用易失性的记录介质实现。

在各程序对应模式保存部215中,可保存各程序对应模式信息。各程序对应模式保存部215希望采用非易失性的记录介质,也可以采用易失性的记录介质实现。

输出部216输出模式存储部204、模式出现状况存储部207、对应模式存储部208、各程序对应模式存储部209等存储的信息。具体地说,根据用户等的指示,适当地读取在模式信息保存部201、模式出现状况保存部213、对应模式保存部214、各程序对应模式保存部215等保存着的信息,并输出。另外,也可以是,输出部107对各程序对应模式存储部209存储的信息进行累计等处理,并且,输出得到的结果信息。在此所说的输出,是包含显示器上的显示、通过打印机在纸等上的打字、在记录介质等的存储、向外部装置的发送等的概念。可以理解为输出部216包括显示器、打印机等输出设备,也可以理解为不包括这些输出设备。输出部216可以由输出设备的驱动程序、或者输出设备的驱动程序和输出设备等实现。此外,输出部216也可以具备用于进行累计等的MPU或存储器等。

下面,利用图9所示的流程图说明程序模式分析装置的一个工作例。

(步骤S901)第一源程序接受部202接受第一源程序。第一源程序例如是转换对象的程序,并且是分析对象的程序。例如,当第一源程序被保存在存储器等的情况下,也可以由源程序接受部102读入并接受该第一源程序。接受的第一源程序被暂时存储在未图示的存储器等。

(步骤S902)对应模式存储部208将在步骤S901接受的第一源程序存储到对应模式保存部214。

(步骤S903)比较部103将1代入到计数器k。该计数器k是在步骤S901接受的第一源程序的程序计数器。

(步骤S904)比较部103的取得单元2031从在步骤S901接受的第一源程序读取第k个转换单位信息。作为具体例子,从第一源程序中的读取上次的转换单位信息的位置开始(其中,k=1时,从第一源程序的最初位置开始),依次读取按预定的规则决定的字符串,例如用空格等断开的字符串、即所谓单词,并且,依次判断所读取的字符串是否与被保存在指定信息保存部206的字符串即指定信息的某一个相一致。然后,从读取出一致的字符串开始至读取出下一个一致的字符串为止的期间,重复执行处理,将从最初的一致的字符串开始至下一个一致的字符串之前的信息,作为第k个转换单位信息读取。也可以是,按照这种规则读取转换单位信息的情况下,可认为转换单位信息的读取开始位置的最初字符串和指定信息相一致,不进行最初字符串与指定信息的比较,取出从读取开始位置起到下一次出现的同指定信息一致的字符串之前的信息。

(步骤S905)比较部103进行在步骤S904取出的第k个转换单位信息和存储在模式信息保存部201的第一指令模式信息的比较。在后面详细描述该比较处理的内容。

(步骤S906)模式存储部204根据步骤S905的比较结果,判断是否得到了第k个转换单位信息和被保存在模式信息保存部201的第一指令模式信息的某一个相一致的结果。当获得与某一个相一致的结果的情况下,进到步骤S908;当得到与哪一个都不一致的结果的情况下,进到步骤S907。

(步骤S907)模式存储部208将与第k个转换单位信息对应的比较指令模式信息作为第一指令模式信息存储到模式信息保存部201。在此,在如后所述的比较部203中比较由第k个转换单位信息构成的比较指令模式信息和第一指令模式信息,因此,该比较指令模式信息被存储到模式信息保存部201。

(步骤S908)模式出现状况存储部908将对应于步骤S906的判断结果的模式出现状况信息存储到模式出现状况保存部213。例如,在步骤S906得到第k个转换单位信息与第一指令模式信息一致的结果的情况下,存储将该一致的第一指令信息和第k个转换单位信息对应起来的模式出现状况信息。此外,在步骤S906得到第k个转换单位信息与第一指令模式信息不一致的结果的情况下,存储将表示不一致的信息和第k个转换单位信息对应起来的模式出现状况信息。并且,也可以是,在进行该步骤S907的处理的情况下,不进行步骤S908的处理。此外,在进行步骤S907的处理的情况下,也可以省略该步骤S908的处理。

(步骤S909)对应模式存储部208在于步骤S902存储到对应模式存储部214的第一源程序中的、表示配置了第k个转换单位信息之位置的位置,存储表示与该转换单位信息一致的第一指令模式信息的信息。例如,对应模式存储部208在第一源程序内的、对应于第k个转换单位信息的注释区域,记录用于识别在步骤S905的处理中被判断为一致的第一指令模式信息的信息,或者用于识别在步骤S907新登记的第一指令模式信息的信息。

(步骤S910)各程序对应模式存储部209将各程序的对应模式信息存储到各程序对应模式保存部215。

(步骤S911)比较部103使计数器k增1。

(步骤S912)比较部103的取得单元20301判断在第一源程序中是否有第k个转换单位信息。有第k个转换单位信息的情况下,返回到步骤S904;没有的情况下,进到步骤S913。例如,在之前的步骤S904的处理中,当第一源程序的末尾信息作为转换单位信息被取出的情况下,判断为没有第k个转换单位信息。

(步骤S913)输出部216判断是否有关于模式存储部204、模式出现状况存储部207、对应模式存储部208、各程序对应模式存储部209等中存储的任一信息的输出指示。例如,当未图示的接受部等接受了关于这些信息的输出指示的情况下,输出部216判断为有输出指示。当有输出指示的情况下,进到步骤S914;没有输出指示的情况下,结束处理。

(步骤S914)输出部216从模式信息保存部201、模式出现状况保存部213、对应模式保存部214、各程序对应模式保存部215等读取并输出在步骤S914有输出指示的信息。然后,结束处理。

并且,在图9所示流程图的步骤S904中,在取出第k个转换单位信息时,从第一源程序内检测出第k个转换单位信息。但是,也可以是,事先将第一源程序变形,即通过与上述记载相同的处理检测出第一源程序内的所有转换单位信息,对所有转换单位信息实施适当删除或替换换行符或空格信息等的处理,例如使一个转换单位信息成为一行信息的处理,使得容易读取出转换单位信息。这样的情况下,在步骤S904的处理中读取第k个转换单位信息时,读取第k行的信息即可。

在图9所示的流程图中,通过电源关或处理结束的中断来结束处理。

接着,利用图10的流程图说明图9的步骤S905的详细处理内容。

(步骤S1001)指令模式构造单元20302构造与第k个转换单位信息对应的比较指令模式信息。作为具体例子,依次取出包含在转换单位信息中的单词,并判断是否与保存在指定信息保存部206的指定信息、或者保存在用户指定字保存部的某一个用户指定字相一致。对于一致的单词,不进行转换,依然保留。另外,对于不一致的单词,判断是否符合保存在转换字保存部205的转换条件。当符合的情况下,替换为与符合的转换条件对应的转换字。然后,将其它单词依然保留。这样做,通过适当替换第k个转换单位信息内的单词,构造出与第k个转换单位信息相对应的比较指令模式信息。

(步骤S1002)模式比较单元20303将1代入到计数器l。

(步骤S1003)模式比较单元20303从模式信息保存部201读取第l个第一指令模式信息。

(步骤S1004)模式比较单元20303比较第l个第一指令模式信息和在步骤S1001构造的比较指令模式信息。

(步骤S1005)模式比较单元20303判断第l个第一指令模式信息和在步骤S1001构造的比较指令模式信息是否一致。一致的情况下,进到步骤S1006;不一致的情况下,进到步骤S1007。

(步骤S1006)模式比较单元20303向上级函数输出表示第k个转换单位信息与第l个第一指令模式信息相一致的信息。然后,返回到上级函数。

(步骤S1007)模式比较单元20303使计数器l增1。

(步骤S1008)模式比较单元20303判断在模式信息保存部201内是否有第l个第一指令模式信息。有的情况下,返回到步骤S1003;没有的情况下,进到步骤S1009。

(步骤S1009)模式比较单元20303向上级函数输出表示没有一致的第一指令模式信息的信息。然后,返回到上级函数。

在图10的流程图中,通过电源关或处理结束的中断来结束处理。

下面,说明本实施方式的程序模式分析装置的具体动作。关于在具体例子中使用的程序或源代码等,在此使用COBOL语言为例,这是为了说明上的方便,有时候会和实际的程序不同。

图11表示保存在模式信息保存部201的指令模式信息管理表。指令模式信息管理表保存着具有“ID”、“第一指令模式”属性的多个记录。“ID”是识别记录的信息,是在进行表管理时被利用的信息。“第一指令模式”是第一指令模式信息。在此,第一指令模式信息用英文、数字、日文和空格等标记来表示。日文部分表示变量、函数名、字面量字符等用户可指定数值或字符串的信息、即非固定信息,其他部分是非固定信息以外的信息、即固定信息。

另外,图12表示源程序接受部102接受的第一源程序的例子。在此,说明程序模式分析装置按照用户的指示,接受图12所示的第一源程序并开始分析的情况。而且,在图12的程序中省略了注释行等,但是,当包含注释行的情况下,可以预先进行从源程序接受部102接受的源程序中删除注释行等的处理。此外,在图12的源程序中,对于包含有多个连续的空格标记的部分,可以进行从源程序接受部102接受的源程序中删除多余的连续空格而只保留一个空格的处理等。此外,在图12的源程序中,对于包含换行符等控制标记的部分,可以进行从源程序接受部102接受的源程序中删除换行符等控制标记的处理等。此外,也可以是,在接受源程序以后的处理中,注释行、换行符等控制标记不作为分析对象。例如,可以忽略它们。此外,也可以将2个以上连续的空格等,视为一个空格处理。

图13表示用于管理被保存在信息指定保存部206的指定信息的指定信息管理表。指定信息管理表具有“ID”和“指定信息”这样的属性。“ID”是识别记录的信息,是在表管理中被利用的信息。“指定信息”是指定信息。在此,以指定信息是可在第一源程序中利用的指令字中的、用户指定的多个指令字的情况为例做了说明。

首先,根据用户的指示等,第一源程序接受部102从硬盘等读取图4所示的第一源程序,并接受第一源程序。接受的第一源程序暂时存储在未图式的存储器等。

此外,对应模式存储部208将接受的第一源程序存储到对应模式保存部214。

接着,比较部203的取得单元20301进行从第一源程序中取出转换单位信息的处理。具体地说,取得单元20301按照预先指定的取出转换单位信息的规则,进行取出转换单位信息的处理。在此,作为取出转换单位信息的规则的具体例子,有如下规则:取出第一源程序内的、从被保存在指定信息保存部206的指定信息中的句号出现位置的下一个字符串开始,到下一次出现指定信息之前的位置为止的信息,以及,取出第一源程序内的、从被保存在指定信息保存部206的指定信息中的句号以外信息的出现位置开始,到下一次出现指定信息之前的位置为止的信息。在这里,指定信息是用户指定的字符串,例如包含“MOVE”、“CALL”等指令字或句号的字符串。在此,指令字还可以包含“IF”、“ELSE”等。另外,将用空格、句号断开的字符串即单词作为单位,进行指定信息的比较等。此外,在该取出处理中忽略换行符等,或者,在取出信息时转换为空格等即可。此外,可以将2个以上连续的空格等,只保留一个空格,其余都删除。也可以是,在进行该取出处理之前,如上所述地预先执行将换行符等替换为空格的处理等。取出单元20301按照该规则取出转换单位信息的处理,例如可以通过执行程序等进行。该程序预先被保存在未图示的存储器等即可。

例如,通过遵照这样的规则,对于在图14中用虚线表示的每个转换单位信息,由取得单元20301从第一源程序的开头位置起依次取出。

接着,指令模式信息构造单元20302将取得单元20301取出的转换单位信息转换成比较指令模式信息。在具体例子中,将取得单元20301取出的转换单位信息依次变更为比较指令模式信息。在此,以图14所示的转换单位信息1401转换为比较指令模式信息的情况为例,说明向比较指令模式信息变更的处理。

图15是用于管理被保存在用户指定字保存部211的用户指定字的用户指定字管理表。用户指定字管理表具有“ID”和“用户指定字”这样的属性。“ID”是识别记录的信息,是在表管理中被利用的信息。“用户指定字”是用户指定字。“用户指定字”是指定不替换为转换字的第一源程序上的字符串的信息。

图16是管理被保存在转换字保存部205的转换字和与该转换字对应的转换规则的转换字管理表。转换字管理表具有“ID”、“转换条件”和“转换字”这样的属性。“ID”是识别记录的信息,是表管理中被利用的信息。“转换条件”是表示用于决定转换为转换字的字符串的条件或规则的信息。“转换字”是用于对符合“转换条件”的字符串进行替换的字符串。“转换条件”是成为检索关键字的线索字符串,和表示相对于该字符串的、成为转换对象的字符串的位置的信息之组合,线索字符串和表示位置的信息用“,”断开。但是,当线索字符串自身成为转换对象的字符串的情况下,就省略了“,”和表示位置的信息。线索字符串只要是能够用作字符串的检索关键字的信息即可,也可以是指定特定的字符串、字符串的属性或字符串的长度的信息。此外,表示位置的信息,用“前”、“后”等表示相对于线索字符串的相对位置的信息表示。例如,如果将一个字符串的单位理解成用空格、句号、换行符等控制标记断开的字符集,则符合ID为R001的转换条件“PROGRAM-ID,后”时的转换是指,将转换单位信息中的字符串“PROGRAM-ID”之后的用空格断开的字符串,转换为同一记录的转化用字即字符串“程序名”。此外,R004的转换条件表示的转换是,检索转换单位信息中的字面量字符,将检索出的字面量字符转换为字符串“字符常数”。在此,预先定义了被“”号围起来的字符串是字面量字符串。而且,也可以是,例如转换条件同用于判断转换条件的条件式等相对应,根据转换单位信息的字符串是否满足该条件式等,来判断是否符合条件。可以事先对每个转换条件指定在符合2个以上转换条件的情况下,优先采用哪个转换条件,也可以按照ID的号码顺序指定。另外,也可以对转换条件指定成为例外处理的条件。例如,根据刚刚出现的转换单位信息,可以变更规定的转换条件是否有效。

首先,指令模式构造单元20302从开头位置起依次取出转换单位信息中用空格断开的字符,判断是否与图13所示的被保存在指定信息保存部206的指定信息的某一个相一致。然后,当与某个一致的情况下,将该字符串决定为转换对象外的字符串,仍然保留。另外,与哪个都不一致的情况下,判断是否与图15所示的被保存在用户指定字保存部211的某一个用户指定字相一致。当一致的情况下,将该字符串决定为转换对象外的字符串,仍然保留。另外,与哪个都不一致的情况下,将该字符串判断为可成为转换对象的字符串。接着,将转换单位信息中可成为转换对象的字符串中的、符合图16所示的转换条件的字符串,替换成与转换条件对应的字符串即转换字。并且,仍然保留可成为转换对象的字符串中的不符合转换条件的字符串。由此,只将转换单位信息的、符合与转换字对应的转换条件的字符串中用户指定字以外的字符串,转换为转换字,从而,可构造比较指令模式信息。其中,关于该转换处理的步骤,只要其结果能得到相同的处理结果,则处理的顺序等可以变更。

例如,以图14的转换单位信息1401、即[CALL“AAA”USING AAAIOX-PCB 1]为例进行说明。

关于CALL,其与图13的指定信息管理表的ID为C5004的指定信息一致,因此被判断为指定信息,作为转换对象外不进行转换而保留。

接下来的“AAA”,同指定信息和用户指定字的哪一个都不一致,因此被判断为可成为转换对象的字符串,由于该字符串是被“”号围起来的字面量字符,所以被判断为符合图16所示转换字管理表的ID为R004的转换条件即“字面量字符”的字符串,被替换成作为同一记录的转换字的“字符常数”。

关于“USING”,同指定信息和用户指定字的哪一个都不一致,另外,也不符合通过转换字管理表进行管理的任何转换条件,因此不进行替换,仍然保留。

关于“AAA”,同指定信息和用户指定字的哪一个都不一致,因此被判断为可成为转换对象的字符串,由于该字符串与图16所示转换字管理表的ID为R007的转换条件即“AAA”一致,所以被判断为符合转换条件的字符串,被替换成作为同一记录的转换字的“字符常数”。

关于“IOX-PCB”,其与指定信息不一致,但是与图15所示的用户指定管理表的ID为U0001的用户指定字一致,因此被判断为用户指定字,作为转换对象外部进行转换而保留。

关于“1”,同指定信息和用户指定字的哪一个都不一致,因此被判断为可成为转换对象的字符串,由于该字符串是数字,所以被判断为符合与图16所示转换字管理表的ID为R005的转换条件即“数字”,被替换成作为同一记录的转换字的“号码”。

进行了如上所述的适当转换的结果,利用转换单位信息1401构造了[CALL“字符常数”USING数字项目IOX-PCB号码]这样的比较指令模式信息。

接着,模式比较单元20303判断指令模式构造单元20302构造的比较指令模式信息,是否与图11所示的被保存在模式信息保存部201的第一指令模式信息的某一个相一致。比较指令模式信息与第一指令模式信息的比较,通常是根据是否完全一致来判断的。但是,也可以在是否一致的判断中忽略空格或换行符等控制码。而且,模式信息与模式信息的比较方式,在例如比较字符串与字符串的技术等中是公知技术,因此省略详细的说明。

在此,假设比较指令模式信息的[CALL“字符常数”USING数字项目IOX-PCB号码]同任何第一指令模式信息都不一致。该情况下,模式存储部204将不一致的比较指令模式信息作为新的第一指令模式信息存储到模式信息保存部201。例如,该新的第一指令模式信息作为ID为P800100的第一指令模式信息被存储。在后面描述新存储的第一指令模式信息的显示例。

此外,对应模式存储部208取得对新追加到模式信息保存部201的第一指令模式信息新赋予的、图11所示的第一指令模式信息的ID属性值即识别信息,并且,在被保存在对应模式保存部214的第一源程序内的、与配置有作为新追加的第一指令模式信息之源的转换单位信息的位置相对应的位置,在这里是在配置有该转换单位信息的源程序的行中设置的注释区域,存储新追加的第一指令模式信息“P800100”。例如,根据COBOL等程序设计语言,可以将各行的指定段以后的区域作为注释区利用。此外,通常在一行中不会配置多个转换单位信息,因此,通过在配置有转换单位信息的行的注释区域记录第一指令模式信息的ID即P800100,能够立即检测出各转换单位信息所对应的“第一指令模式信息”。

图17示出存储了将保存在对应模式保存部214的第一指令模式信息对应起来的信息的第一源程序的一个例子。在此,例举了将70段至80段之间作为注释区域1701的例子。

再者,各程序对应模式存储部209把将新追加的第一指令模式信息的识别信息“P800100”和成为分析对象的第一源程序的识别信息对应起来的信息、即各程序对应模式信息,存储到各程序对应模式保存部215。在此,成为分析对象的第一源程序的识别信息例如是“PGID001”。另外,在各程序对应模式信息中,将新追加的第一指令模式信息的识别信息和配置有作为新追加的第一指令模式信息之源的转换单位信息的第一源程序的行号(当转换单位信息占用多行时,是先头行等代表多个行的行号)对应起来存储。

图18示出各程序对应模式信息的一个例子。各程序对应模式信息具有“源程序ID”、“模式ID”和“行”这样的属性。“源程序ID”是成为分析对象的第一源程序的识别信息。“模式ID”是新追加的第一指令模式信息的识别信息,即判断为被包含在第一源程序中的第一指令模式信息的识别信息。“行”是配置有作为新追加的第一指令模式信息之源的转换单位信息的行号,即第一源程序内的、配置有与第一指令模式信息对应的转换单位信息的行号。

此外,模式出现状况存储部207取得作为被判断成不一致的比较指令模式信息之源的转换单位信息,在模式出现状况保存部213存储将该转换单位信息和表示没有与该转换单位信息对应的第一指令模式信息的信息(在此是字符串“else”)对应起来的模式出现状况信息。

另一方面,当判断为比较指令模式信息与任何第一指令模式信息都不一致的情况下,模式存储部204不进行该比较指令模式信息的存储。例如,假设得到了比较指令模式信息“PROGRAM-ID变量”。该情况下,如图11的指令模式信息管理表所示,在模式信息保存部201中,作为ID为P800001的第一指令模式信息,已经保存了“PROGRAM-ID变量”这样的第一指令模式信息,因此,判断为该第一指令模式和比较指令模式信息一致。所以,该比较指令模式信息不保存在模式信息保存部201。

此外,对于被判断为一致的第一指令模式信息,对应模式存储部208取得识别信息、例如上述一致的第一指令模式信息的ID即P800001,并存储到被保存在对应模式保存部214的第一源程序内的、在配置有作为判断成一致的比较指令模式信息之源的转换单位信息的行中设置的注释区域等。

再者,各程序对应模式存储部209在各程序对应模式保存部215中存储将一致的第一指令模式信息的识别信息、配置有作为一致的比较指令模式信息之源的转换单位信息的第一源程序的行号、和成为分析对象的第一源程序的识别信息“P800001”对应起来的信息,即各程序对应模式信息。

另外,模式出现状况存储部207从第一源程序中取得作为被判断成一致的比较指令模式信息之源的转换单位信息,并且,在模式出现状况保存部213存储将该转换单位信息和被判断为一致的第一指令模式信息对应起来的模式出现状况信息。例如,假设作为被判断成一致的比较指令模式信息之源的转换单位信息是“PROGRAM-ID PGID001”,则模式出现状况存储部207在模式出现状况保存部213中存储将该转换单位信息和被判断为一致的第一指令模式信息“PROGRAM-ID变量”对应起来的模式出现状况信息。

对第一源程序的转换单位信息重复执行以上处理,在对第一源程序的所有转换单位信息进行的处理结束的时刻,结束处理。

此外,当用户发出了输出模式存储部204、模式出现状况存储部207、对应模式存储部208、或者各程序对应模式存储部209等存储的信息中的至少一个的指示的情况下,读取被保存在模式保存部201、模式出现状况保存部213、对应模式保存部214、或者各程序对应模式保存部215等的信息,通过监视器或打印机输出。

图19示出在监视器(未图示)上显示了包含模式存储部204新存储的第一指令模式信息的、被保存在模式信息保存部201的模式信息时的显示例子。在该图中,例如ID为P800100的是新追加的第一指令模式信息。

此外,图20示出存储在模式出现状况保存部213的模式出现状况信息的显示例子。模式出现状况信息作为具有“行”、“转换单位信息”、“第一指令模式信息”这样属性的信息进行管理,如图20所示地进行列表化显示。

而且,也可以在本实施方式的程序模式分析装置10中设置未图示的累计部,由该累计部利用模式出现状况信息或各程序对应模式信息,对相同的第一指令模式的出现次数进行累计,将其累计结果从输出部216输出。例如,可以利用图20所示的模式出现状况信息,只将“第一指令模式信息”的值为“else”的记录进行列表化并输出。

此外,也可以是,在图20所示的模式出现状况信息等中,当不一致时,将“else”的信息作为“第一指令模式信息”的值进行保存,但在上述各实施方式中,在模式出现状况信息或其管理表中还设置了用于保存表示转换单位信息同任何第一指令模式信息都不一致的信息、即所谓标志等的一个列,当比较部203判断为一个转换单位信息同任何第一指令模式信息都不一致的情况下,设置用于表示不一致的例如“1”等标志,作为该转换单位信息的表示不一致的列的值,并且,第一指令模式信息的列设置成空白。

在此,说明指令模式构造单元20303将转换单位信息转换成比较指令模式信息的其它例子。

首先,如图21(a)所示,假设取得单元20301从第一源程序中取出[09CW-DAISET PIC X(1)]这样的转换单位信息。

指令模式构造单元20302对该转换单位信息适当地进行如上所述的转换等,构造比较指令模式信息。在此,假设“PIC”是用户指定字,其他的转换单位信息的任意字符串既不是指定信息,也不是用户指定字。

首先,最初的字符串“09”是数字,符合转换字管理表的“数字”这样的转换条件,所以,指令模式构造单元20302将该字符串转换成符合“数字”这样的转换条件的所谓“号码”字符串。

接着,指令模式构造单元20302将转换成该“数字”的字符串的、其后面的字符串“CW-DAISET”判断为符合转换字管理表中的、“号码:后”即“紧随作为号码的字符串后面的字符串”这样的转换条件,将其转换成与该转换条件对应的所谓“变量”的字符串。

接着,指令模式构造单元20302对字符串“PIC”进行处理,由于是用户指定字,将其保留。

另外,对于紧随字符串“PIC”后面的字符串“X(1)”,判断为符合转换字管理表中的“PIC:后”即“紧随字符串PIC后面的字符串”这样的转换条件,将其转换成与该转换条件对应的所谓“英数字项目”的字符串。由此,如图21(b)所示,[09CW-DAISET PIC X(1)]这样的转换单位信息,被转换为[号码变量PIC英数字项目]这样的比较指令模式信息。

此时,假设对字符串“PIC”设定了“将与之前出现的字符串相同的字符串,从下次转换开始替换为‘英数字项目’”这样的暂时的转换条件。该情况下,位于字符串“PIC”之前的字符串“CW-DAISET”,作为与转换字“英数字项目”对应的转换条件,被暂时存储到存储器等。该转换条件作为转换字管理表的一个记录被利用。

接着,如图21(c)所示,取出了转换单位信息[IF CW-DAISET=“A”]。在此,“IF”是指定信息,假设其它的转换单位信息的哪个字符串都既不是指定信息,也不是用户指定字。

“IF”是指定信息中的一个,指令模式构造单元20302不进行转换而保留。对于“CW-DAISET”,如上所述地与表示暂时转换条件的字符串“CW-DAISET”一致,因此,被转换成符合该转换条件的转换字即“英数字项目”。而且,假设这样的暂时转换条件是比其它转换条件优先进行判断的转换条件。此时,如果不设定如上所述的暂时的转换条件,则该字符串不符合任何转换条件,依旧作为“CW-DAISET”保留下来。“=”是保留字,所以不进行转换而保留。另外,判断为“A”是被“”号围起来的字面量字符,将其转换成“字符常数”。图21(d)示出转换结果的比较指令模式信息。

接着,如图22(a)所示,假设取得单元20301从第一源程序取出转换单位信息[01C-DATAYMD]。

指令模式构造单元20302对该转换单位信息适当地进行如上所述的转换等,构造比较指令模式信息。在此,假设“01”是用户指定字,其他的转换单位信息的任意字符串既不是指定信息,也不是用户指定字。

首先,最初的字符串“01”是用户指定字,所以,指令模式构造单元20302不对其进行转换而保留。

接着,由于紧随该“01”后面的字符串“C-DATYMD”既不是指定信息、也不是用户指定字,因此指令模式构造单元20302将其判断成可成为转换对象的字符串。对于该字符串“C-DATYMD”,指令模式构造单元20302判断为符合转换字管理表中的、“01:后”即“紧随字符串‘01’后面的字符串”这样的转换条件,将其转换成与该转换条件对应的所谓“集团项目”的字符串。从而,如图22(b)所示,转换单位信息[01C-DATAYMD]被转换成[01集团项目]这样的比较指令模式信息。

此时,假设对字符串“01”设定了“将与之前出现的字符串相同的字符串,从下次转换开始替换为‘集团项目’”这样的暂时的转换条件。该情况下,位于字符串“01”之后的字符串“C-DATYMD”,作为与转换字“集团项目”对应的转换条件,被暂时存储到存储器等。该转换条件作为转换字管理表的一个记录被利用。

接着,如图22(c)所示,假设取出了[CALL“JSDATC”USING C-DATYMD]这样的转换单位信息。在此,假设CALL是指定信息,“JSATC”是用户指定字,其他的转换单位信息的任意字符串既不是指定信息,也不是用户指定字。

由于CALL是指定信息中的一个,指令模式构造单元20302不进行转换而保留。“JSATC”也是用户指定字中的一个,所以指令模式构造单元20302也不进行转换而保留。而且,当“JSATC”不是用户指定字的情况下,该字符串是字面量字符,所以被转换成“字符常数”。

关于USING,它既不是指定信息、也不是用户指定字,也不符合与转换字对应的任何转换条件,所以仍然作为USING被保留。

关于C-DATYMD,由于与表示暂时转换条件的字符串“C-DATYMD”一致,所以其被转换成符合该转换条件的转换字即“集团项目”。而且,假设这样的暂时转换条件是比其它转换条件优先进行判断的转换条件。此时,如果不设定如上所述的暂时的转换条件,则该字符串不符合任何转换条件,依旧作为“C-DAIYMD”保留下来。图22(d)示出转换结果的比较指令模式信息。

如此地,可以根据转换单位信息中出现的信息的出现状况等,设定暂时利用的转换条件,例如可以将刚刚定义了值或条件等的函数名、变量名等,用与其它的函数名、变量名转换来的转换字不同的其它转换字来替换,可以在事后将转换模式细分为容易利用的形式,并进行登记。

而且,在上述具体例子中,在每次取得单元20301取得转换单位信息时,就进行比较部203的比较处理等,但也可以是,取得单元20301事先从第一源程序的全部或其一部分依次取得转换单位信息,为了将取得的转换单位信息个别地取出来,将各转换单位信息分别转换成一行的信息,或者,分别作为个别的记录进行数据库化。

另外,在上述具体实施例中,说明了利用转换单位信息构造比较指令模式信息,并且将该比较指令模式信息和第一指令模式信息进行比较的例子。但是,在本发明中,也可以是,将未变更为比较指令模式信息的转换单位信息、即未替换字符串的转换单位信息和第一指令模式信息进行比较之后,与上述的方法同样地将判断为不一致的转换单位信息转换为比较指令模式信息,将通过转换得到的比较指令模式信息作为第一指令模式信息存储。

如上所述,根据本实施方式,通过将同判断为与第一指令模式信息不一致的转换单位信息相对应的比较指令信息,作为第一指令模式信息进行存储,能够追加第一源程序的转换所必要的第一指令模式信息。其结果,根据该追加的第一指令模式信息,可以知道自动转换等所必要的第一指令模式信息。由此,例如可以向自动转换第一源程序的自动转换装置等指定如何转换第一源程序内的、与该第一指令模式信息对应的信息,可提高第一源程序的转换率。另外,根据新追加的第一指令模式等,可以对转换处理所必要的工时数等进行计数,还可以将新追加的第一指令模式指定为自动转换的对象,可以研究是进行自动转换、还是用手动进行转换等的转换计划。

另外,在本实施方式中,特别是将转换单位信息变更为比较指令模式信息,并且同第一指令模式信息进行比较,由此,根据变更比较指令模式信息时利用的规则的不同,可以例如还包含着变量等非保留字等的属性或数据类型进行与第一指令模式信息的比较,可以实现更高精度的比较。其结果,能够追加表示更细的转换条件的第一指令模式信息,可以进一步提高转换率。例如,与只比较转换单位信息的保留字或非保留字的排列的情况不同,可以根据转换单位信息内的变量等非保留字是具有怎样的属性等的信息、或者相对于其它指令字等具有怎样的位置关系等,转换为与其属性对应的转换字,并且同第一指令模式信息进行比较。这样,可以实现转换单位信息和第一指令模式信息的更细的比较,其结果,可以对第一源程序进行精度更高的转换。例如,即使存在包含数字的转换单位信息和该数字被替换为英数字的转换单位信息的情况下,不是把这些数字或英数字简单地替换为变量,而是把数字转换例如“号码”这样的转换字,把英数字转换成“变量项目”这样的转换字,采用了可以分别识别由各自的转换单位信息构成的比较指令模式信息的模式。

而且,也可以是,对于模式存储部204新存储的第一指令模式信息,可以通过未图示的接受部等,接受用于指定将与该第一指令模式信息对应的第一指令模式信息转换成怎样的指令模式信息的信息,并且将该信息和新的第一指令模式信息对应起来存储到模式信息保存部201。并且,也可以是,利用被存储的该信息,将成为转换对象的第一源模式的、与被保存在模式信息保存部201的第一指令模式信息一致的源代码,按照与该第一指令模式信息对应的模式进行自动转换。通过这样做,可以高效率且高精度地转换使用了与第一源程序相同的语言的源程序。

另外,根据本实施方式,将判断为与第一指令模式的某一个一致的第一源程序的源代码、即转换单位信息,和判断为一致的第一指令模式对应起来输出,并且,将判断为与第一指令模式不一致的第一源程序的比较单位信息。和表示没有一致的信息对应起来输出,从而,可以判断或确认在源程序的何处出现了怎样的第一指令模式。由此,在转换源程序时,可以适当地决定进行怎样的转换、源程序的移植需要多少工时数、或者要使用什么样的自动转换工具等。其结果,可以有效地进行源程序的转换。另外,还可以确认源程序内的转换单位信息和第一指令模式的对应关系是否合适。另外,可以掌握利用源程序的转换工具对源程序进行自动转换时的效果。

此外,本实施方式的模式分析装置通过掌握上述效果,在开发自动转换工具或者估算源代码的移植工时数时非常有效。

另外,本实施方式的模式分析装置可用于掌握源代码的标准化的程度,进一步,可以掌握源代码的品质。例如,在源代码中,当对应的第一指令模式较少的情况下,可以判断为没实现源代码的标准化。

另外,根据本实施方式,能够根据模式出现状况存储部207或各程序对应模式存储部209存储的信息的输出结果,来确认偏离了编程标准化的源代码,或者检查其出现频度。由此,例如可以掌握程序员的程序设计习惯或编程时的独特规则等,可以选择适当的转换方法,或者进行自动转换工具的开发。

再者,在本实施方式中,根据模式出现状况存储部207或各程序对应模式存储部209存储的信息的输出结果的、表示不存在对应的第一指令模式的信息,例如“else”,可以识别不存在对应的第一指令模式的源代码或其位置。由此,根据该源代码或其位置,可以掌握作为被保存在模式信息保存部201的第一指令模式以外的指令的模式,存在什么样的模式。由此,可以抽出认为作为第一指令模式新登记为佳的指令的模式,追加到第一指令模式,能够按照源程序使保存在模式信息保存部201的第一指令模式信息最佳化。如上所述,通过利用反馈了分析结果的第一指令模式信息再次进行与上述记载相同的分析,可以减少不存在对应的第一指令模式的源代码,能够更准确地分析应该进行什么样的转换等。

此外,在本实施方式中,利用保存在模式信息保存部201的指令模式信息进行源程序的分析,因此,通过变更被保存在模式信息保存部201的指令模式信息,能够进行将源程序变更为其它各种语言时的源程序分析,可获得较高的通用性。另外,通过追加、更新指令模式信息,可进行精度更高的分析。

另外,通过利用各程序对应模式存储部209存储的结果,累计并输出在源程序中出现的第一指令模式的出现次数,可以容易地知道哪个第一指令模式以怎样的频度出现,在转换源程序时,能够适当地判断进行怎样的转换、或者使用怎样的自动转换工具等。

在上述具体例子中,也可以是,输出部216从模式出现状况保存部213读取并输出同表示没有一致情况的信息对应起来存储在模式出现状况保存部213中的、第一源程序的转换单位信息。作为具体例子,可以是例如输出部216利用检索等,读取(即抽出)图20所示模式出现状况管理表的记录中的、“第一指令模式”属性的值是表示不存在对应的第一指令模式的值例如“else”的记录,并输出由抽出的记录构成的表。通过利用这样的信息,能够容易地掌握作为被保存在模式信息保存部201的第一指令模式以外的指令模式,还有什么样的模式。由此,能够容易且迅速地进行认为作为第一指令模式新登记为佳的指令模式的抽出,或者向第一指令模式追加所抽出指令的模式的工作。

另外,在上述实施方式中,各处理(各功能)可以由单一的装置(系统)集中处理而实现,或者,也可以由多个装置进行分散处理而实现。

另外,毋庸置疑,在上述各实施方式中,存在于一个装置中的2个以上通信单元(信息发送部等),可以在物力上由一个媒体实现。

此外,在上述实施方式中,与各结构要素执行的处理有关的信息,例如各结构要素接受、或取得、或选择、或生成、或发送、或接收的信息,或者各结构要素在处理中使用的阈值、数学式、或地址等信息,即使在上述说明中未明确记载的情况下,也可以暂时或长期保存在未图示的记录介质上。另外,可以由各结构要素或者未图示的存储部进行向未图示的记录介质上的信息存储。此外,还可以由各结构要素或未图示的读取部从未图示的记录介质中读取信息。

此外,在上述实施方式中,说明了程序模式分析装置是独立装置的情况,但是,程序模式分析装置可以是独立的装置,也可以是服务器·客户机系统中的服务器装置。当后者的情况下,输出部或接受部通过通信线路接受输入,或者输出画面。

另外,在上述各实施方式中,各结构要素可以由专用的硬件构成,或者,可以由软件实现的结构要素,可以通过执行程序来实现。例如,通过CPU等程序执行部读取并执行记录在硬盘或半导体存储器等记录介质中的软件/程序,可实现各结构要素。

而且,实现上述各实施方式涉及的程序分析装置的软件是如下所述的程序。即,该程序使计算机执行如下各单元的功能:模式信息存储部,可保存一个以上的第一指令模式信息;第一源程序接受部,接受第一源程序;比较部,从所述第一源程序中取出一个以上作为转换单位的信息的转换单位信息,并且将取出的各个转换单位信息和一个以上的已存储的第一指令模式信息进行比较,其中,该转换单位是转换所述第一源程序时的单位,该第一指令模式信息是表示第一源程序的指令模式的信息;以及模式存储部,将表示指令模式的信息、即比较指令模式信息,作为所述第一指令模式信息存储起来,其中,所述指令模式与被所述比较部判断为同所述第一指令模式信息的哪一个都不一致的所述转换单位信息相对应。

另外,本发明的程序模式分析装置是使计算机执行如下各单元的功能的程序:第一源程序接受部,接受第一源程序;比较部,从所述第一源程序中取出一个以上作为转换单位的信息的转换单位信息,并且将取出的各个转换单位信息和一个以上的已存储的第一指令模式信息进行比较,其中,该转换单位是转换所述第一源程序时的单位,该第一指令模式信息是表示第一源程序的指令模式的信息;模式出现状存储部,将所述比较部判断为与所述第一指令模式信息的某一个相一致的所述转换单位信息和被判断为一致的第一指令模式信息对应起来存储,并且,将判断为同所述第一指令模式信息的哪一个都不一致的所述转换单位信息和表示没有一致的情况的信息对应起来存储。

并且,在上述程序中,上述程序实现的功能中不包含只能由硬件实现的功能。例如,取得信息的取得部、输出信息的输出部等的只能用调制解调器、接口卡等硬件实现的功能,不包含在上述程序所实现的功能中。

此外,执行该程序的计算机可以是单个,也可以是多个。即,既可以集中处理,或者,也可以分散处理。

图23是表示执行上述程序来实现上述实施方式涉及的程序模式分析装置的计算机的一个外观例子的示意图。上述实施方式由计算机硬件和在该计算机上执行的计算机程序来实现。

图23中,计算机系统500具备包括CD-ROM驱动器505、软磁盘驱动器506的计算机501,键盘502,鼠标503和监视器504。

图24是表示计算机系统的图。图24中,计算机501除了具备CD-ROM驱动器505、软磁盘驱动器506之外,还具备MPU(微处理器)511,用于存储引导(BootUp)程序等程序的ROM(只读存储器)512,与MPU511连接且暂时存储应用程序的指令、并且提供暂时存储空间的RAM(随机访问存储器)513,存储应用程序、系统程序及数据的硬盘514,将MPU511、ROM512等相互连接的总线515。计算机501也可以包含提供对LAN的连接的未图示的网卡。

使计算机系统500执行上述实施方式涉及的程序模式分析装置的功能的程序,可以存储在CD-ROM521或软磁盘522中,并且插入到CD-ROM驱动器505或软磁盘驱动器506,并且被传送到硬盘514。也可以用其它方式来代替,即该程序通过未图示的网络发送给计算机501,并存储到硬盘514中。程序在执行时被装载到RAM513。程序也可以从CD-ROM521、FD522或网络直接装载。

程序不必一定要包含使计算机501执行上述实施方式涉及的程序模式分析装置的功能的操作系统(OS)或第三方(third-party)程序等。程序也可以只包含在被控制的状态下调用适当功能(模块)以得到期望结果的指令部分。计算机系统500如何工作是公知技术,省略详细说明。

本发明不限定于以上的实施方式,可以进行各种变更,毋庸置疑,这些变更的结构也被包含在本发明的范围内。

如上所述,本发明涉及的程序模式分析装置可用作分析源程序的装置等,特别是,作为分析在第一源程序中包含的指令模式中的、需要转换的指令的模式的出现状况,并且利用分析结果提高源程序的转换率的装置等,是有用的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号