族谱网 头条 人物百科

预处理器

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:367
转发:0
评论:0
词法预处理器词法预处理器是最低级的预处理器,因为它们只需要词法分析,也就是说,它们在语法分析处理之前,根据用户定义的规则,进行简单的词法单元替换。典型的词法预处理器产生宏替换,包含其他文件的文本,并且条件性地编译或者包含文件。C预处理器最常见的例子是C预处理器,采用以"#"为行首的指示。因为它不知道底层语言,它的使用被批评并且它的许多功能被其它语言直接内建。例如,宏替换被显示内联和模板替代,包含变为编译期导入(compile-timeimport,这需要在目标代码中预先保存类型信息,使这个功能无法改进一个语言);条件编译被if-then-else和死代码消除替代。其他预处理器其他词法预处理器包括一般用途的m4,最常用的跨平台构建系统,比如autoconf,和开源的宏处理器GEMA,操作上下文模式。句法预处理器句法预处理器是由Lisp家族语言引进的。它们的作用是根据若干用户定义的规则转换语法...

词法预处理器

词法预处理器是最低级的预处理器,因为它们只需要词法分析,也就是说,它们在语法分析处理之前,根据用户定义的规则,进行简单的词法单元替换。典型的词法预处理器产生宏替换,包含其他文件的文本,并且条件性地编译或者包含文件。

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)使用。


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 微处理器
历史最早的芯片正如近现代其他科技的发展一样,微处理器时代仿佛一夜之间就到来了。三个公司,三个计划,几乎不约而同地成为微处理器产业的先锋。它们就是英特尔的Intel4004,德州仪器公司的TMS1000和盖瑞特艾雷赛奇(GarrettAiResearch)工业部的CADC(CentralAirDataComputer)。1968年盖瑞特被邀请参加研制一种数字计算机,以同正在开发中的用于美国海军F-14雄猫战斗机的主飞行控制电脑的电机系统竞争。这个以基于MOS技术的芯片组为核心的CPU于1970年设计完成,并以更小的体积和更高的可靠性打败了基于电机系统的设计,被运用于早期的所有雄猫战斗机。但今天看来,知道CADC和MP944芯片组的人并不多,主要原因在于美国海军认为这种技术太过先进而不允许将其设计细节公开,这种情况一直持续到1997年。德州仪器公司开发出以预编程嵌入式应用(pre-progra...
· 苏预
参考书目《新唐书》卷二○二
· 李预
北魏冯翊太守、征西大将军李预简介,李预是个怎么样的人?李预,字元凯,北魏官员,李先曾孙,中山卢奴人。太和初,历秘书令、齐郡王友、征西大将军长史,带冯翊太守。府解,罢郡,遂居长安。轶事典故李预常常羡慕古人服食玉屑的方法,于是探问寻访蓝田,亲自去发掘。得到玉环玉壁和形似日用器具的玉大小一百多枚,偶尔得到质粗色黑的玉,也装进箱子带回去,而到家以后观看它们,都光滑细腻值得赏玩。李预于是把七十枚玉敲打成碎屑,天天服用,剩下的大多赠送他人。后来李预和听到消息的人再到旧地寻求,都没有找到玉。冯翊公源怀等人得到他的玉,雕琢成器具和玉饰,都色泽鲜明值得珍爱。李预服用了一年,说有效验,但是社交应酬和寝食没有限制,又加之好酒损伤神志,到病重时,对妻儿说:“服用玉屑独居山林,抛弃嗜欲,或许将大大获得神力,但是我酒色不断,是自己走向死亡,不是仙丹的过错。然而我的尸体必将有奇特之处,不要匆忙入殓,以使后人知道服用仙丹...
· 图形处理器
历史1970年代ANTIC和CTIA芯片为Atari-8位电脑提供硬件控制的图形和文字混合模式,以及其他视频效果的支持。ANTIC芯片是一个特殊用途的处理器,用于映射文字和图形数据到视频输出。ANTIC芯片的设计师,JayMiner随后为Amiga设计图形处理器。1980年代CommodoreAmiga是第一个于市场上包含映像显示功能在其视频硬件上的电脑,而IBM8514图形系统是第一个植入2D显示功能的PC显卡。Amiga是独一无二的,因为它是一个完整的图形加速器,拥有几乎所有的视频产生功能,包括线段绘画,区域填充,块图像传输,以及拥有自己一套指令集(虽然原始)的辅助绘图处理器。而在先前(和之后一段时间在大多数系统上),一般用途的中央处理器是要处理各个方面的绘图显示的。1990年代S3GraphicsViRGE显卡1990年代初期,MicrosoftWindows的崛起引发人们对高性能、...
· 中央处理器
历史EDVAC,第一台电子储存式可编程计算机。在现今的CPU出现之前,如同ENIAC之类的计算机在执行不同程序时,必须经过一番线路调整才能启动。由于它们的线路必须被重设才能执行不同的程序,这些机器通常称为“固定程序计算机”(fixed-programcomputer)。而由于CPU这个词指称为执行软件(计算机程序)的装置,那些最早与储存程序型计算机一同登场的装置也可以被称为CPU。储存程序型计算机的主意早已体现在ENIAC的设计上,但最终还是被省略以期早日完成。在1945年6月30日,ENIAC完成之前,著名数学家冯·诺伊曼发表名为"关于EDVAC的报告草案"的论文。它揭述储存程序型计算机的计划将在1949年正式完成(冯·诺伊曼1945)。EDVAC的目标是执行一定数量与种类的指令(或操作),这些指令结合产生出可以让EDVAC执行的有用程序。特别的是,为EDVAC而写的程序是储存在高速计算...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信