预处理

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

相关

  • 多诺拉事件多诺拉事件也称多诺拉烟雾事件是1948年10月发生在在美国宾夕法尼亚州多诺拉(英语:Donora, Pennsylvania)的一起严重的大气污染事件。是一起以二氧化硫及其氧化产物等多种污染物
  • 托马斯·库恩托马斯·塞缪尔·库恩(英语:Thomas Samuel Kuhn,1922年7月18日-1996年6月17日),美国物理学家、科学史学家和科学哲学家,代表作为《哥白尼革命》和《科学革命的结构》。其最有名的著
  • β-氧化β-氧化指的是脂肪酸氧化分解,最终产生乙酰辅酶A(Acetyl-CoA)和酮体的过程。就和脂肪酸合成一样,脂肪酸的分解也是逐步进行的。脂肪酸首先变成Acyl-CoA的活化形式。接下来反应有
  • 古菌属列表本表以LPSN网站的分类为基础(当前版本2007年3月29日),本分类代表原核生物分类的权威杂志IJSEM的分类系统,同时参考NCBI Taxonomy,但目前其它中文维基分类表可能依照其它标准,请注
  • 蛩蠊蛩蠊,是蛩蠊科(Grylloblattidae)的无翅昆虫。它们生活在高山上的寒冷地区,并不能在20℃以上的环境中生存。其外观令发现的科学家感到疑惑。第一个被命名的物种北美蛩蠊 ( Gryllo
  • 园林工具园艺工具是从事园艺工作或作为兴趣般的业余性活动时使用的工具。部分工具于农耕时亦会使用。最早手动工具由木材、燧石和骨头所组成,然而,工具为了使能更加持久高效切削,后来慢
  • Tom Ford托马斯·卡莱尔·福特(英语:Thomas Carlyle Ford,1961年8月27日-),是一名美国男时装设计师和导演,在时尚界拥有强大的影响力。汤姆·福特在美国德克萨斯州奥斯汀出生,父母Tom Ford与
  • 科学领域中的女性早在人类有书写历史之前,女性就在科学领域留下重大贡献;研究性别与科学间关系的历史学家已将女性在科学上投注的努力与成就、面临的阻碍,所运用的策略化为文字,让她们的贡献成果
  • 街机街机(英语:Arcade game,又称大型电玩,在台湾俗称机台)是放置于公共娱乐场所或电子游乐场营业用的游戏机,最早的街机雏型于1971年诞生于美国的电脑实验室中,当时常放置于酒吧内。在
  • 抗癌药物抗肿瘤药(英语:Anticancer Drugs,Antitumor Drugs,Antineoplastic Agents)也称为抗癌药、抗恶性肿瘤药,是指治疗恶性肿瘤的药物。此类药物通过多种途径杀灭或抑制癌细胞来达到治疗