YACC在领域语言中的运用

来源 :南京邮电大学 | 被引量 : 0次 | 上传用户:fanqiefanqie
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近几年对领域语言(DSL)的研究越来越深入,比如基于网络监控的网络监控语言、基于银行出帐系统的银行出帐语言等等。这些语言研究都取得了相当的成果,当某门领域语言被完善地定义出来后,如何实现该语言便成程序员的工作了。尽管用来设计实现领域语言的工具很多,比如UML、Ruby等,但是使用Yacc来描述有其特定的优点:首先Yacc的规则段可以很明确的描述出领域语言的语法结构;其次使用Lex进行语法分析,然后结合Yacc语法分析,也可以很轻易的定义出领域语言的词法结构;在需要添加或者修改领域语言的某些特性,使用Yacc来描述,可以使程序扩展性很强;最重要的一点,一旦使用Yacc将领域语言描述出来,那么实现该领域语言也便得相当容易。 本文主要研究Yacc在设计与实现领域语言中的运用:首先简要介绍领域语言的产生背景、特点、分类以及一个简单DSL例子;其次研究了Yacc的语法结构以及Lex的语法结构,包括对正则表达式的简介以及探讨了Yacc的优势;然后通过使用Yacc对数据库领域语言SQL(结构化查询语言)的分析,包括用Lex进行SQL词法分析(其中SQL的语法分析只涉及操作语句),通过使用Yacc来分析SQL语法,充分体现Yacc在设计与实现领域语言中的优势;最后设计与实现的一门终端画图语言(TDL):包括终端画图语言的定义、Lex词法分析、Yacc语法分析,并且使用Yacc和C实现了该领域语言,并且给出了该门领域语言的应用。
其他文献
本研究针对因特网上的文本数据进行语言识别,包括网页和电子邮件内容等,以构建实时、高效的语言识别模块为目标,设计了一种复合方法来实现多语种文本的语言识别。文章首先介绍了
在网络信息时代中,信息量庞大,且信息模式多样。XML作为兼具可扩展性及灵活性的通用数据传输格式,越来越多地被人们用来表示异构数据,以克服多数据源的不一致性,从而达到信息
随着多媒体技术和计算机网络的迅速发展,越来越多的数字信息产品通过网络广泛传播。在给人们带来便利的同时,由此而引发的非法拷贝和恶意篡改等侵权行为也引起了人们的关注。
通常认为,中间节点所进行的数据处理对数据传输过程本身并不会带来任何好处:然而,2000年,Ahlswede等人在IEEE信息论会刊上发表了题为《NetworkInformationFlow》的论文,彻底推翻了
在实时控制系统中,软件是控制反馈环的重要部分。该类软件中增加了严格的时间要求,同时低级的实时技术须与高级的程序设计、网络通信、仿真和控制相结合。作为控制大型复杂不确
随着信息技术的高速发展,数据库应用的规模、范围和深度不断扩大,产生了“数据丰富而信息贫乏”现象。为了解决这一问题,人们提出了数据挖掘技术。经过十几年的发展,数据挖掘
图作为一种结构化的信息表示形式,在模式识别领域中日益得到广泛重视。图嵌入方法结合统计学习理论中向量空间的优势,将图嵌入至一定维数的向量空间,通过向量空间的相似性度
网格作为新一代的网络技术和基础设施,已经引起了广泛的研究和开发热潮。在网格环境中,有大量不同需求的作业和广域分布的计算资源,这些资源没有全局的控制中心且动态变化,动态形
压缩感知自诞生至今,凭借其理论上的显著优越性吸引着众多研究者的关注。这一理论的核心思想是对可压缩的信号进行压缩采样,使用对应的信号重构算法,以远少于原始信号长度的
建筑业自改革开发以来高速增长,是国民经济的重要支柱产业,但建筑质量、安全事件时而发生,造成了巨大的经济财产损失,甚至人员伤亡。当前中国的建筑质量管理信息化工具匮乏,大多数