本发明专利技术的目的在于提供一种编译系统、调试系统及程序开发系统,即使在进行源级的变换.优化时也可确保软件的调试容易,提高软件开发的方便性及开发效率。本发明专利技术的编译系统将高级语言描述的源程序翻译成机器语言程序,包括:源级优化器,通过对原始源程序进行源程序级的优化,将原始源程序变换成优化源程序;编译器,将优化源程序变换成机器语言程序;以及最终调试信息选择生成部,生成表示原始源程序和机器语言程序间的对应关系的最终调试信息。
【技术实现步骤摘要】
本专利技术是关于将用C语言等高级语言描述的源程序变换成机器语言程序的编译系统,进行机器语言程序验证的调试系统、以及包括编译系统和调试系统的程序开发系统。
技术介绍
迄今,作为在计算机上执行的机器语言程序的程序开发系统,提出了包括编译系统及调试系统的系统的方案。编译系统是通过在计算机上执行用C语言等高级语言描述的源程序变换成机器语言指令串的程序来实现的系统。调试系统是通过在计算机上执行接受机器语言程序作为输入并进行在该机器语言程序执行时的动作的控制及数据参照等、验证机器语言程序的妥当性的程序来实现的系统。在这样的程序开发系统中,编译系统生成调试信息,该调试信息表示源程序的行号和机器语言指令间的对应关系、及源程序中的符号名和机器语言数据间的对应关系。即,调试信息表示源程序和机器语言程序间的对应关系。而调试系统通过读入并且使用该调试信息,来实现可以由用户指定源级的信息进行调试的功能。另一方面,近些年来,为了满足在比现有编译系统中的中间代码级更高位级别上的优化功能的愿望、及确保保密性的愿望等,提出了各种将源程序暂时变换成别的源程序的源程序变换·优化方法(例如参照日本特公平6-80490号公报及日本特开2003-280754号公报)。由源程序变换·优化方法生成的源程序通过输入到与以往同样的编译系统中,由该编译系统变换成机器语言程序。使用上述源程序变换·优化方法时,当利用现有的程序开发系统时,由编译系统生成的调试信息是根据源级变换后的源程序。因此,用户不能根据原来本身描述的源程序进行源级的调试。这是因为,通过使用源程序变换·优化方法,源程序的行号错位,或者控制结构变化,或者函数名及变量名改变。为此,用户不得不或者根据由源程序变换·优化方法自动生成的源程序进行调试,或者对所生成的机器语言程序直接(在机器语言指令级别上)进行调试。因此,用户进行源程序的调试效率降低。为此,系统软件的用户需要手动进行试行错误来求取数据的配置等,存在需要大量系统软件开发工时的问题。
技术实现思路
本专利技术是为解决上述课题而提出的,其目的在于提供一种编译系统、调试系统及程序开发系统,即使在进行源级的变换·优化时也可确保软件的调试容易,提高软件开发的方便性及开发效率。为了达到上述目的,本专利技术的某一方面所涉及的编译系统将源程序翻译成机器语言程序,其特征在于,包括源程序变换单元,通过对高级语言描述的第1源程序进行源程序级的优化,将上述第1源程序变换成高级语言描述的第2源程序;编译单元,将上述第2源程序变换成机器语言程序;以及调试信息生成单元,通过参照上述第1源程序和上述第2源程序间的对应关系及上述第2源程序和上述机器语言程序间的对应关系,生成表示上述第1源程序和上述机器语言程序间的对应关系的第1调试信息。根据本构成,在调试时,通过利用第1调试信息,可以根据第1源程序进行调试。因此,可以提供即使在实施源级的变换·优化时也可确保调试容易并提高软件开发的方便性及开发效率的编译系统。最好,上述编译系统的特征在于,还包括预处理器单元,解释上述第2源程序中所包含的指示语句,对上述第2源程序执行基于解释后的结果的预处理;及指示语句删除单元,从上述第2源程序中删除在上述预处理器单元中所解释的上述指示语句中的、包含上述源程序变换单元中所增加的上述指示语句的行。根据该构成,在第2源程序中删除从第1源程序向第2源程序变换时增加的行。由此,就可以消除因增加行所产生的第1源程序和第2源程序间的行号的错位,可以确保第1源程序行号的行号和第2源程序的行号间的对应关系。因此,即使在实施源级上的变换·优化时也可以确保调试容易,提高软件开发的方便性及开发效率。最好是,其特征在于上述源程序变换单元具有行号维持变换部,该行号维持变换部在维持上述第1源程序的行号和上述第2源程序的行号间的对应关系的同时,将上述第1源程序变换成上述第2源程序。另外,其特征在于上述源程序变换单元还包括生成源变换调试信息的源变换调试信息生成部,该源变换调试信息集中了通过上述行号维持变换部进行源程序变换所产生的变更点。再有,其特征在于上述源变换调试信息包括上述第1源程序中所包含的变换对象位置的语句、及上述第2源程序中所包含的将该变换对象位置变换后的变换位置的语句。根据该构成,通过在调试时利用源变换调试信息,用户可以根据第1源程序进行调试。因此,即使在实施源级上的变换·优化时也可以确保调试容易,提高软件开发的方便性及开发效率。本专利技术的另一方面所涉及的调试系统对机器语言程序的调试进行支援,其特征在于,包括程序执行单元,执行机器语言程序,该机器语言程序是通过编译对高级语言描述的第1源程序进行优化后得到的高级语言描述的第2源程序来获得的;及调试支援单元,通过参照上述第1源程序和上述第2源程序间的对应关系及上述第2源程序和上述机器语言程序间的对应关系,接受表示第1源程序和上述机器语言程序间的对应关系的第1调试信息、及表示上述第2源程序和上述机器语言程序间的对应关系的第2调试信息,根据上述程序执行单元的执行结果、上述第1调试信息及上述第2调试信息,支援用户所进行的上述机器语言程序的调试。根据该构成,用户可以根据第1调试信息对第1源程序进行调试。因此,可以提供即使在实施源级上的变换·优化时也可确保调试容易并提高软件开发的方便性及开发效率的调试系统。最好,其特征在于上述调试系统还包括变换位置显示控制单元,显示上述第1源程序中所包含的变换对象位置的语句和上述第2程序中所包含的对该变换对象位置进行优化后的语句;选择受理单元,受理对上述变换对象位置的语句或上述变换位置的语句的某一方的选择;及简档信息生成单元,生成由上述选择受理单元受理的信息作为简档信息。另外,其特征在于上述简档信息生成单元还将由上述程序执行单元执行上述变换对象位置的语句或上述变换位置的语句时的执行周期数包含在上述简档信息中。根据该构成,在编译系统中,可以在变换对象位置及变换位置中选择执行周期小的进行编译。从而可以制作执行周期数小的机器语言程序。本专利技术的又一方面所涉及的程序开发系统根据源程序开发机器语言程序,其特征在于,包括上述编译系统及上述调试系统;上述调试系统还包括执行日志输出单元,该执行日志输出单元输出由上述程序执行单元执行上述机器语言程序时的执行日志;上述程序开发系统还包括分析器单元,该分析器单元对从上述调试系统输出的上述执行日志进行分析,输出作为上述编译系统中的优化用的提示的信息即简档信息;上述编译系统的上述源程序变换单元根据简档信息进行上述第1源程序的优化。根据该构成,可以通过简档单元连接编译系统和调试系统,使这些系统自动多次起动并渐渐变更机器语言程序。因此,可以使机械语言程序的优化自动化,将用户的机器语言程序的调谐所需的工时数抑制到最小限度,并可以自动选择决定最佳的机械语言程序。因此,可以提供即使在实施源级上的变换·优化时也可确保调试容易并提高软件开发的方便性及开发效率的程序开发系统。此外,本专利技术不仅可以实现具有这样特征的单元的编译系统、调试系统及程序开发系统,而且也可以实现以编译系统、调试系统及程序开发系统中所包含的特征的单元为步骤的编译方法、调试支援方法及程序开发方法,或者可以实现使计算机执行编译方法、调试支援方法及程序开发方法中所包含的特征步本文档来自技高网...
【技术保护点】
一种编译系统,将源程序翻译成机器语言程序,其特征在于,包括: 源程序变换单元,通过对高级语言描述的第1源程序实施源程序级的优化,将上述第1源程序变换成高级语言描述的第2源程序; 编译单元,将上述第2源程序变换成机器语言程序;以及 调试信息生成单元,通过参照上述第1源程序和上述第2源程序间的对应关系及上述第2源程序和上述机器语言程序间的对应关系,生成表示上述第1源程序和上述机器语言程序间的对应关系的第1调试信息。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:瓶子岳人,宫地凉子,道本昌平,川端辉雄,山本康博,
申请(专利权)人:松下电器产业株式会社,
类型:发明
国别省市:JP[日本]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。