首页 >
预处理
✍ dations ◷ 2025-04-02 13:21:33 #预处理
在计算机科学中,预处理器是程序中处理输入数据,产生能用来输入到其他程序的数据的程序。输出被称为输入数据预处理过的形式,常用在之后的程序比如编译器中。所作处理的数量和种类依赖于预处理器的类型,一些预处理器只能够执行相对简单的文本替换和宏展开,而另一些则有着完全成熟的编程语言的能力。一个来自计算机编程的常见的例子是在进行下一步编译之前,对源代码执行处理。在一些计算机语言(例如: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)使用。
相关
- 发育生物学发育生物学(英语:Developmental biology)是对于生物体生长和发育过程的研究。发育生物学研究基因对细胞生长,分化和形态发生(Morphogenesis)的调控,这些过程使生物体形成组织和器官
- 硫柳汞硫柳汞(邻乙汞硫基苯酸钠)是疫苗中含有汞的防腐剂。反疫苗人士(英语:Anti-vaccination)错误的认为疫苗会导致自闭症,而他们认为硫柳汞中含的汞就是原因之一。目前没有科学证据(英语
- 几几部,就漢字索引來說,是為部首之一,康熙字典214個部首中的第十六個(兩劃的則為第十個)。歸於二劃部首,通常是從外方為部,且無其他部首可用者將部首歸為几部。又读ㄐㄧˇ。 1.古人坐
- 贝克型肌肉萎缩症贝克型肌肉萎缩症是肌肉萎缩蛋白缺陷造成的疾病,患者可以制造肌肉萎缩蛋白,但功能不正常且无法百分之百有效工作。虽与杜兴氏肌肉营养不良症有相同的基因缺陷,但表现型有所不同
- 中国社会科学院中国科学院 中国工程院中国社会科学院(英语:Chinese Academy of Social Sciences,缩写为CASS),简称社科院,是中华人民共和国在哲学、社会科学领域研究的最高的和最全面的国家级学
- 檀木檀或檀木,不是一个具有精确意义的字、辞,不尽然是一种木材,或一类木材的统称。有时候指一种香木,有时候指质地坚韧、纹理细致的一种硬木,有时候指兼具以上这两种特性的木材。与其
- 图灵完全在可计算性理论里,如果一系列操作数据的规则(如指令集、编程语言、细胞自动机)可以用来模拟单带图灵机,那么它是图灵完全的。这个词源于引入图灵机概念的数学家艾伦·图灵。虽然
- 日照时数日照时数或日照期间是一个气候的指标,在给定的时间(通常是一天或一年)和地球上给定的地点,测量阳光持续的时间,通常会用几年的平均值呈现。它通常显示一个地区无云的期间,不同于日
- 哥斯达黎加哥斯达黎加华人组成了拉美华人的一小部分。第一批华人移民在1855年抵达哥斯达黎加。他们一共77人,都来自广州。他们到中美洲来为巴拿马铁路(英语:Panama Canal Railway)工作。他
- 大雪山大雪山(英语:Snowy Mountains),为澳大利亚新南威尔士州东南部的山脉,属于大分水岭的一支,也是澳大利亚最高山脉,位于此山脉的科修斯科山,海拔2228米,为澳大利亚本土最高峰。雪山山脉