预处理

✍ dations ◷ 2025-11-16 10:31:17 #预处理
在计算机科学中,预处理器是程序中处理输入数据,产生能用来输入到其他程序的数据的程序。输出被称为输入数据预处理过的形式,常用在之后的程序比如编译器中。所作处理的数量和种类依赖于预处理器的类型,一些预处理器只能够执行相对简单的文本替换和宏展开,而另一些则有着完全成熟的编程语言的能力。一个来自计算机编程的常见的例子是在进行下一步编译之前,对源代码执行处理。在一些计算机语言(例如:C语言)中有一个叫做预处理的翻译阶段。词法预处理器是最低级的预处理器,因为它们只需要词法分析,也就是说,它们在语法分析处理之前,根据用户定义的规则,进行简单的词法单元替换。典型的词法预处理器产生宏替换,包含其他文件的文本,并且条件性地编译或者包含文件。最常见的例子是C预处理器,采用以'#'为行首的指示。因为它不知道底层语言,它的使用被批评并且它的许多功能被其它语言直接内建。例如,宏替换被显式内联和模板替代,包含变为编译期导入(compile-time import,这需要在目标代码中预先保存类型信息,使这个功能无法改进一个语言);条件编译被if-then-else和死代码消除替代。其他词法预处理器包括一般用途的m4,最常用的跨平台构建系统,比如autoconf,和开源的宏处理器GEMA,操作上下文模式。句法预处理器是由Lisp家族语言引进的。它们的作用是根据若干用户定义的规则转换语法树。对于某些程序语言,这些规则是使用同一种语言来写的(compile-time reflection)。这就是Lisp和OCaml的情况。某些编程语言依靠一个完全的外部语言来定义转换,例如XSLT处理器处理XML的方式,或与静态类型的对应语言CDuse。静态处理器常被用来自定编程语言的语法,并透过增加新的primitives或嵌入特定领域语言(Domain-Specific Programming Language)到一般用途的语言里来扩展。关于自定义语法的一个好例子是在OCaml编程语言里两个不同语法的存在。程序可能平常地由“正常语法”或“校正过的语法”写成,并且按需求由两者之一进行程序优化类似地,一些OCaml语言写成的程序借由新运算符的增加来自定化语言的语法。对于从宏扩展语言最好的示例可在LISP语言家族里找到。这种语言本身就是简单的动态类型核心模块,Scheme或Common Lisp的标准分配允许了命令或面向对象的程序编辑,静态类型亦如此。几乎所有这些特性都由语法预处理运行,虽然它的“宏扩展”编译阶段由LISP的编译器处理这点很值得一提就是。这仍然可以视为预处理的一种形式,因为它在编译阶段前就进行了。类似地,静态检查、类型安全正规表式或代码生成可能透过宏被加入到OCaml的语法和语义里,如同微线程(亦称为协程或fibers)、单子或透明的XML操作。任何“一般目的预处理器”,例如M4,都可以当成模版引擎(template engine)使用。

相关

  • 发音器官人的发音器官或称言语器官是用来发声的器官。包括呼吸器官、喉头、口腔和鼻腔。可以细分为:
  • 证明论证明论是数理逻辑的一个分支,它将数学证明表达为形式化的数学客体,从而通过数学技术来简化对他们的分析。证明通常用归纳式地定义的数据结构来表达,例如链表,盒链表,或者树,它们根
  • 促胰液素促胰液素(英语:secretin)为史上首个被发现的激素。是由十二指肠分泌的含27个氨基酸的激素。它的产生可由多种因素刺激,其中最强的刺激信号是胃酸中的盐酸。这种激素可作用于胰腺
  • 附生植物附生植物,又称附着植物、着生植物,是植物在其它活体植物上面生长或是依附的现象。这种关系通常多数与较高阶的植物有关,然而表生细菌、真菌(表生菌)、藻类、地衣、苔藓,以及蕨类也
  • 跨Wiki链接跨Wiki链接(InterWiki links)是一种将万维网上的众多Wiki网站链接到一起的方式。用户可以不用输入完整的URL(一般网页都需要)而使用相似的简写就能在同一Wiki网站内相互链接。与
  • cAMP环腺苷酸(英语:Cyclic adenosine monophosphate,简称为cAMP)是一种具有细胞内信息传递作用的小分子,被称为细胞内信使(intracellular messenger)或第二信使(second messengers)
  • 示威者抗议是一种对事件或情况强烈反应的表达。这个词语通常意味着对某事反对的反应,而以前亦可以表示是为了某事的反应。抗议者可能通过公开、有力的方式组织抗议,使其意见被听取,来
  • 功能手机功能手机(英语:Feature phone)是一种移动电话的类别,在iOS、Android、Windows Phone等智能移动操作系统未面世前,很多非PDA类型的手机都统称为功能手机的主要类别,有些功能手机的
  • 录影带录像带或录影带(英语:videotape),是磁带的一种,主要用来录制、播放活动影像及音乐等。一般以录放影机来录制和播放。它是一种顺序式的线性(linear)影像储存方式。录像带的保养,最怕
  • 澳大利亚人澳大利亚公民(英语:Australian citizens)亦被称为澳大利亚国民(英语:Australia nationals)、澳洲人(英语:Aussie)、澳大利亚人,是澳大利亚国籍的身份拥有人,该身份是由澳大利亚联邦法律