首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 62 毫秒
1.
程序设计语言的GLR优化分析   总被引:1,自引:0,他引:1       下载免费PDF全文
李虎  金茂忠  许福  张敏 《软件学报》2005,16(2):174-183
阐述了在程序设计语言语法分析器的构造中采用通用LR(generalized LR,简称GLR)分析算法的动机.提出了一个多层次的优化策略,加快了GLR分析器的分析速度.为基本的GLR算法增加了必要的运行时控制机制,以实现语法分析时调用文法规则附带的语义动作,化解输入串的二义性,同时避免GLR分析器可能存在的语义动作延迟问题.优化后的算法已在一个可视化语法分析器自动生成环境VPGE中实现.实验结果表明,在分析确定性的编程语言时,自动生成的GLR分析器的分析速度与自由软件基金会的Bison生成的LALR(1)分析器的分析速度有可比性.  相似文献   

2.
C++语言的文法十分复杂,采用LL(k)或者LR(k)分析方法都面临二义性问题。另外,内联函数分析,名字查找,模板分析,需要采用特殊的方法解决,本文主要阐述了这些问题,并结合实际的分析器JLParser提出了其解决方法。  相似文献   

3.
LR(k)文法能描述所有确定型上下文无关语言,广泛应用于各类分析器生成器中.传统的LR(k)文法断点调试方法仅支持在产生式右部末尾设置断点(后文简称尾部断点),不支持在产生式右部中间位置设置断点(后文简称中间断点),这给分析器的开发和调试带来了不便.文中提出了一种新颖的LR(k)文法断点调试方法,不但支持传统的尾部断点,还支持中间断点.该方法可显著增加可利用的断点数量,可以跟踪到更细粒度的文法成分,从而帮助用户更好地进行文法调试,降低分析器的开发难度.  相似文献   

4.
LALR(1)分析程序生成系统在编译器构造领域以外被许多普通软件开发者学习和使用.为帮助用户理解LALR(1)分析器方法,编写出正确、完整、无语法分析冲突的文法规范,严格定义了使用LALR(1)分析器生成器时用户可能遇到的几类文法问题,描述一个为帮助用户解决这些问题而开发的LALR(1)分析器可视化和断点调试系统VPGE.VPGE以多种视图显示LALR(1)分析器的数据结构,包括状态栈、符号栈、输入符号串、分析树和底层的自动机,支持LR分析动作的单步执行和断点调试.性能实验结果表明,VPGE比GNU的Bison有更快的分析器生成速度,从而提供了一个LALR(1)文法及分析器的快速交互式调试环境.  相似文献   

5.
指挥控制协同性是实现信息化条件下联合作战指挥的关键。针对当前对指挥控制协同能力需求缺乏形式化描述和分析方法等问题,提出一种指挥控制协同能力需求形式化描述框架,运用进程代数方法对能力之间的关系以及操作进行形式化定义,消除了采用自然语言描述协同能力合成过程中可能产生的语义二义性。案例分析验证了该方法的可用性和有效性。  相似文献   

6.
文法具有二义性是实际中经常遇到的情况。本文以SLR(1)分析器为例介绍了一种为二义性文法构造语法分析器的方法,并通过实例分析了利用该方法进行语法分析的过程。  相似文献   

7.
DOSFGS中的语义子系统   总被引:1,自引:0,他引:1  
分布式OS形式化生成系统模型(DOSFGS)主要由文法部分DOSFSG和语义子系统DOSFSS组成.其中DOSFSG采用了上下文无关文法(CFG)。DOSFSS则是一个带操作集的语义子系统,DOSFGS按照抽象、描述和细化三个步骤自动模拟生成用户所需的分布式OS。本文主要讨论其中的语义子系统DOSFSS的设计思想、操作集及其定义及基本工作流程等。  相似文献   

8.
LR分析法在词法分析器自动构造中的应用   总被引:7,自引:2,他引:7  
温敬和 《计算机工程》2001,27(7):188-190
提出了一种新的自动构造编译程序词法分析器的方法,LR分析法通常用于语法分析,但只要适当修改LR分析总控程序,就可将LR分析法用于词法分析器的自动构造。该方法的优点不仅在于将词法分析器自动构造方法与语法分析器自动构造方法统一,简化了编译程序的设计和构造,而且该方法自动化程序较高,只要确定描述单词的文法和词形编码表,便可自动生成任何程序设计语言编译程序的词法分析器。  相似文献   

9.
基于UML的软件形式化需求分析与验证   总被引:1,自引:0,他引:1  
姚全珠  王江 《计算机工程》2010,36(13):30-33
针对软件开发中传统的需求分析方法所存在的需求描述不完整、具有二义性和不一致性问题,提出一种形式化需求分析方法。介绍根据用户需求采用形式化方法获取软件需求说明书并设计软件的统一建模语言(UML)模型的过程,及对该UML模型进行形式化描述,采用形式化验证技术对形式化后的UML模型进行需求验证,以确保设计的UML模型的正确性。实验结果表明,形式化的需求分析方法克服了传统需求分析方法中存在的问题。  相似文献   

10.
一、前言LR分析算法是knuth 1965年首先提出的.LR分析器能自动生成,运行效率高,查错功能强,识别语法类大,可用于大多数由上下文无关文法描述的程序语言.然而,由于一般的LR分析器状态数量极多,需要大量的存储空间,很不实用.为此,人们做了许多努力.以后演变出的SLR、LALR文法都是对LR文法加以某种限制,所识别的文法类是LR文法的一个子集,因此可以比较有效地实现.  相似文献   

11.
随着计算机及软件系统逐步渗透到社会生活的方方面面,对软件可靠性、安全性和保密性的要求也越来越高.本文阐述了形式化方法的定义、重要性及主要研究内容。着重讨论了形式规约方法,以及演绎证明和模型检测等形式验证方法。  相似文献   

12.
本文介绍了一种基于形式化规格说明语言COOZ的面向对象设计方法并给出实例。该方法用COOZ描述类的设计规格说明,实现了从形式化需求描述到形式化设计的平滑过渡。文中重点讨论了与设计方法有关的一些面向对象概念:对象类型和类的分开、子类型和继承的分开、灵活的消息传递和参数转换机制、主动对象和被动对象、根类的定义等。  相似文献   

13.
Specifications written in the formal specification language Z often make use of a form of decomposition that is novel to programmers. A published Z specification is rewritten using the form of decomposition familiar to programmers. Whenever decomposition is used, there must be some strategy for deciding what is to go in one component and what is to go in another. At the highest level, the strategy underlying the rewritten specification is the well-known strategy of separating user interface issues from deeper system functionality issues. The effectiveness of the strategy is put to a simple test by showing how a modification to the interface can be supported by a modification to only part of the specification. The conclusions drawn are that care over decomposition is important in specifications, just as it is in programs, and that lessons learned from programming about effective decomposition strategies can be applicable at the specification level, too. In particular, the lesson relearned is that it is important to separate information about a system's functionality from information about how this functionality is presented to users.  相似文献   

14.
介绍了安全数据库形式化顸层规范,定义了顶层规范中SQL操作的描述,在此基础上给出简单SQL操作的定义,并对其进行分析验证,最后将一般SQL操作的分析验证转换为多个简单SQL操作的分析验证.验证过程表明,该方法既对SQL操作作了完整清晰的描述,又简化了证明.  相似文献   

15.
The advantage of COOZ(Complete Object-Oriented Z) is to specify large scale software,but it does not support refinement calculus.Thus its application is comfined for software development.Including refinement calculus into COOZ overcomes its disadvantage during design and implementation.The separation between the design and implementation for structure and notation is removed as well .Then the software can be developed smoothly in the same frame.The combination of COOZ and refinement calculus can build object-oriented frame,in which the specification in COOZ is refined stepwise to code by calculus.In this paper,the development model is established.which is based on COOZ and refinement calculus.Data refinement is harder to deal with in a refinement tool than ordinary algorithmic refinement,since data refinement usually has to be done on a large program component at once.As to the implementation technology of refinement calculus,the data refinement calculator is constructed and an approach for data refinement which is based on data refinement calculus and program window inference is offered.  相似文献   

16.
形式化方法概貌   总被引:1,自引:0,他引:1  
形式化方法是基于严格数学基础,对计算机硬件和软件系统进行描述、开发和验证的技术.其数学基础建立在形式语言、语义和推理证明三位一体的形式逻辑系统之上.形式化方法已经以不同程度和不同方式愈来愈多地应用在计算系统生命周期的各个阶段.介绍了形式化方法的发展历程和基本方法体系;以形式规约和形式验证为主线,综述了形式化方法的理论、方法、工具和应用的现状,展示了形式化方法与软件学科其他领域的交叉和融合;分析了形式化方法的启示,并展望了其面临的发展机遇和未来趋势.形式化方法的发展和研究现状表明:其应用已经取得了长足的进步,在提高计算系统的可靠性和安全性方面发挥了重要作用.在当今软件日益成为社会基础设施的时代,形式化方法将与人工智能、网络空间安全、量子计算、生物计算等领域和方向交叉融合,得到更加广阔的应用.研究和建立这种交叉融合的理论和方法不仅重要,而且具有挑战性.  相似文献   

17.
The importance of effective requirements analysis techniques cannot be overemphasized when developing software requiring high levels of assurance. Requirements analysis can be largely classified as either structural or functional. The former investigates whether definitions and uses of variables and functions are consistent, while the latter addresses whether requirements accurately reflect users' needs. Verification of structural properties for large and complex software requirements is often repetitive, especially if requirements are subject to frequent changes. While inspection has been successfully applied to many industrial applications, the authors found inspection to be ineffective when reviewing requirements to find errors violating structural properties. Moreover, current tools used in requirements engineering provide only limited support in automatically enforcing structural correctness of the requirements. Such experience has motivated research to automate straightforward but tedious activities. This paper demonstrates that a theorem prover, PVS (Prototype Verification System), is useful in automatically verifying structural correctness of software requirements specifications written in SCR (Software Cost Reduction)‐style. Requirements are automatically translated into a semantically equivalent PVS specification. Users need not be experts in formal methods or power users of PVS. Structural properties to be proved are expressed in PVS theorems, and the PVS proof commands are used to carry out the proof automatically. Since these properties are application independent, the same verification procedure can be applied to requirements of various software systems. Copyright © 2001 John Wiley & Sons, Ltd.  相似文献   

18.
19.
一种结构化形式化说明的方法   总被引:1,自引:0,他引:1  
形式化方法使用数学符号来描述系统的性质,它具有精确性、无二义性和一致性等特点,这些优点使形式化方法在安全性要求很高的情况和大型系统中得到了广泛的应用,但用形式化方法来分解、组织形式化说明,使之具有灵活性和可管理性并具有良好的风格。  相似文献   

20.
基于软件体系结构的开发将是未来大型、复杂软件开发的主要技术,而构件是该方法的基础。形式化构件规约对构件的功能描述、分类和检索有重要意义。文中给出了一种用于形式化构件规约自动生成的转换方法即演化转换,对该方法的转换过程、转换规则提取、表示及主要转换算法进行了详细说明,并对规约的完整性和转换的正确性进行了探讨。最后,还对该方法的实现系统及其特点进行了简要介绍。演化转换能较好地控制转换粒度和跨度,对转换正确性和规约完整性也有一定的保证,在转换过程中实现了规约的垂直重用,使构造的模型和规约对需求变化有一定的适应性。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号