首页 >
预处理
✍ dations ◷ 2025-11-26 13:26:13 #预处理
在计算机科学中,预处理器是程序中处理输入数据,产生能用来输入到其他程序的数据的程序。输出被称为输入数据预处理过的形式,常用在之后的程序比如编译器中。所作处理的数量和种类依赖于预处理器的类型,一些预处理器只能够执行相对简单的文本替换和宏展开,而另一些则有着完全成熟的编程语言的能力。一个来自计算机编程的常见的例子是在进行下一步编译之前,对源代码执行处理。在一些计算机语言(例如: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)使用。
相关
- 反胃恶心(英文:Nausea又称kalang或pinky),又称反胃,在医学上是指胃部不适或感到想呕吐的症状。恶心本身不是疾病,而是多种情况下产生症状,其中许多与胃有关。头晕可能会导致恶心。
- 异丙苯异丙苯(化学式:C9H12),俗称枯烯、
- 威克岛威克岛(英语:Wake Island)是马绍尔群岛中的小岛、北太平洋上的环礁,海岸线长19公里,大约自夏威夷至北马里亚纳群岛的三分之二航程。因为它在国际换日线之西,所以比美国50州快近一
- T细胞受体的基因重排抗体(antibody),又称免疫球蛋白(immunoglobulin,简称Ig),是一种主要由浆细胞分泌,被免疫系统用来鉴别与中和外来物质如细菌、病毒等病原体的大型Y形蛋白质,仅被发现存在于脊椎动物的
- 弗里斯兰省弗里斯兰省(荷兰语:Friesland Provincie 荷兰语发音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","C
- 须尔德河斯海尔德河(荷兰语:Schelde)又译斯凯尔特河、须耳德河,也依法语译作埃斯科河(法语:Escaut),发源于法国埃纳省,流经比利时,最终在荷兰注入北海,全长350公里。斯海尔德河流经的主要城市有
- 三皈依皈依(巴利语:saranam gacchami),又作归依、归信,佛教术语,是成为正式佛教徒之前的宣誓仪式。佛教信徒在完成皈依仪式后,就是正式佛教徒,依性别之男女可以称为“优婆塞”或“优婆夷”
- 日本的城日本的城,是一种提供予地方领主(大名)居住的武装建筑,主要由城门、围墙及主城组成。起始于弥生时代,全盛时期在战国时代的关原之战后,后来因为德川家康的“一国一城令”而式微,幕末
- 卢图利艾伯特·约翰·卢图利(Albert John Lutuli,1898年-1967年7月21日),祖鲁语名Mvumbi,是一位南非籍教师和政治家。卢图利曾任南非非洲人国民大会(ANC)党主席,领导反对南非白人少数派政府
- 加利福尼亚洋流加利福尼亚洋流是一股太平洋的洋流,在加拿大英属哥伦比亚省南部海岸开始,沿着北美洲的西海岸往南行进,最后在墨西哥的下加利福尼亚州外海汇入赤道洋流。加利福尼亚洋流是北太平
