CN1232212A - 程序设计支持方法以及程序设计支持设备 - Google Patents

程序设计支持方法以及程序设计支持设备 Download PDF

Info

Publication number
CN1232212A
CN1232212A CN99103489A CN99103489A CN1232212A CN 1232212 A CN1232212 A CN 1232212A CN 99103489 A CN99103489 A CN 99103489A CN 99103489 A CN99103489 A CN 99103489A CN 1232212 A CN1232212 A CN 1232212A
Authority
CN
China
Prior art keywords
function
file
rreturn value
prototype
program
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.)
Pending
Application number
CN99103489A
Other languages
English (en)
Inventor
青山彻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of CN1232212A publication Critical patent/CN1232212A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

在一种程序设计支持方法中,根据相关性文件,从所有多个源程序中提取一个关于函数定义部分中的函数登记的描述,将所述提取出的描述转变成一个原型说明格式下的描述,以生成一个外部原型说明定义文件,从所述外部原型说明定义文件中所描述的多个函数中,顺序地提取具有返回值的函数,根据所述相关性文件从所述多个源程序的调用部分中检测与所述提取出的函数同名的函数,并判断被检测到的函数返回值类型和用来保存返回值的变量类型。

Description

程序设计支持方法以及程序设计支持设备
本发明涉及一种程序设计支持方法以及一种程序设计支持设备,特别涉及一种在利用一个编辑程序来生成C语言的原型说明(prototypedeclaration)的情况下使用的程序设计支持方法及其程序设计支持设备。
在进行计算机程序设计时,通常将要制定的程序分成多个模块以使多个程序员共同承担一项工作并提高该程序的维护和工作效率。
将一个程序分成多个模块可导致在不同的模块中具有一个函数定义部分和一个函数调用部分。
存在于同一模块中的一个函数定义部分和一个函数调用部分启动一个程序翻译设备,如一个编译程序,直接从函数定义部分开始翻译函数调用部分。此外,通过比较该函数调用部分和函数定义部分,可以容易地发现函数返回值的类型、自变量的数量以及自变量的类型不一致的情况。
但是,当函数定义部分和函数调用部分分别存在于不同的模块中时,从函数调用部分直接查找函数定义部分就需要多个过程,因此是不切实际的。
C语言,一种近年来被广泛使用的程序设计语言,采用原型说明作为连接分别存在于多个模块中的函数调用部分和函数定义部分的手段。
在用于C语言中的原型说明中,将一行与函数定义部分的一个函数定义程序行相同的描述插入到一个包括函数定义部分在内的模块和一个包括函数调用部分在内的模块的开头部分。此处,函数定义程序行代表一个用于描述函数类型、函数名、多个自变量类型和自变量名称的描述程序行,而一行相同的描述代表一个描述程序行,用于描述同样于函数调用部分的函数类型和函数名称以及同一行中的相同数量的自变量。
为原型说明定义准备一个集中了原型说明行的文件并在每个模块的开头部分进行声明以便于使一个诸如编译器之类的程序翻译设备能够根据一个预处理程序控制指令“include”而接受这个外部原型说明定义文件也是常规手段。换言之,就是对原型说明进行描述,使得即使在函数定义部分和函数调用部分分别存在于不同的模块中时,诸如编译器之类的程序翻译设备也能够进行翻译。
图7中示出了按照日本专利公开文本No.平7-200309(文献1)中所述的常规程序设计支持方法而形成的一个程序文件示例。参照图7,所示的程序清单是包含一个原型说明行在内的外部原型说明定义文件的内容的示例。图中所示的外部原型说明定义文件80包括一个原型说明行81。
分别参照将函数定义部分和函数调用部分的内容示例作为程序清单表示出的图8A和图8B,图8A所示的一个程序文件90包含一个预处理程序控制指令91和一个函数定义部分92,而图8B所示的一个程序文件93包含一个预处理程序控制指令94和一个函数调用部分95。
根据预处理程序控制指令91和94,一个诸如编译器之类的程序翻译设备接受该外部原型说明定义文件80并将其分别内联(读)到程序文件90和93中。由于原型说明行81被读(内联)入程序文件90和93中,因而允许诸如编译器之类的程序翻译设备对分别存在于多个程序文件中的函数进行翻译。在这种情况下,原型说明行81应当与函数定义部分92和函数调用部分95在函数返回值类型、函数的自变量数目以及函数的自变量类型上相一致。
如上所述,在用于C语言中的原型说明中,特意对登记的函数类型(返回值类型)和该函数所用的自变量类型进行声明以实现程序翻译方面的最佳效果。此处,对于登记在多个分开的程序文件中的函数的使用以及登记的函数类型(返回值类型)和为函数所用的自变量类型,需要判断与用户侧(调用一个函数的用户)的匹配。
换言之,由于原型说明的特性,需要函数返回值类型与该函数定义部分的自变量数目和类型、函数返回值类型与该函数调用部分的自变量数目和类型以及函数返回值类型与原型说明的自变量数目和类型相一致。
第一个问题是在修改函数返回值类型和该函数定义部分的自变量数目及类型、函数返回值类型和该函数调用部分的自变量数目及类型以及函数返回值类型和原型说明的自变量数目及类型中的任意一个时,经常需要程序员手工编辑(改变)。
对于函数定义部分和函数调用部分,一般不太可能忘记由函数说明的改变或由添加一个新函数而引起的修改或登记操作。对于原型说明,虽然一个缺乏经验的C语言程序员特别注意到对函数定义部分和函数调用部分的修改/登记,但是他或她也可能忘记对原型说明进行修改或登记,因为原型说明的修改/登记与函数定义部分和函数调用部分的修改/登记之间没有直接的联系,导致编程效率下降。
第二个问题如下所述。如第一个问题中所提到的,对于函数定义部分和函数调用部分,不太可能忘记由函数说明的改变或由添加一个新函数而引起的任一部分的修改或登记操作。但是,在这种情况下,一个用以保存函数返回值的变量存在于一个函数调用部分中,如果函数返回值被改变,同样需要改变保存函数返回值的变量的类型。使这些类型一致的工作是由程序员本人经过修改而完成的。除此以外,直到诸如编译器之类的程序翻译设备输出一个警告,程序员才能意识到他犯了一个错误。
尽管由原型说明的特性而使得上述常规的程序支持方法和设备要求函数返回值类型与该函数定义部分的自变量数目和类型、函数返回值类型与该函数调用部分的自变量数目和类型以及函数返回值类型与原型说明的自变量数目和类型相一致,但是任何一个上述相应类型的改变总是需要程序员的手工编辑(修改),这导致了工作效率的下降。
此外,当一个用以保存函数返回值的变量存在于一个函数调用部分中时,如果函数返回值被改变,同样需要改变保存函数返回值的变量的类型并由程序员本人进行使这些类型一致的修改,从而使他或她非常可能犯错误。
还有一个缺点就是直到诸如编译器之类的程序翻译设备输出一个警告,程序员才能意识到他犯了一个错误。
本发明的第一个目的是提供一种减轻程序员的负担并具有高编程效率的程序设计支持方法及用于实现该方法的程序设计支持设备,该方法能根据函数定义部分自动生成一个原型说明,即能够恒定不变地维持原型说明和函数定义部分在函数类型(返回值类型)与该函数所使用的自变量类型上的匹配关系,并能够预先判断函数返回值的类型与用于保存函数返回值的变量类型之间的匹配关系。
依据本发明的第一方面,一种程序设计支持方法,其中根据一个表示多个分开的源程序的相关性的相关性文件(dependence file),将多个源程序等效于一系列程序进行处理,该方法包括如下步骤:
根据相关性文件,从所有的多个源程序中提取一个关于函数定义部分中的函数登记的描述,以及
将提取出的描述转变成一个原型说明格式下的描述以生成一个外部原型说明定义文件。
在最佳结构中,程序设计支持方法还包括如下步骤:
从外部原型说明定义文件中所描述的多个函数中,顺序地提取一个具有返回值的函数,并根据相关性文件从多个源程序的函数调用部分中检测一个与提取出的函数同名的函数。
在另一种最佳结构中,文件生成步骤包括:
打开多个源程序中的第一源程序的步骤,
逐行读取关于第一源程序的描述的步骤,
判定读取的描述是否与一个函数相对应的函数判断步骤,
当读取的描述与一个函数相对应时,提取出源程序中的一个函数行的函数行提取步骤,
将提取出的函数行变成原型说明格式的步骤,以及
将变成原型说明格式的函数登记到原型说明定义文件中的步骤。
在另一种最佳结构中,程序设计支持方法还包括如下步骤:
逐行读取关于外部原型说明定义文件的描述,
判断所读取的行中所述的函数是否具有一个返回值,
当判断出该函数具有一个返回值时,在源程序的函数调用部分中查找一个与具有返回值的函数同名的函数,
当存在一个同名函数时,判断是否具有一个用来保存返回值的变量,以及
当存在一个用来保存返回值的变量时,判断函数返回值的类型与用来保存返回值的变量类型是否相同。
在另一种最佳结构中,程序设计支持方法还包括如下步骤:
逐行读取关于外部原型说明定义文件的描述,
判断读出的描述是否对应于最后一行,
当该描述不是最后一行时,判断读出的行中所述的函数是否具有一个返回值,
当判断出该函数具有一个返回值时,读取相关性文件,
根据相关性文件,在源程序的函数调用部分中查找一个与具有返回值的函数同名的函数,
当存在一个同名函数时,判断是否具有一个用来保存返回值的变量,
当存在一个用来保存返回值的变量时,判断函数返回值的类型与用来保存返回值的变量类型是否相同,以及
当判断的结果是类型不一致时,产生警告。
在另一种最佳结构中,程序设计支持方法还包括如下步骤:
从外部原型说明定义文件中所描述的多个函数中,顺序地提取一个具有返回值的函数,
并根据相关性文件从多个源程序的函数调用部分中检测一个与提取出的函数同名的函数,以及
判断被检测到的函数返回值类型和用来保存一个返回值的变量类型。
依据本发明的第二方面,一种程序设计支持设备,用于根据一个表示多个分开的源程序的相关性的相关性文件(dependence file),将多个源程序等效于一系列程序进行处理,其中包括:
用于根据相关性文件,从所有的多个源程序中提取一个关于函数定义部分中的函数登记的描述的装置,以及
用于将提取出的描述转变成一个原型说明格式下的描述以生成一个外部原型说明定义文件的装置。
在最佳结构中,程序设计支持设备还包括:
用于从外部原型说明定义文件中所描述的多个函数中,顺序地提取一个具有返回值的函数的装置,以及
用于根据相关性文件,从多个源程序的函数调用部分中检测一个与提取出的函数同名的函数的装置。
在另一种最佳结构中,外部原型说明定义文件生成装置执行如下操作:
打开多个源程序中的第一源程序,
逐行读取关于第一源程序的描述,
判定读取的描述是否与一个函数相对应,
当读取的描述与一个函数相对应时,提取出源程序中的一个函数行,
将提取出的函数行变成原型说明格式,以及
将变成原型说明格式的函数登记到原型说明定义文件中。
在另一种最佳结构中,程序设计支持设备还包括:
用于逐行读取关于外部原型说明定义文件的描述的装置,
用于判断所读取的行中所述的函数是否具有一个返回值的装置,
用于在判断出该函数具有一个返回值时,在源程序的函数调用部分中查找一个与具有返回值的函数同名的函数的装置,
用于在存在一个同名函数时,判断是否具有一个用来保存返回值的变量的装置,以及
用于在存在一个用来保存返回值的变量时,判断函数返回值的类型与用来保存返回值的变量类型是否相同的装置。
在另一种最佳结构中,程序设计支持设备还包括:
用于逐行读取关于外部原型说明定义文件的描述的装置,
用于判断读出的描述是否对应于最后一行的装置,
用于在该描述不是最后一行时,判断读出的行中所述的函数是否具有一个返回值的装置,
用于在判断出该函数具有一个返回值时,读取相关性文件的装置,
用于根据相关性文件,在源程序的函数调用部分中查找一个与具有返回值的函数同名的函数的装置,
用于在存在一个同名函数时,判断是否具有一个用来保存返回值的变量的装置,
用于在存在一个用来保存返回值的变量时,判断函数返回值的类型与用来保存返回值的变量类型是否相同的装置,以及
用于在判断的结果是类型不一致时,产生警告的装置。
在另一种最佳结构中,程序设计支持设备还包括:
用于从外部原型说明定义文件中所描述的多个函数中,顺序地提取一个具有返回值的函数的装置,
用于根据相关性文件,从多个源程序的函数调用部分中检测一个与提取出的函数同名的函数的装置,以及
用于判断被检测到的函数返回值类型和用来保存一个返回值的变量类型的装置。
根据下面给出的详细描述,本发明的其它目的、特征及有益效果将更加清楚。
根据下面给出的详细描述和本发明最佳实施例的附图,能够更全面地理解本发明,但这并非是对本发明的限定,而只是为了对本发明进行解释和理解本发明之便。
在附图中:
图1是本发明涉及的程序设计支持设备的一个实施例的方框图;
图2是自动生成依据本发明的程序设计支持设备的一个外部原型说明定义文件的第一实施例的方框图;
图3A是示出了一个图1所示的一个相关性文件内容示例的程序清单;
图3B是示出了一个图1所示的该相关性文件内容示例的程序清单;
图4是示出了本发明第一实施例的操作的流程图;
图5是示出了涉及本实施例中的相关性文件处理的第二实施例的方框图;
图6是示出了本发明第二实施例的操作的流程图;
图7是示出了以常规程序设计支持方法而形成的外部原型说明定义文件的内容示例的程序清单;
图8A是示出了一个函数定义部分和一个函数调用部分的内容示例的程序清单;
图8B是示出了该函数定义部分和该函数调用部分的内容示例的程序清单。
下面将参照附图详细讨论本发明的最佳实施例。在下面的描述中,为了全面理解本发明,对多个具体细节进行了说明。但是,对于本发明所属技术领域的技术人员来说,在不对这些具体细节进行说明的前提下,显然也可以实施本发明。在其他示例中,为了避免使本发明含糊不清,而没有详细示出一些公知的结构。
参照将本发明的实施例作为一个方框图示出的图1,一个用于执行本实施例的程序设计支持方法的程序设计支持设备包括一个被分成了多个部分的程序文件组10,一个用于定义一个外部原型说明的定义文件20,一个表示相关性的相关性文件30,一个用于从程序文件组10中自动生成定义文件20的文件生成单元40,一个用于查找函数类型和用于保存函数返回值的变量的类型的查找单元50,一个用于判断函数返回值及用于保存该函数返回值的变量的类型判断单元60,以及一个用于显示一个用以通知程序员的结果的显示单元70。
下面,将参照图1描述本实施例的操作。
首先,表示相关性的相关性文件30指示将由多个分开的程序文件构成的组10最终组合成一个程序。根据该相关性文件30,文件生成单元40生成定义文件20。
文件生成单元40依据用以表示读出的程序文件的相关性的相关性文件30,从程序文件组10中查找一个用于将一个函数登记到每个函数定义部分中的描述,并将该描述转换成一个原型说明格式下的描述21以自动生成定义文件20。换言之,文件生成单元40从程序文件组10中自动生成定义文件20。
查找单元50在定义文件20中查找一个具有返回值(除“void”类型以外)的函数名并按照相关性文件30在程序文件组10中搜索一个与之同名的函数。
类型判断单元60根据查找单元50得到的搜索结果,判断(比较)一个函数的返回值类型和用以保存该函数返回值的变量的类型,并在它们彼此不同时,通过显示单元70将这个结果通知程序员。
接着,参照图2,详细说明自动生成定义文件20的操作,其中图2以方框图的形式对第一实施例进行了说明,第一实施例中包括文件生成单元40,用于根据本实施例,自动生成进行外部原型说明定义的定义文件20。
在一个程序文件11中登记了一个具有“int”类型(整型)及“char*”类型(字符型)自变量并且其返回值为“void”类型的函数“FUNC11”和一个具有“int”类型自变量并且其返回值为“void”类型的函数“FUNC12”。
同样,在一个程序文件13中登记了一个具有“int”类型及“char*”类型自变量并且其返回值为“long”类型(长整型)的函数“FUNC21”和一个具有“int”类型及“int”类型自变量并且其返回值为“int”类型的函数“FUNC22”。
同样,在一个程序文件15中登记了一个具有“short”类型(短整型)自变量并且其返回值为“void”类型的函数“FUNC31”和一个具有“int”类型及“char”类型自变量并且其返回值为“char”类型的函数“FUNC32”。
程序文件的相关性文件30指出程序文件11、程序文件13和程序文件15最终被组合成一个总程序并被读入用于自动生成定义文件20的文件生成单元40中。
文件生成单元40根据用于表示所读入的程序文件之间相关性的相关性文件30,从程序文件11、程序文件13和程序文件15中查找一个用于将一个函数登记到每个函数定义部分中的描述,并将该描述转换成原型说明的描述21,以自动生成定义文件20。
根据指令12、14和16「#include protype.h``」,该定义文件20被多个程序文件11、13和15中的预处理器控制行所接受。
依据上述第一实施例,即使一个用于将函数定义部分中的一个函数登记到程序文件11、13和15中的描述被改变,也可以在任何时刻从一个用于将函数定义部分中的一个函数登记到程序文件11、13和15中的描述中自动生成定义文件20。换言之,可以在任意时刻保持用于将函数定义部分中的一个函数登记到程序文件11、13和15的描述与定义文件20之间的匹配关系。
图3A和图3B各示出了由文件生成单元40从图2所示的程序文件11、13和15中自动生成的相关性文件30的示例。
图3A和3B分别示出的相关性文件31和32是由多个文件描述构成的文件,这些文件描述的组合生成了一个目标执行文件。
例如,相关性文件31中所述的是通过组合main.c、sub1.c和sub2.c而生成target.exe文件。这里所述的文件只是一个用于表示程序文件相关性的文件的例子,具有其它描述形式的相关性文件具有同样效果。
下面参照图4所示的流程图说明用于自动生成定义文件20的文件生成单元40自动生成定义文件20的过程。
首先,在步骤401的开始操作对程序文件的相关性文件30进行解释,从而使所有基于相关性文件30而彼此具有相关性的程序文件11、13和15达到逐个文件可读的状态(步骤402)。
接着,打开在相关性文件30的开头部分所描述的一个文件(步骤403)并读取该文件的第一行(步骤404)。
然后,判断读取行的内容是否与C语言或其他语言的一个函数行相对应(步骤405)。当该内容与一个函数行相关时,提取出全部函数定义行(步骤406),将提取出的行转换成原型说明的描述21(步骤407),在定义文件20中生成一个新行并将转换成原型说明的描述21的转换结果写到该新行中(步骤408)。
当在步骤405时,该内容与一个函数行以外的行相对应时,将不执行步骤406、407和408的处理。
此外,读取下一行的内容(步骤409)以判断文件是否结束(EOF:文件结束标志)(步骤410)。
如果不是EOF,则重复从步骤405开始的处理。如果是EOF,则准备根据相关性文件30读取下一个文件(步骤411)以判断是否存在下一个被读取的文件(步骤412)。
如果存在下一个被读取的文件,则返回步骤404以读出下一个文件的第一行并重复上述处理。另一方面,如果不存在下一个被读取的文件,则在步骤413结束处理过程。
提供上述功能的文件生成单元40可以在一个工作站或一台个人电脑上以运行的软件的形式实现。
如前所述,可以提供一种能够减轻程序员的负担并具有高开发效率的程序设计支持方法,这种方法能够根据一个函数定义部分自动生成原型说明,以在任意时刻使一个函数定义部分与一个原型说明在函数返回值、函数自变量数目以及函数自变量类型上相互匹配。
接着,参照图5详细描述在依据本实施例的程序设计支持设备中,与利用类型判断单元60处理表示相关性的相关性文件30相关的操作,其中类型判断单元60用于判断函数返回值的类型和用来保存函数返回值的变量的类型。
相关性文件30指出被分成多个部分的程序文件组10最终将被组合成一个程序。定义文件20是一个外部原型说明定义文件,包含如上所述从程序文件组10中提取出的原型说明格式的描述21。
查找单元50从外部原型说明定义文件20所述的函数中顺序提取一个具有返回值的函数。
然后,单元50依据相关性文件30,从程序文件组10中提取一个与从定义文件20中提取出的函数同名的函数。在提取出的函数调用部分,检查用来保存函数返回值的变量和函数返回值是否被代入并对用来保存代入的返回值的变量的类型进行检查。
在接收查找单元50所得到的检查结果并发现它们彼此不同的同时,类型判断单元60通过显示单元70将彼此不同的信息通知给程序员。
图6的流程图示出了利用查找单元50和用于自动生成定义文件20的类型判断单元60处理相关性文件30的过程。
参照图6,首先描述相关性文件30的处理操作。首先,在步骤601开始处理过程以读取定义文件20的第一行(步骤602)并判断文件是否结束(EOF)(步骤603)。
如果不是EOF,则判断是否存在一个返回值(步骤604)。如果是EOF,则从步骤604跳转到步骤613。当在步骤604没有返回值存在时,就返回步骤602。
当在步骤604存在一个返回值时,根据相关性文件30,读取程序文件组10中的第一程序文件(步骤605)。然后,在于步骤605中打开的文件的函数调用部分中查找一个与步骤604中具有返回值的函数同名的函数(步骤606)。
接着,判断该函数是否为同名函数(步骤607)以确定是否将一个返回值代入了一个用来保存函数返回值的变量中(步骤608)。
在步骤609和610,当在步骤607和608得到的结果为“是”时,判断函数返回值的类型与用来保存该返回值的变量的类型是否一致。
当它们彼此不同时,在步骤611向程序员发出一个类型不同的指示。当在步骤607和608得到的结果中有一个为“否”时,跳过步骤609、610和611的处理。
在步骤612和613,在同一程序文件中查找下一个函数调用部分以重复从步骤607-611的处理,直至遇到文件结束标志EOF为止。
在步骤613检测到EOF时,依据相关性文件30判断是否存在一个用以继续进行处理的被指定程序文件(步骤614)并且在存在该文件时,重复从步骤606到步骤613的处理。
如果不存在一个用以继续进行处理的被指定程序文件(步骤615),读取定义文件20的下一行(步骤616)以重复从步骤605到步骤616的处理。
如果定义文件20中不存在下一行时(步骤617),在步骤618完成整个处理过程。
通过在一个工作站或个人电脑上运行的软件实现这种判断函数返回值类型和用来保存该函数返回值的变量类型的功能。
如前所述,通过在由诸如编译器之类的程序翻译设备进行翻译之前,检查一个函数调用部分中的函数返回值类型和用来保存该函数返回值的变量类型并向程序员发出警告,而提供了一种具有高开发效率的程序设计支持方法。
尽管本实施例已经描述了利用C语言进行程序设计,但是通过用于其它高级语言的诸如编译器之类的程序翻译设备显然也能够得到相同的效果,其中所述的高级语言通过一个原型说明或类似装置来翻译函数。
如前所述,本发明的程序设计支持方法以及用于该方法的程序设计支持设备具有一个根据相关性文件,将一个用于在多个源程序文件中的每个函数定义部分中登记一个函数的描述转换成一个原型说明格式下的描述以建立一个外部原型说明定义文件的文件生成步骤。因此,通过利用文件生成单元直接从存在于多个源文件中的函数定义部分中生成一个C语言的原型说明要素,查找一个其返回值或自变量可能与一个函数定义部分的返回值或自变量不匹配的函数调用部分并通知程序员该函数调用部分中存在问题,可以在程序翻译过程中防止发生由于原型说明、函数定义部分和函数调用部分之间的不匹配而引起的错误,以减轻程序员的负担和减少由类型失配而引起的程序错误,从而提高该程序的可靠性。
尽管本发明已经对其实施例进行了详细的说明和描述,但是所属技术领域的技术人员应当理解在不偏离本发明构思和范围的前提下,可以对本发明进行前述和其它的修改、删节和添加。因此,不应将本发明理解为受上述具体实施例的限制,而是应当包括所有在由后面的权利要求所概括的保护范围内能够被实施的实施例。

Claims (12)

1.一种程序设计支持方法,其特征在于,其中根据一个用以表示多个分开的源程序之间的相关性的相关性文件,将所述多个源程序等效于一系列程序进行处理,该方法包括如下步骤:
根据所述相关性文件,从所有所述多个源程序中提取一个关于函数定义部分中的函数登记的描述,以及
将所述提取出的描述转变成一个原型说明格式下的描述以生成一个外部原型说明定义文件。
2.如权利要求1所述的程序设计支持方法,其特征在于,还包括如下步骤:
从所述外部原型说明定义文件中所描述的多个函数中,顺序地提取一个具有返回值的函数,以及
根据所述相关性文件从所述多个源程序的所述函数调用部分中检测一个与所述提取出的函数同名的函数。
3.如权利要求1所述的程序设计支持方法,其特征在于,
所述文件生成步骤包括:
打开所述多个源程序中的第一源程序的步骤,
逐行读取关于所述第一源程序的描述的步骤,
判定读取的描述是否与一个函数相对应的函数判断步骤,
当读取的描述与一个函数相对应时,提取出所述源程序中的一个函数行的函数行提取步骤,
将所述提取出的函数行变成原型说明格式的步骤,以及
将变成所述原型说明格式的所述函数登记到原型说明定义文件中的步骤。
4.如权利要求1所述的程序设计支持方法,其特征在于,还包括如下步骤:
逐行读取关于所述外部原型说明定义文件的描述,
判断该读取行中所描述的函数是否具有一个返回值,
当判断出所述函数具有一个返回值时,在所述源程序的函数调用部分中查找一个与所述具有返回值的函数同名的函数,
当存在一个同名函数时,判断是否存在一个用来保存返回值的变量,以及
当存在一个用来保存返回值的变量时,判断函数返回值的类型与用来保存返回值的变量类型是否相同。
5.如权利要求1所述的程序设计支持方法,其特征在于,还包括如下步骤:
逐行读取关于所述外部原型说明定义文件的描述,
判断所述读出的描述是否对应于最后一行,
当所述描述不是最后一行时,判断读取行中所描述的函数是否具有一个返回值,
当判断出所述函数具有一个返回值时,读取所述相关性文件,
根据所述相关性文件,在所述源程序的函数调用部分中查找一个与所述具有返回值的函数同名的函数,
当存在一个同名函数时,判断是否存在一个用来保存返回值的变量,
当存在一个用来保存返回值的变量时,判断函数返回值的类型与用来保存返回值的变量类型是否相同,以及
当所述判断结果是类型不一致时,发出警告。
6.如权利要求1所述的程序设计支持方法,其特征在于,还包括如下步骤:
从所述外部原型说明定义文件中所描述的多个函数中,顺序地提取一个具有返回值的函数,
并根据所述相关性文件从所述多个源程序的所述函数调用部分中检测一个与所述提取出的函数同名的函数,以及
判断所述被检测到的函数返回值类型和用来保存一个返回值的变量类型。
7.一种程序设计支持设备,用于根据一个用以表示多个分开的源程序(10)之间的相关性的相关性文件(30),将所述多个源程序等效于一系列程序进行处理,其特征在于,该设备包括:
用于根据所述相关性文件(30),从所有所述多个源程序(10)中提取一个关于函数定义部分中的函数登记的描述的装置(40),以及
用于将所述提取出的描述转变成一个原型说明格式下的描述以生成一个外部原型说明定义文件(20)的装置(40)。
8.如权利要求7所述的程序设计支持设备,其特征在于,还包括:
用于从所述外部原型说明定义文件(20)中所描述的多个函数中,顺序地提取一个具有返回值的函数的装置(50),以及
用于根据所述相关性文件(30),从所述多个源程序(10)的所述函数调用部分中检测一个与所述提取出的函数同名的函数的装置(50)。
9.如权利要求7所述的程序设计支持设备,其中
所述外部原型说明定义文件生成装置(40)
打开所述多个源程序(10)中的第一源程序,
逐行读取关于所述第一源程序的描述,
判定读取的描述是否与一个函数相对应,
当读取的描述与一个函数相对应时,提取出所述源程序中的一个函数行,
将所述提取出的函数行变成原型说明格式,以及
将所述变成原型说明格式的函数登记到所述原型说明定义文件(20)中。
10.如权利要求7所述的程序设计支持设备,其特征在于,还包括:
用于逐行读取关于所述外部原型说明定义文件(20)的描述的装置(50),
用于判断读取行中所描述的函数是否具有一个返回值的装置(50),
用于在判断出所述函数具有一个返回值时,在所述源程序的函数调用部分中查找一个与所述具有返回值的函数同名的函数的装置(50),
用于在存在一个同名函数时,判断是否具有一个用来保存返回值的变量的装置(60),以及
用于在存在一个用来保存返回值的变量时,判断函数返回值的类型与用来保存返回值的变量类型是否相同的装置(60)。
11.如权利要求7所述的程序设计支持设备,其特征在于,还包括:
用于逐行读取关于所述外部原型说明定义文件(20)的描述的装置(50),
用于判断所述读出的描述是否对应于最后一行的装置(50),
用于在所述描述不是最后一行时,判断读取行中所描述的函数是否具有一个返回值的装置(50),
用于在判断出所述函数具有一个返回值时,读取所述相关性文件的装置(50),
用于根据所述相关性文件(30),在所述源程序的函数调用部分中查找一个与所述具有返回值的函数同名的函数的装置(50),
用于在存在一个同名函数时,判断是否存在一个用来保存返回值的变量的装置(60),
用于在存在一个用来保存返回值的变量时,判断函数返回值的类型与用来保存返回值的变量类型是否相同的装置(50),以及
用于在所述判断结果是类型不一致时,发出警告的装置(70)。
12.如权利要求7所述的程序设计支持设备,还包括:
用于从所述外部原型说明定义文件(20)所描述的多个函数中,顺序地提取一个具有返回值的函数的装置(50),
用于根据所述相关性文件,从所述多个源程序的所述函数调用部分中检测一个与所述提取出的函数同名的函数的装置(50),以及
用于判断所述被检测到的函数返回值类型和用来保存一个返回值的变量类型的装置(60)。
CN99103489A 1998-02-26 1999-02-26 程序设计支持方法以及程序设计支持设备 Pending CN1232212A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP045655/98 1998-02-26
JP10045655A JPH11249875A (ja) 1998-02-26 1998-02-26 プログラミング支援方法及びその装置

Publications (1)

Publication Number Publication Date
CN1232212A true CN1232212A (zh) 1999-10-20

Family

ID=12725405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN99103489A Pending CN1232212A (zh) 1998-02-26 1999-02-26 程序设计支持方法以及程序设计支持设备

Country Status (4)

Country Link
US (1) US20020049698A1 (zh)
EP (1) EP0939366A3 (zh)
JP (1) JPH11249875A (zh)
CN (1) CN1232212A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446788A (zh) * 2014-08-20 2016-03-30 联想(北京)有限公司 一种信息处理方法及电子设备
US10966564B2 (en) 2016-08-03 2021-04-06 Koninklijke Douwe Egberts B.V. System for preparing a quantity of beverage suitable for consumption
US11096516B2 (en) 2016-08-03 2021-08-24 Koninklijke Douwe Egberts B.V. System, apparatus, method, capsule and kit of capsules for preparing a beverage
US11129493B2 (en) 2016-08-03 2021-09-28 Koninklijke Douwe Egberts B.V. System for preparing a beverage
US11129492B2 (en) 2016-08-03 2021-09-28 Koninklijke Douwe Egberts B.V. System for preparing a beverage
US11197574B2 (en) 2016-08-03 2021-12-14 Koninklijke Douwe Egberts B.V. System and method for preparing a beverage field and background
US11304555B2 (en) 2016-08-03 2022-04-19 Koninklijke Douwe Egberts B.V. System and apparatus for preparing a beverage
US11395557B2 (en) 2016-08-03 2022-07-26 Koninklijke Douwe Egberts B.V. Apparatus and method for preparing a beverage and system comprising the apparatus and an exchangeable capsule
US11576519B2 (en) 2016-08-03 2023-02-14 Koninklijke Douwe Egberts B.V. System, apparatus, method, capsule and kit of capsules for preparing a beverage
US11944230B2 (en) 2018-12-12 2024-04-02 Koninklijke Douwe Egberts B.V. Air purge groove

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799856B2 (en) 2007-06-12 2014-08-05 International Business Machines Corporation System and method for automatically declaring variables
WO2012012861A1 (en) * 2010-07-29 2012-02-02 Irdeto Canada Corporation System and method for efficiently deploying massively diverse program instances to resist differential attacks
US20130297755A1 (en) * 2010-11-23 2013-11-07 Nokia Siemens Networks Oy Network element configuration management
US20190391806A1 (en) * 2016-12-19 2019-12-26 Nippon Telegraph And Telephone Corporation Determination apparatus, determination method, and determination program

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446788A (zh) * 2014-08-20 2016-03-30 联想(北京)有限公司 一种信息处理方法及电子设备
CN105446788B (zh) * 2014-08-20 2019-01-11 联想(北京)有限公司 一种信息处理方法及电子设备
US10966564B2 (en) 2016-08-03 2021-04-06 Koninklijke Douwe Egberts B.V. System for preparing a quantity of beverage suitable for consumption
US11096516B2 (en) 2016-08-03 2021-08-24 Koninklijke Douwe Egberts B.V. System, apparatus, method, capsule and kit of capsules for preparing a beverage
US11129493B2 (en) 2016-08-03 2021-09-28 Koninklijke Douwe Egberts B.V. System for preparing a beverage
US11129492B2 (en) 2016-08-03 2021-09-28 Koninklijke Douwe Egberts B.V. System for preparing a beverage
US11197574B2 (en) 2016-08-03 2021-12-14 Koninklijke Douwe Egberts B.V. System and method for preparing a beverage field and background
US11304555B2 (en) 2016-08-03 2022-04-19 Koninklijke Douwe Egberts B.V. System and apparatus for preparing a beverage
US11395557B2 (en) 2016-08-03 2022-07-26 Koninklijke Douwe Egberts B.V. Apparatus and method for preparing a beverage and system comprising the apparatus and an exchangeable capsule
US11576519B2 (en) 2016-08-03 2023-02-14 Koninklijke Douwe Egberts B.V. System, apparatus, method, capsule and kit of capsules for preparing a beverage
US11944230B2 (en) 2018-12-12 2024-04-02 Koninklijke Douwe Egberts B.V. Air purge groove

Also Published As

Publication number Publication date
EP0939366A2 (en) 1999-09-01
JPH11249875A (ja) 1999-09-17
US20020049698A1 (en) 2002-04-25
EP0939366A3 (en) 2002-09-18

Similar Documents

Publication Publication Date Title
CN1232212A (zh) 程序设计支持方法以及程序设计支持设备
CN1244877C (zh) 结构化文件的信息提取方法、部分识别方法、部分选择提取方法及装置
CN1320485C (zh) 图像检索装置和图像检索装置的关键词赋予方法
CN100337235C (zh) 访问数据库的方法及装置
CN1242326C (zh) 程序对象的串行化和解串行的方法和设备
CN1896992A (zh) 基于应用定制解析xml文档的方法及装置
CN1172994A (zh) 文件检索系统
CN1901547A (zh) 生成web服务策略协议的方法和设备
CN1784680A (zh) 搜索条件的逐渐放宽
CN1664816A (zh) 实现不同平台间信息网站移植的方法
CN101042649A (zh) 一种配置信息处理方法及装置以及平台系统
CN1698533A (zh) 用于管理和显示医学图像的系统和方法
CN1197962A (zh) 语言识别装置、方法及存储语言识别装置程序的记录媒体
CN101055578A (zh) 基于规则的文档内容挖掘器
CN1556482A (zh) 一种用于实现数据库多表查询的数据处理方法
CN1877532A (zh) 编译装置
CN1811702A (zh) 开发门户应用和自动部署门户应用的系统和方法
CN1379882A (zh) 将二维数据转换为标准形式的方法
CN1716249A (zh) 延迟取出用户定义类型的指定成员的系统和方法
CN1650806A (zh) 图像处理装置及其控制方法
CN1415096A (zh) 语言翻译系统
CN1700201A (zh) 图像处理装置、图像处理系统、图像处理方法
CN1900910A (zh) 二进制翻译中经由跳转表的多目标分支语句的识别方法
CN1374623A (zh) 图像处理设备
CN1940921A (zh) 图片搜索方法及其装置

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: NEC ELECTRONICS TAIWAN LTD.

Free format text: FORMER OWNER: NIPPON ELECTRIC CO., LTD.

Effective date: 20030523

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20030523

Address after: Kanagawa, Japan

Applicant after: NEC Corp.

Address before: Tokyo, Japan

Applicant before: NEC Corp.

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1059203

Country of ref document: HK