[拼音]:hongjiagong chengxu
[外文]: croprocessor
把源程序中的宏指令或宏语句扩展成等价的、预先定义的指令或语句序列的翻译程序。
宏指令或宏语句,实际上是按规定格式书写的某一源程序段的缩写,主要是根据用户自己特定的需要而设置的。它利用程序设计语言所提供的指令或语句来定义。系统也可以预先定义一些常用的宏指令或宏语句,以便用户直接调用。
建立宏加工程序后,用户就可以方便地定义和使用自己所需的宏指令或宏语句。这不仅能简化应用程序的编写,而且有助于软件人员研究和移植有关的软件。例如,利用宏指令或宏语句设计虚拟机,研究新的语言,以及生成带有变化成分的软件等。
宏指令的定义、调用和扩展定义宏指令时,要给出它的名字、格式、参数和等价的指令序列,即由开始行、指令序列和结束行组成。开始行中的操作码标明宏指令定义开始;标号字段给出宏指令的名字;操作对象字段给出宏指令的参数;结束行中的操作码标明宏指令定义结束。在开始行和结束行之间,给出用来定义宏指令的指令序列,其中有些指令可出现开始行中列出的参数。
程序中可按宏指令的格式调用有定义的宏指令。宏指令中的操作码字段给出宏指令的名字;操作对象字段中给出用户所需的参数。
宏加工程序将程序中出现的宏指令扩展成等价的指令序列,并进行参数替换。
宏语句的定义、调用和扩展,与宏指令的情形类似。为简单起见,分别将其统称为宏定义、宏调用和宏扩展。
实现过程宏加工程序通常采用两遍算法实现:第一遍收集宏定义的信息;第二遍实现宏扩展。在第一遍扫描中,遇到宏定义时,应把名字、格式、参数等信息以及随后的等价的指令或语句序列记录到宏定义表中。对于源程序中宏定义以外的部分,将不加改变地复写到中间结果程序区中。第二遍扫描第一遍所产生的中间结果程序。遇到宏调用时,则将宏定义表中相应的等价指令或语句序列复写到目标程序区中。复写过程中,要用宏调用中的实在参数替换宏定义中的形式参数。
如果限制每个宏调用只能调用前面已定义的宏指令或宏语句,那么,这种宏加工程序的实现算法可合并成一遍完成。
功能较强的宏加工程序还可增加嵌套宏定义、嵌套宏调用或条件宏加工等功能。如果宏定义中含有另外的宏定义,则称为嵌套宏定义。如果宏定义A中出现宏调用,那末在扩展A的宏调用过程中,又要进一步转去扩展另外的宏调用。这种情形称为嵌套宏调用。如果宏加工程序能根据宏调用中的参数,有选择地把宏调用扩展成不同的指令或语句序列,则称为条件宏加工。
参考书目M. Campbell-Kelly, An Introduction to Macros,MacDona ld.London,1973.P. J. Brown,Macro Processor and Techniques for Porable Software, Wiley, London,1974.A. J. Cole, Macro Processor,Cambridge Univ.Pr.,Cambridge,1976.严正声明:本文由历史百科网注册或游客用户运珹自行上传发布关于» 宏加工程序的内容,本站只提供存储,展示,不对用户发布信息内容的原创度和真实性等负责。请读者自行斟酌。同时如内容侵犯您的版权或其他权益,请留言并加以说明。站长审查之后若情况属实会及时为您删除。同时遵循 CC 4.0 BY-SA 版权协议,尊重和保护作者的劳动成果,转载请标明出处链接和本声明内容:作者:运珹;本文链接:https://www.freedefine.cn/wenzhan/29744.html