预处理

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

相关

  • 嘴巴口腔,简称口,俗称嘴巴、嘴或咀,是指唇、腭、面颊和口腔底之间的空间,向上它与鼻腔相通。向后口腔与两个颌弓后的咽腔相连。口腔的后面的开口是咽峡,前面的开口是嘴。整个口腔的内
  • 方言 §“方言”和“语言”的界定方言指的是一个某种语言的变体,但有时也可以指地方上使用的语言。然而,值得注意的是,在对所谓的“语言”和“方言”进行定义时,无论是采用社会语言学者“相互理解性”的判别标准
  • 粘著语素规范语素(英语:Bound morpheme)又称不自由语素、黏着语素,在语言学中,指不能独立存在,必须附属于其他语素或词根的语素。 与此相对的是自由语素。 以英语为例,大多数词缀都是规范语
  • 全新世灭绝事件全新世灭绝事件是于现今的全新世所发生广泛及持续的灭绝或生物集群灭绝事件,被广泛视为第六次的大规模灭绝事件(前五次分别是奥陶纪-志留纪灭绝事件、泥盆纪后期灭绝事件、二
  • 蒙娜·丽莎《蒙娜丽莎》(意大利语:La Gioconda;法语:La Joconde;英语:Mona Lisa)是文艺复兴时期画家列奥纳多·达芬奇所绘的肖像画,是其代表作。它可以说是世界上最著名的油画作品之一,很少有其
  • 利比威拉德·弗兰克·利比(英语:Willard Frank Libby,1908年12月17日-1980年9月8日),美国化学家,1960年诺贝尔化学奖得主。利比于1940年代于芝加哥大学发明了放射性碳定年法,该方法对考
  • 加速加速度是物理学中的一个物理量,是一个矢量,主要应用于经典物理当中,一般用字母 a {\displaystyle \mathbf {a} }
  • 英国圣公会英格兰教会(英语:Church of England),或译为英格兰国教会、英国国教会、英格兰圣公会,是基督新教圣公宗的教会之一,16世纪英格兰宗教改革时期,由英格兰君主亨利八世领导,由神学家托
  • 葡萄酒产量下面是一个各国及地区2014年葡萄酒产量列表,数据来自联合国粮农组织。数量显示,全球葡萄酒总产量为29,105,843公吨,当中头十名的总产量占总产量的84.73%。
  • 台39线台39线 高铁桥下台南段道路,为中华民国(台湾)沿台湾高铁高架桥下两侧用地辟建之省道。北起台南市新化区台20线,南至高雄市阿莲区台28线。