预处理

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

相关

  • 肺炎分枝杆菌肺炎支原体(Mycoplasma pneumoniae、霉浆菌性肺炎)是一种可导致肺炎的支原体细菌,也有机会导致冷凝集素症(英语:cold agglutinin disease)。这种由肺炎支原体引起的肺炎,又称作霉浆
  • 法莫替丁法莫替丁(INN:famotidine),商品名称为Pepcid,是一种组胺H2受体阻抗剂,主要用于抑制胃酸的分泌,并用于治疗消化性溃疡和胃食道逆流。与西咪替丁不同,法莫替丁等第二代H2受体阻抗剂对
  • 精神科人体解剖学 - 人体生理学 组织学 - 胚胎学 人体寄生虫学 - 免疫学 病理学 - 病理生理学 细胞学 - 营养学 流行病学 - 药理学 - 毒理学精神病学目前是一门医学专科,内容是关
  • 行为能力行为能力(capacity)为一种法律上的概念,其与“权利能力”及“意思能力”不同,乃指为法律行为之资格,亦即个人以独自的意思表示,使其行为发生法律上效果的资格而言。民法中基于私法
  • 异性恋异性恋亦称为异性向,一般指对异性(包括生理性别及性别认同为当事人的异性)能产生爱慕感、建立浪漫关系,或认为异性拥有性吸引力的一种现象。把异性恋视作性倾向时,其定义则为“一
  • 滑体亚纲滑体亚纲(学名:Lissamphibia),是两栖动物中唯一一群存活至今的动物,包括无足目的蚓螈、有尾目的蝾螈和无尾目的青蛙与蟾蜍。 虽然目之间的分类关系尚不清楚,但皆具有共同的特征,可
  • 巴茹·贝纳塞拉夫巴茹·贝纳塞拉夫(Baruj Benacerraf,1920年10月29日-2011年8月2日)是一位委内瑞拉裔美国医学家,他的主要工作领域是免疫学和移植医学。1980年他与乔治·斯内尔和让·多塞一起因“
  • 教堂山北卡罗来纳大学教堂山分校(University of North Carolina at Chapel Hill,简写UNC),是一所男女同校的公立研究型大学,位于美国北卡罗来纳州教堂山。该大学是北卡罗来纳大学系统最
  • 古斯塔夫三世的咖啡实验18世纪末期,当时的瑞典国王古斯塔夫三世为了研究咖啡对于人体健康的影响,组织了一场有趣的双生子研究实验。尽管时至今日该实验的可靠程度仍受质疑,但这项实验确实证明了人类早
  • 中欧关系中华人民共和国和欧洲联盟的外交关系建立于1975年。中欧关系一个争议的焦点便是欧盟对中国武器禁运。中欧关系始于1985年中欧“贸易与合作协议”。从2007年起,双方开始谈判提