预处理

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

相关

  • 强直性脊柱炎强直性脊柱炎(拉丁文:spondylitis ankylosans,其中spondylitis原为希腊文脊柱炎之意,ankylosans原系希腊文强直之意),又称僵直性脊椎炎,在欧陆亦称此病为白赫铁列夫症(Morbus Bechte
  • 导管导管是化学实验中常用的一种仪器,通常为中空的玻璃管或塑料管,有各种长短、口径和弯曲形状,在许多实验中都有所应用。导管一般用作气体或者液体流动的通道,与其他实验设备配合使
  • 维博瓦伦蒂亚维博瓦伦蒂亚(意大利语:Vibo Valentia),是意大利维博瓦伦蒂亚省的一个市镇。总面积46.34平方公里,人口33813人,人口密度729.7人/平方公里(2009年)。
  • 回力棒星云回力棒星云(英文:Boomerang Nebula)(亦称领结星云)是在半人马座的方向上,距离地球5,000光年的一个原行星云。这个星云的温度经测量为1K(−272.15°C; −457.87°F),是自然界中已知
  • MoSsub2/sub二硫化钼是一种由钼和硫两种元素组成的化合物,化学式为MoS2。这种化合物属于过渡金属二硫族化合物,它有银黑色光泽,在自然界中以辉钼矿的形式存在,辉钼矿是最常见的含钼元素矿石
  • 勒·柯布西耶勒·柯布西耶(法语:Le Corbusier,1887年10月6日-1965年8月27日,又译柯布西埃、柯比意或柯比西埃,原名Charles-Édouard Jeanneret-Gris),瑞士-法国建筑师、室内设计师、雕塑家、画家
  • 回向回向,或作回向、转向、施向(梵语:Pariṇāmanā),大乘佛教术语,通常指回转自己所修之功德于众生或到法界中。梵文Pariṇāmanā的原义是转向、回转、前进,汉语译为回向,义为“回转趋
  • 保尔·霍尔巴赫保尔-亨利·提利·霍尔巴赫男爵(法语:Paul-Henri Thiry, baron d’Holbach,1723年-1789年),法国哲学家,无神论者。1723年生于德国巴伐利亚一商人家庭。1735年时移居法国。1744年就
  • 高雄硫酸亚厂高雄硫酸铔,简称高硫、KASC,是台湾一家已结束经营的肥料及化工产品制造公司。
  • 高桥浩佑高桥浩佑(1968年10月13日-),日本记者。神奈川县川崎市出身。庆应义塾大学经济学专业毕业,后到哥伦比亚大学攻读新闻学和国际关系学,取得两个硕士学位。汤森路透东京办公室担任高