预处理

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

相关

  • 人口索引 国防预算 石油储量 军事(武装部队) 死刑 国债 生育率 最高点 官方语言 地理 政体 面积 代码 陆地面积 人口 人口密度 国内生产总值 国徽 国旗 国歌 国家格言 首都 城市
  • 脑部脑(英语:Brain)作为一个器官,是所有脊椎动物和大部分无脊椎动物都具有的神经系统中心。它位于头部,通常靠近感觉器官,如视觉器官。脑是脊椎动物身体中最复杂的器官。人类的大脑皮
  • rDNA核糖体DNA(Ribosomal DNA,rDNA)是一种DNA序列,该序列用于rRNA编码。核糖体是蛋白质和rRNA分子的组合,翻译mRNA分子以产生蛋白质的组件。如该图所示,真核生物的rDNA包括一个单元段,
  • 卤米松卤米松是一种皮质类固醇,可用于治疗银屑病以及非感染性急性湿疹皮炎类皮肤病。
  • 雅各布·皮耶克尼斯雅各布·皮耶克尼斯(瑞典语:Jacob Aall Bonnevie Bjerknes,1897年11月2日-1975年7月7日)是一位出生于瑞典的美国籍气象学家。1897年,雅各布·皮耶克尼斯出生在瑞典的斯德哥尔摩。
  • 宗懔宗懔(?-?),字元懔,南阳郡涅阳县(今河南省邓州市)人,南梁学者暨文学家,著有《荆楚岁时记》。宗懔从少年时代就天资聪颖,相当好学,说话常引用典故,乡里的人皆称呼他“小儿学士”。梁普通六年
  • 唐玄宗唐玄宗李隆基(公元685年9月8日-762年5月3日),685年出生在神都洛阳,唐朝第九代皇帝(712年-756年在位);统治唐朝长达44年,是唐朝在位最久的皇帝,唐睿宗第三子,母窦德妃。庙号玄宗,谥号至道
  • Aristotle亚里士多德(希腊语:Αριστοτέλης,Aristotélēs,前384年6月19日-前322年3月7日),古希腊哲学家,柏拉图的学生、亚历山大大帝的老师。他的著作牵涉许多学科,包括了物理学、形
  • 平方厘米平方厘米(平方公分)(符号为cm²)是面积的公制单位(SI Unit),其定义是“边长为1厘米的正方形的面积”。(1m²=10000cm²) (1mm²=0.01cm²) (1公顷=100000000cm²) (1公亩=1000000cm
  • 深层环流系统温盐环流(英文:thermohaline circulation、缩写:THC),又称深海洋流、“输送洋流”、“深海环流”等,是一个依靠海水的温度和盐度驱动的全球洋流循环系统。这个系统的运作现况是,以