混和计算机程序设计环境的制作方法

文档序号:6418904阅读:121来源:国知局
专利名称:混和计算机程序设计环境的制作方法
背景技术
和领域本发明涉及计算机程序设计语言环境,尤其它涉及用于简化编写和调试汇编语言程序的系统。
汇编语言程序设计对于编程过程中的代码编写和调试阶段均是一种尤其困难的任务。高级语言,如C++,能被用于编写根据与人类语言密切相关的抽象符号描述算法的程序。而另一方面,汇编语言本质上是机器的,它仅仅根据简单的微处理器指令描述算法。因此,汇编语言程序设计与用高级语言编写的程序相比通常冗长而且难于理解。
对于汇编语言程序设计,调试过程尤其困难。调试过程是测试计算机程序的错误(故障),这些错误导致程序给出与设计技术要求不相符的结果。错误可能源于作为编程基础的下面的算法的缺陷,或是源于算法的错误的执行。当出现这样的错误结果时,软件工程师们要找到包含这些错误的计算机程序段,并重编写。然后,工程师们再编译程序并测试。调试过程反复进行直到这些错误从程序中被除去。
对于汇编语言而言,调试过程相对困难,这是因为下面的算法被大量的特定的微处理器的机器指令所遮蔽,然而在高级语言中下面的算法易于分辨。而且,目前的汇编语言程序设计环境不能提供通常能在高级程序设计环境中找到的很多功能。例如,高级语言和程序设计环境具有许多功能用于存储于硬盘上的文件的处理。当程序被调试时,这些文件能用于存储程序得到的测试输出结果。
汇编语言程序的调试过程的另一个问题是每一种汇编语言都有其自己的一套调试程序,要求软件工程师们在一种新的微处理器被开发时,学习应用一种新的调试程序。
仿真器是检测汇编程序执行情况的最精确的工具,它是一种特殊的硬件设备,它与使用汇编语言的微处理器直接相连,以持续监测微处理器的输入输出状态。这种设备很昂贵,在微处理器开发的初级阶段不总是可得到,因而耽搁软件的开发。
欧洲专利申请90114711说明了一种特殊的开发计算机,它能用于将高级语言编写的控制程序翻译成机器语言,并将机器语言控制程序传递给开发微处理器。尽管这确实在一定程度上简化了开发过程,但是它并未提供在单一程序中既包括高级语言又包括汇编语言的程序的编写、测试和调试。另外,这种开发方式要求特殊的硬件和一个用于接口的额外的开发计算机。
一种更为有效的系统应要求较少的电子硬件。这种硬件一般在通用个人计算机上实现,以便公司能允许他们的员工使用和利用现有的个人计算机技术编写和调试汇编语言程序。一种更有效的系统也应让在有竞争力的高级程序设计语言市场上的工具能用在汇编语言程序设计中。
因此需求这样一种系统,它能将编写和调试的高级语言程序的轻松自如带入到汇编语言程序设计中。
发明概述本发明的目的是提供一种高度发展的汇编语言程序设计环境,它能简化汇编语言程序的编写和调试。该目的是通过提供一种混和程序设计环境实现的,该环境能够编辑既包含高级程序设计语言指令又包含汇编语言程序设计指令的程序。
根据本发明的教导,这里提供了一种简化汇编语言程序设计的系统,它由一种高度发达的混和程序设计环境所提供,该程序设计环境包含一个模块,它用于分析包含至少一种高级指令的输入混和源代码文件;一个函数库,用于从相应的高级指令中,定义混和源代码文件中的至少一种汇编指令;一个根据该库将高级指令翻译成机器语言指令的模块;和一个将翻译好的机器语言指令输出到目标文件中的模块。
根据本发明的教导,这里也提供了一种方法,它能够处理包含任意数量高级和汇编语言指令的混和源代码文件,它包括分析含有至少一种高级指令的输入混和源代码文件,将混和源代码文件中的汇编语言指令转换成高级语言指令,将高级语言指令翻译成机器指令,并编译翻译后的机器语言指令到目标文件中。
根据本发明的教导,这里也提供了一种方法,用于编写和调试汇编语言程序,包括编写含有至少一种高级指令的源代码文件;调试含有至少一种高级指令的源代码文件;用汇编语言指令替换源代码文件中的高级指令;并调试产生的包含高级和汇编语言指令的混和源代码文件。
附图简述本文中的发明仅仅通过实例的方式来参考了相应的


,其中图1是说明本发明提供的汇编语言程序设计过程中的步骤的方框图。
发明简述本发明中,程序员首先使用高级编译器和程序设计环境编译和调试用高级语言编写的程序。程序员调试高级程序代码直到程序员满意生成的高级代码。程序员逐渐将高级指令替换成汇编语言指令,并调试结果,直到所有的高级语言指令被汇编语言指令所替代。
本发明中的混和程序设计环境是一种由函数库提供的高级语言编译器,函数库模拟汇编语言指令。这些函数被写成编译器的标准高级语言指令组,因此能与标准高级语言指令同时使用。本发明提供的特定函数库中的函数仿真汇编语言指令的执行。通过将库增加到能够被编译器识别的库列表中,库即能和其他库一起被编译器利用,而不需要特定的硬件。
计算机程序员通过将由高级程序设计语言指令编写的程序输出到计算机文件中而开始程序设计过程。此文件被称作源代码。然后,程序员应用标准高级程序设计语言编译器编译源代码。校正完错误后,程序员再次编译源代码。这一过程反复进行直到得到编译好的文件。
这时,程序员使用标准连接器连接编译好的文件,产生可执行程序。程序员测试这一程序以便与设计要求一致。通过修改源代码程序员纠正背离设计要求任何偏差,然后重复编译和连接步骤。程序员重复该过程直到程序员满意源代码能正确地实现设计要求。
程序员用汇编语言指令替换某些高级语言指令,得到既包含高级语言又包括汇编语言代码的混和源代码。通过使用特殊的函数库,程序员可以编译和连接混和源代码。此函数库允许编译器编译汇编语言指令和高级指令。在测试了结果可执行程序后,程序员对引入到混和源代码中的汇编语言指令进行必要的修改,并重复编译和连接步骤。
用此种方法,程序员逐渐将所有的高级语言指令替换成汇编语言指令。
此过程的最后步骤中,程序员针对当时的微处理器通过使用当时标准汇编器汇编和调试汇编语言程序。
最优实施方案说明本发明是一种混和程序设计环境,它让程序员能够编写既包含高级语言又包含汇编语言指令的程序。
根据本发明,混和程序设计环境的原理和执行可以通过参考附图和相应的说明来更好地理解。
现在,参考附图,图1示出本发明使用在高级和汇编语言混和程序设计过程中。
块10-40代表现有技术。它们表示传统的高级计算机语言程序设计过程,其中程序员编写高级源代码程序,并使用传统的高级语言编译器和程序设计环境来编译和调试源代码,得到调试后的高级源代码程序。
块10代表程序员用高级程序设计语言(如C和C++)编写的程序,它用于实现所期望的程序下面的算法。该程序被称为源代码。
块20代表编译器和程序设计环境,程序员用它编译和调试块10代表的高级源代码程序。它可以是标准编译器和程序设计环境,或者是本发明提供的编译器和程序设计环境。在任何一种情形下,编译器和程序设计环境可以是用在标准个人计算机上进行软件开发的普通软件工具。
编译器包含工业标准函数库,和其他由程序员购买或定义的特殊库。例如,一种特殊库可能包括用于程序设计文字处理软件的函数。这种库将包括能实现在一页的各个方向上显示字符和文字,或在文件中查找文字,或更正文件中的文字拼写的函数。
编译器是一种程序,能一行一行的读取源代码文件,将每条指令翻译成汇编语言指令。然后,编译器将这些汇编语言指令放到一个称作目标文件的文件中。编译器产生的汇编语言指令要与开发个人计算机中的微处理器相匹配。
显然,连接器,程序设计环境的另一部分,被用于从编译器产生的目标文件中得到可执行程序。编译和连接过程的结果即是可执行程序。
块30代表高级调试过程。该过程包括测试在块20编译过程中编译得到的可执行程序和将结果与程序员想要的结果相比较。如果结果与程序员想要的结果不相符,程序员将在源代码中查找对这种情况负责的高级指令,并修改它。
为了找到负责这一非期望情况的高级指令,程序员利用普通高级调试工具。一种这样的工具是在程序中设置断点。在这些断点处执行停止,让程序员检查程序中用到的变量的值。另一种这样的工具是程序执行中,当变量被置为由程序员设定的特定值时,触发断点。另一种调试工具是能使程序员逐条指令地执行程序,允许程序员在程序进行中同时检测变量值和执行指令流。
然后,程序员再次编译源代码。程序员重复这一调试过程直到程序员满意结果源代码。
块40表示调试后的高级程序设计语言代码,它是块30表示的高级调试过程的结果。这是标准高级语言程序设计过程停止的地方。
块50表示程序员开始将高级程序设计语言指令替换成汇编语言指令的过程。结果是混和源代码文件,包括汇编和高级语言指令。
决60表示本发明,它是一种标准的高级程序设计语言编译器,带有函数库,这些函数根据编译器编译的高级程序设计语言定义汇编语言指令。该库使编译器能够编译既包括高级语言又包括汇编语言指令的混和源代码文件。程序员使用编译器编译来自于混和程序代码生成可执行程序,该混和程序代码包括高级和汇编语言指令,该混合程序代码来自块50代表的过程。
块70表示块50代表的过程得到的混和代码的调试过程。如块20代表的高级调试过程,程序员把在块60处使用混和程序设计环境准备好的可执行程序的结果与程序员期望的结果相比较,在块50处对源代码进行适当的纠正,然后,再次编译源代码。在混和代码调试时,程序员利用高级程序设计环境中可用的多种调试工具。
这一过程重复进行直到从混和源代码得到的可执行程序得到与程序员期望一致的结果。
然后,程序员返回到块50表示的过程,把其他高级程序设计指令代换成汇编语言程序设计指令,并重复块60和块70代表的过程,直到所有的高级代码均被用汇编语言代码所替换,并且仅包含汇编语言指令的结果源代码文件被彻底地调试。
块80表示汇编语言汇编器程序,块90表示汇编语言调试器,块80和块90代表该过程的最后一步,其中程序员利用当前的微处理器的标准编译器和调试工具汇编和调试汇编语言程序。
应当了解以上的说明仅期望于作为实例,并且在本发明的实质和作用范围内还可能有许多其他的实施方案。
权利要求
1.一种通过提供高度发展的混和程序设计环境来简化汇编语言程序设计的系统,包括(a)一个用于分析包含至少一种高级指令的源代码文件的模块;(b)一个根据相应的高级指令定义混和源代码文件中的至少一种汇编语言指令的函数库;(c)一个根据该函数库将高级指令翻译成机器语言指令的模块;和(d)一个用于将翻译好的机器语言指令输出到目标文件中的模块。
2.一种用于处理包括任意数量高级和汇编语言指令的混和源代码文件的方法,包括以下步骤(a)分析包括至少一种高级指令的混和源代码文件;(b)将混和源代码文件中的汇编语言指令转换成高级语言指令;(c)将高级指令翻译成机器语言指令;(d)将翻译后的机器语言指令编译成目标文件。
3.一种编写和调试汇编语言程序的方法应包括(a)根据多个高级语言指令中的每一个定义多个汇编语言指令中的每一个;(b)编写包含该多个高级指令中至少一个的源代码文件;(c)调试该源代码文件直到该多个高级指令中的该至少一个正常运行;(d)用至少一个汇编语言指令替代源代码文件中的该多个高级指令中的该至少一个指令;(e)调试包含高级和生成的汇编语言指令的混和源代码文件。
全文摘要
一种通过提供高度发展的混和程序设计环境来简化汇编语言程序设计的系统包括:一个用于分析包含至少一种高级指令的输入混和源代码文件的模块;一个用于从相应的高级指令中定义在混和源代码文件中的至少一种汇编语言指令的函数库;一个根据库将高级指令翻译成机器语言指令的模块;和一个将翻译好的机器语言指令输出到目标文件的模块。
文档编号G06F9/44GK1299482SQ99804945
公开日2001年6月13日 申请日期1999年12月14日 优先权日1998年12月14日
发明者G·申德洛维奇 申请人:因芬尼昂技术股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1