首页 >
预处理
✍ dations ◷ 2025-08-21 23:03:41 #预处理
在计算机科学中,预处理器是程序中处理输入数据,产生能用来输入到其他程序的数据的程序。输出被称为输入数据预处理过的形式,常用在之后的程序比如编译器中。所作处理的数量和种类依赖于预处理器的类型,一些预处理器只能够执行相对简单的文本替换和宏展开,而另一些则有着完全成熟的编程语言的能力。一个来自计算机编程的常见的例子是在进行下一步编译之前,对源代码执行处理。在一些计算机语言(例如: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)使用。
相关
- 植物轮藻、一种杂交蔷薇、百岁兰; 小毛毡苔、蓬蘽、欧洲酸樱桃; 银杏、柳树、溪苔属; 非洲苏铁、蕙兰、一种藓类; 一种蕨、紫菀、朝鲜冷杉。有争议:植物(英文:Plant)是植物界(学名:Plantae
- 美洲印第安人美洲原住民,是对美洲所有原住民的总称。美洲原住民中的绝大多数为印第安人,剩下的则是主要位于北美洲北部的因纽特人。美洲原住民属于东亚人种美洲支系,与现代东亚人有共同的祖
- 内脏内脏,一般是统称人和动物胸腔和腹腔内部的器官。具体主要包括心脏、肝脏、脾脏、肺、肾脏、胃、胆、肠、子宫、卵巢等。各内脏可组成不同系统,包括循环系统、神经系统及呼吸系
- 营业额财务会计 · 管理会计 ·营业收入,又称营业收入、营收、营业额(美式英文为revenue,英式英文则为turnover),是商业会计术语,指公司因正常商业活动,所获得之收入,通常是经由提供产品
- 胎儿窘迫胎儿窘迫(fetal distress),是胎儿宫内缺氧的医学上统称,是一种综合症状。当胎儿的心跳变慢,并且于子宫收缩后保持缓慢,这表示婴儿无法得到足够的氧气。此情况并非罕见,根据医学研究
- 阿普第阶灭绝事件阿普第阶灭绝事件(Aptian extinction)是个发生于白垩纪早期的小规模灭绝事件,年代为约1亿1700万年前到1亿1600万年前,大约是阿普第阶中期。根据地层中的证据,阿普第阶灭绝事件对
- 裨治文裨治文(1801年4月22日-1861年11月2日),又名高理文,原名伊利亚·科尔曼·布里奇曼(Elijah Coleman Bridgman),美部会传教士,响应新教第一位来华传教士英国人马礼逊(R.Morrison)的呼吁,而
- 口译口译(又称传译)是一种翻译活动,顾名思义,是指译员以口语的方式,将译入语转换为译出语。口译依进行的方式,可分为同声传译和连续传译(惯用词差异请以其他中文地区阅读本页)两大类。所
- 宪政危机1975年澳大利亚宪政危机(又称“解雇门”)被认为是二十世纪澳大利亚历史上最严重的政治和宪政危机(英语:Constitutional crisis),其最终导致了惠特拉姆总理大臣领衔的工党政府于197
- 法国国王法国君主列表从第一位法兰克人之王法拉蒙德开始列起。法兰西君主(法语:monarque de France)自中世纪开始统治法兰西,其正式头衔起先是“王”(法语:Roi),拿破仑一世增加了“皇帝”(法