预处理

✍ dations ◷ 2025-09-13 02:37:12 #预处理
在计算机科学中,预处理器是程序中处理输入数据,产生能用来输入到其他程序的数据的程序。输出被称为输入数据预处理过的形式,常用在之后的程序比如编译器中。所作处理的数量和种类依赖于预处理器的类型,一些预处理器只能够执行相对简单的文本替换和宏展开,而另一些则有着完全成熟的编程语言的能力。一个来自计算机编程的常见的例子是在进行下一步编译之前,对源代码执行处理。在一些计算机语言(例如: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)使用。

相关

  • 水华水华(Water bloom)或藻华(Algal bloom),通常为学术所称“水体富营养化”而造成,是发生在淡水中,由水体中氮磷含量过高导致藻类,细菌或浮游生物突然性过度增殖的一种自然现象,同时也
  • 非电解质非电解质是指在水中或熔融状态下都不能电离出离子的化合物水本身不是非电解质,它是弱电解质。
  • 字纸敬惜字纸是中国文化传统理念之一,也传到受中国儒家文化影响的汉字文化圈其他地区。在科举制度的影响下,出于对文化与文字的崇敬,古人认为应当对字纸,即写有文字的纸张表示尊敬和
  • 卡尔达肖夫指数卡尔达肖夫指数(英语:Kardashev Scale)是根据一个文明所能够利用的能源量级,来量度文明层次及技术先进程度的一种假说。1964年苏联天文学家尼古拉·卡尔达肖夫首先提出用能量级
  • 邻二甲苯邻二甲苯是苯邻位的两个氢被甲基取代后形成的化合物,可以从二甲苯的分馏中大量获得,被大量用来制造苯酐。
  • 克理威廉威廉·克理(William Carey,1761年8月17日-1834年6月9日),是一位英国宣教士和浸信会牧师,被誉为“近代宣教士之父”。他是英国浸信会差会的创办人之一。在印度塞兰坡(Serampore)宣
  • 山田浅右卫门山田浅右卫门又叫山田朝右卫门(日文浅与朝同音),是日本江户时代公家御用的刀剑试斩者,此为山田家当家代代继承的工作与名字。因为兼任刽子手的缘故,又被人家叫做斩首浅右卫门。“
  • 科林·坎贝尔宾州州立大学兽医学院兽医预科学士(1956) 乔治亚大学兽医学硕士 (1958), 康乃尔大学营养及生化学哲学博士(1961), biochemistry, nutrition, and microbiology, Cornell
  • 反应停事件反应停事件始于1950年代,多个国家的孕妇在服用止吐药“反应停”(沙利窦迈(Thalidomide))后,在全世界共产下了约1.2万名畸形儿。1961年11月起,“反应停”陆续在各国被强制撤回。德国
  • 湿地公约英语、法语和西班牙语湿地公约(英文:Ramsar Convention),是为了保护湿地而签署的全球性政府间保护公约,全称为《特别针对水禽栖地之国际重要湿地公约》(英文:Convention of Wetland