程序生成装置、方法及程序制造方法及图纸

技术编号:2866739 阅读:142 留言:0更新日期:2012-04-11 18:40
一种程序生成装置,其特征在于:具备:    接收装置,接收指定应生成程序的多个程序结构的第1脚本;和    脚本生成装置,生成记述所述第1脚本指定的多个程序结构中彼此不同的1个程序结构的多个第2脚本。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及一种自动生成程序的程序生成装置,尤其是涉及一种生成用于验证编译器(compiler)等语言处理装置的动作的源程序来作为检测程序的程序生成装置。
技术介绍
现有的程序生成装置例如公开在特开平5-342054号公报中。该现有技术是生成用于验证编译器等语言处理处理器的动作的测试程序的程序生成装置,事先准备多个表示程序中的控制结构的结构数据,作为模板,根据指定了1个以上模板的脚本(script)来生成测试程序。图1是表示上述现有技术中的结构数据例的图。如图所示,序号1的结构数据表示被称为重复执行的控制结构(1个LOOP结构)。序号20的结构数据在1个LOOP结构中,两个并行的LOOP结构成为嵌套。图2表示上述现有技术中的脚本及测试程序的一例。在图中,脚本2a指定两个序号1的结构数据即LOOP结构。根据该脚本2a来自动生成测试程序2b。测试程序2b为具有两个并行for语句的循环结构的程序结构。图3表示脚本及测试程序的另一例。该图的脚本3a各指定一个序号1的结构数据和序号20的结构数据。根据该脚本3a来自动生成测试程序3b。测试程序2b的程序结构为,具有for语句构成的两个并行循环结构,并在第2个循环结构中两个并行的循环结构成为嵌套。这样,现有的程序自动生成装置生成具有与脚本中指定的结构数据对应的控制结构的测试程序,编程器(progammer)也可仅描述指定结构数据的简单的脚本,以便降低记述测试程序细节的工作量。但是,根据现有技术中的程序自动生成装置,存在有为了生成具有多种程序结构的多个测试程序,编制脚本需要很大的工作量的问题。原因在于,由1个脚本生成的测试程序为1个,为了生成具有多种程序结构的多个测试程序,编程器需要制作相同数量的脚本。并且,也必需制作多个事先准备的结构数据。例如,为了验证编译器的动作,在进行生成具有多种程序结构的多个测试程序的随机测试的情况下,或在将特定控制结构(LOOP结构、if结构等)进行多种组合,需要测试程序的情况下,对不同的测试程序制作上述脚本需要很多工作量,上述现有技术在生成多种测试程序中不实用。
技术实现思路
本专利技术的目的在于提供一种程序生成装置,以少的工作量来实现生成具有多种程序结构的多个测试程序。本专利技术的另一目的在于提供一种程序生成装置,编程器可容易地确认测试程序的执行结果。为了实现上述目的,本专利技术的程序生成装置具备接收装置,接收指定应生成程序的多个程序结构的第1脚本;和脚本生成装置,生成记述所述第1脚本指定的多个程序结构中彼此不同的1个程序结构的多个第2脚本。根据该结构,程序生成装置由1个第1脚本生成多个第2脚本,所以编程器仅制作1个第1脚本即可,可以用少的工作量来实现具有多种程序结构的多个程序。这里,所述第1脚本通过表示应生成程序中的控制结构的多个组合方法来指定多个程序结构,所述各第2脚本记述唯一地组合控制结构的程序结构,所述脚本生成装置根据第1脚本中指定的组合方法,组合控制结构,从而生成所述多个第2脚本。根据该结构,第1脚本表示控制结构的多个组合方法,所以编程器可简单制作第1脚本。这里,所述控制结构最好是循环结构、if-then型分支结构、if-then-else型分支结构至少之一。另外,所述第1脚本,作为所述组合方法,表示将控制结构并行的组合方法和将控制结构成为嵌套的组合方法。另外,所述第1脚本可以包含应生成的程序数量的指定,所述脚本生成装置根据第1脚本中指定的多个程序结构,随机生成第1脚本中指定数量的第2脚本。根据该结构,程序生成装置生成指定数量的程序,所以编程器可使程序生成装置生成所需数量的程序。这里,程序生成装置还可具备程序生成装置,生成分别对应于由脚本生成装置生成的多个第2脚本的程序。根据该结构,通过接收装置、脚本生成装置、程序生成装置顺序联动,可从接收1个第1脚本开始依次生成多个第2脚本、多个测试程序。这里,所述第1脚本还具有参数,指示对程序中的多个部位设定特定的程序语句,所述脚本生成装置对于各第2脚本,将表示所述参数的标记赋予给多个部位,所述程序生成装置在对应于赋予给第2脚本的标记的位置的程序位置上,设定所述特定程序语句。另外,所述特定程序语句可以是输出字符串和变量之一的输出语句及具有数据依赖关系的赋值语句对中的一个。根据该结构,程序生成装置向应生成的程序中插入特定程序语句,所以在编译之后的程序执行中,通过执行特定程序语句(数据依赖关系、输出语句),可容易且更确实地进行编程器对编译器的动作验证。另外,本专利技术的程序生成方法、生成程序用的生成程序、脚本具有与上述一样的结构、作用及效果。附图说明图1是表示现有技术中的结构数据的图。图2是表示现有技术中的脚本与测试程序一例的图。图3是表示现有技术中的脚本与测试程序另一例的图。图4是实施例中的测试程序生成装置的外观图。图5是表示测试程序生成装置结构的功能框图。图6是表示HLSL例、MLSL例、程序例的图。图7是表示HLSL语法的说明图。图8是翻译部的更详细的功能框图。图9是表示参数读取处理的流程图。图10是表示控制结构生成处理的流程图。图11是表示具有if型控制结构的多个MLSL脚本生成处理的流程图。图12是表示完全树T的图。图13是表示对应于完全树T与部分树S1-S8的MLSL脚本的图。图14是表示具有if-then-else型的多个控制结构的MLSL脚本生成处理的流程图。图15是表示HLSL脚本与其完全树的一例的图。图16是表示部分树与MLSL脚本实例的图。图17是表示部分树与MLSL脚本实例的图。图18是表示部分树与MLSL脚本实例的图。图19是表示具有LOOP型控制结构的多个MLSL脚本生成处理的流程图。图20是表示附加信息生成处理的流程图。图21是表示附加信息设定例与测试程序例的图。图22是表示附加信息设定例与测试程序例的图。图23是生成部3的详细框图。图24是表示数据依赖设定处理的流程图。图25是表示比较位置设定处理的流程图。具体实施例方式说明本专利技术实施例的程序生成装置。图4是本专利技术实施例中的程序生成装置1的外观图。如图所示,程序生成装置1具备控制部1a、显示装置1b和输入装置1c。该硬件结构与一般的个人计算机或工作站一样。本专利技术的程序生成装置通过在上述硬件上执行记述其功能(或本专利技术的程序生成方法)的特定软件来实现。 图5是表示程序生成装置1的结构的功能框图。该图中,程序生成装置1具备翻译部2和生成部3。翻译部2根据用高级脚本语言记述的1个文件,生成用中级脚本语言记述的多个文件。生成部3根据由中级脚本语言记述的各文件,生成1个测试程序。由此,编程器可以制作由高级脚本语言记述的1个文件,程序生成装置1可根据该文件生成多种具有多个程序结构的测试程序。下面,将高级脚本语言称为HLSL,将中级脚本语言称为MLSL。另外,将由HLSL记述的文件称为HLSL脚本,将由MLSL记述的文件称为MLSL脚本。图5中图示功能块的另外的HLSL脚本h1、n个MLSL脚本m1~mn、n个测试程序t1~tn。这里,HLSL脚本是对程序中的控制结构指定多个配置方法(或组合方法)的文件,总体表现由该多个配置(或组合)确定的多个程序结构。换言之,HLSL脚本表示多个控制结构的指定、和将该指定的控制结构配置在程序中本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:小川一高山秀一瓶子岳人赵琛
申请(专利权)人:松下电器产业株式会社
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1