预处理

✍ dations ◷ 2025-04-25 10:21: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)使用。

相关

  • 乳剂乳浊液(英语:emulsion)也称为“乳液”、“乳剂”、“乳状液”或“乳化液”,是指一相液体以微小液滴状态分散于另一相液体中形成的非均相液体分散体系。由油和水混合组成的乳浊液
  • 披衣菌砂眼衣原体(Chlamydia trachomatis,披衣菌)是一种绝对寄生病原体,披衣菌是一种在构造上介于细菌和病毒之间的微生物。以往被认为是一种病毒,但因其同时含有 DNA 和 RNA、并有和革
  • X-三体综合征 (47,XXX)三染色体X综合征是一种人类女性的性染色体疾病;一般女性的性染色体是XX,而患者为XXX。患有该综合征的患者又因其基因行为XXX,被称做超雌性。与XYY三体患者不同的是,三染色体X综
  • 过渡体衬线体(Serif)是一种有衬线的字体,又称为有衬线体、衬线字、曲线描边字,俗称白体字;而与之相对的,没有衬线的字体则被称为无衬线体。衬线是字形笔画末端的装饰细节部分。一般认为
  • 帕多瓦大学帕多瓦大学(拉丁语:Universitas Studii Paduani,意大利语:Università degli Studi di Padova,缩写为 UNIPD),位于意大利帕多瓦的大学。它的法学院于1222年成立,但是学校实际建立的
  • DNA重组重组DNA是一种人工合成的脱氧核糖核酸。它是把一般不同时出现的DNA序列组合到一起而产生的。从遗传工程的观点来看重组DNA是把相关的DNA添加到已有生物的基因组中,比如细菌的
  • T7RNA聚合酶T7 RNA聚合酶(英语:T7 RNA Polymerase)是一种RNA聚合酶,分子量约99kDa。专门催化5'→3'方向的RNA形成过程。T7RNA聚合酶具有高度启动子专一性,且只会转录T7噬菌体中位于T7启动子
  • 针灸甲乙经《针灸甲乙经》,全名《黄帝三部鍼灸甲乙经》,是现存最早的一部针灸专书,(公元256-282 年)晋皇甫谧(士安)编辑整理《素问》、《针经》、《明堂孔穴针灸治要》,所编著而成。 全书共十
  • abbr class=abbr title=S60: 该物质及容器必须按危险废物放置S60/abbr安全建议标准词(英语:Safety phrases,简写:S-phrases)是于《欧盟指导标准67/548/EEC 附录Ⅳ: 有关危险物品与其储备的安全建议》里定义。该列表被集中并再出版于指导标准2001/59/
  • 国泰金控国泰金融控股公司(英语:Cathay Financial Holdings Co., Ltd.,台证所:2882,简称:国泰金控),为台湾的金融控股公司,为霖园集团的核心公司。现今总资产更高达近10兆新台币,是台湾第一大