预处理

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

相关

  • 猪肉绦虫猪带绦虫(学名:Taenia solium;pork tapeworm),也称有钩绦虫或链状带绦虫,体长2-3米,宽7-8毫米,共有800-900个节片,后端成熟节片长约10毫米。
  • 细胞遗传学细胞遗传学(英语:Cytogenetics)是遗传学下的一个分支,主要研究的是染色体与细胞表现之间的关系(尤其是在有丝分裂和减数分裂期间)。与之相关的技术包括核型、G显带染色体分析、其
  • 黑猩猩属黑猩猩属(Pan) 是灵长目人科人亚科人族之下的一个生物分类,包括两个物种:黑猩猩属生物与人属生物之间只有 1% 至 2% 的基因差异,部分生物学家因此主张把两个属的生物归入同一属
  • 国防国防工业,亦称作军事工业,是由涉及军事装备及设备硏究、开发生产与服务的政府与商业产业组成,其中包括:亦可包括以下:国防工业大致可分为三个方面论述,其中包括武器产业链、武器自
  • 核糖核酸聚合酶RNA聚合酶(RNA polymerase、RNAP、RNApol、DNA-dependent RNA polymerase,EC2.7.7.6)或称核糖核酸聚合酶,是一种负责从DNA或RNA模板制造RNA的酶。RNA聚合酶是通过称为转录的过程
  • 吉尼斯紀錄《吉尼斯世界纪录大全》(英语:Guinness World Records),是一本记载着世界之最的工具书,包括天文地理、历史科学不同领域的世界纪录等,该书每年均会出版一次。本书本身亦保持着一项
  • 卡尔·刘易斯卡尔·刘易斯(英语:Carl Lewis,1961年7月1日-)是美国田径运动员,在4届奥运会中获得过9枚金牌,是第一位在海拔低于100米跑进10秒大关的人,2000年被国际田联评选为20世纪最伟大的田径
  • 统一梦时代购物中心统一梦时代购物中心 (Dream Mall) ,是一间位于台湾高雄市前镇区的大型购物中心,也是全台规模最大(包括店铺数、营业面积)的购物中心,2007年3月30日开业,为统一企业的统正开发主导开
  • 玉兔月兔,也叫玉兔,在一些神话传说中是居住在月球上的兔子。目前多认为是因对月球表面的空想性错视而产生。在许多文化中,特别是在东亚(中华人民共和国、中华民国、日本、朝鲜)的民间
  • 澳大利亚科技大学联盟澳大利亚科技大学联盟(英语:Australian Technology Network,缩写为 ATN)是由5所重视将本科阶段所学习和研究的内容,转化于实际应用成果的澳大利亚大学组成,成立于1995年。这5所院