首页 >
预处理
✍ dations ◷ 2025-04-26 17:23:45 #预处理
在计算机科学中,预处理器是程序中处理输入数据,产生能用来输入到其他程序的数据的程序。输出被称为输入数据预处理过的形式,常用在之后的程序比如编译器中。所作处理的数量和种类依赖于预处理器的类型,一些预处理器只能够执行相对简单的文本替换和宏展开,而另一些则有着完全成熟的编程语言的能力。一个来自计算机编程的常见的例子是在进行下一步编译之前,对源代码执行处理。在一些计算机语言(例如: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)使用。
相关
- 竹桃霉素竹桃霉素是一种大环内酯类抗生素。该抗生素由细黄链霉菌(Streptomyces antibioticus)合成,其抗菌谱与红霉素相同,但抗菌能力较红霉素弱。竹桃霉素与红霉素有不完全的交叉耐药性,
- 同性恋同性恋在古罗马是一种公认的社会文化,在极盛时期以不同的形式出现在许多文学、艺术、和诗歌中。古罗马的同性恋文化最初发展于罗马共和国时期,但受到社会普遍的谴责,被认为是古
- 种内竞争种内竞争,亦称种内斗争,指同种生物个体之间的生存竞争,达尔文认为同种生物由于要求相同的生活条件,竞争是最激烈的,提出种内竞争是自然选择的重要基础。例如争取食物来源、争取地
- 病毒种类列表本列表为根据ICTV2014年所列出的病毒的种类,并根据字母顺序排列。医学导航: 病毒病病毒(蛋白质)/分类cutn/syst (hppv/艾滋病, 流感/疱疹/人畜共患)/人名体征药物(抗DNA, 抗R
- 马克斯·冯·劳厄马克斯·冯·劳厄(德语:Max von Laue,1879年10月9日-1960年4月24日),德国物理学家,因发现晶体中X射线的衍射现象而获得1914年诺贝尔物理学奖。1879年10月9日,马克斯·劳厄出生于科布
- 吴新涛吴新涛(1939年4月6日-),福建石狮人,中国物理化学家。生于福建石狮。1960年毕业于厦门大学化学系。1966年福州大学物理化学专业研究生毕业。中国科学院福建物质结构研究所研究员、
- 茂才秀才,又称茂才。为古代东亚对某些士大夫的称呼,随着时代、地域所指亦有所改变,但所指都属士大夫中的基层。秀才一名在隋朝科举开始以前已有。《史记·屈原贾生列传》说:“贾生,年
- 电流密度在电磁学里,电流密度(current density)是电荷流动的密度,即每单位截面面积电流量。电流密度是一种矢量,一般以符号 J
- 怀孕分级怀孕分级(英语:Pregnancy category)是药物学中用来评估女性在怀孕期间服用药物对胎儿可能造成伤害的危险程度,但是在母乳中出现药物或是出现药物代谢物所可能造成的伤害则不包括
- Nasub5/subPsub3/subOsub10/sub三聚磷酸钠,化学式Na5P3O10。三聚磷酸钠是一种白色粉末,易溶于水,水溶液呈碱性,1%水溶液pH为9.7。有两种晶形,α型(高温型)和β型(低温型),两者化学性质相同,均可得到相同的水溶液和结晶