一、一种基于递归算法的自顶向下语法分析方法(论文文献综述)
王乐[1](2021)在《基于知识图谱的软件安全漏洞挖掘技术研究》文中指出随着软件结构和功能日益复杂,软件安全事件频发,严重威胁到国家安全和社会的稳定,软件安全问题受到工业界和学术界的广泛关注。漏洞是导致软件安全问题的根源之一,使用传统的方法进行漏洞挖掘和检测不仅仅耗时耗力,且效率较低。知识图谱成功应用于各个领域,促进了软件安全研究领域发展。因此借助于知识图谱等相关技术,能够分析、推理和挖掘出漏洞语义之间潜在的关系,提高软件安全漏洞挖掘的精度,降低漏报率和误报率。本文工作主要围绕以下三方面展开:(1)针对当前漏洞样本数据采集效率低,成本高等问题,本文通过网络爬虫辅之半自动化方式从 NVD(National Vulnerability Database)和 CVE(Common Vulnerabilities&Exposures)漏洞数据库中获取数据,并进行预处理及分类,得到了 SQL注入、命令注入、缓冲区溢出等常见高危可操控漏洞的样本,为漏洞知识图谱提供了可靠的数据来源。(2)针对当前漏洞数据利用率低、漏洞语义信息不够丰富、分析手段欠缺等问题,提出一种漏洞知识图谱构建方法。首先基于现有软件安全数据,综合考虑了供应商、受影响的产品、漏洞、漏洞类型和源代码五种不同类型的实体并以此构建了软件安全本体模型。接着针对不同种类的实体分为面向软件和面向源代码实体,面向软件实体主要通过BILSTM-CRF模型对漏洞文本描述进行实体识别,面向源代码实体通过对代码片段进行程序分析解析后得到相关实体。然后针对不同类型的实体进行关系抽取以及知识融合。最后将获取到的实体和关系存储到Neo4j图数据库。(3)针对当前软件安全漏洞挖掘技术精度低、误报率高等问题,提出一种基于知识图谱的漏洞挖掘方法。首先在漏洞知识图谱上进行CWE链式推理,经链式置信度计算公式,得到CWE链式推理结果,该链式推理结果可为复合漏洞的检测和挖掘提供可靠依据。接着以危险函数或者补丁增减位置为出发点,基于图的相似度匹配方法,计算待检测节点和漏洞库节点间的相似性,经阈值分析比较,判断是否存在漏洞。最后验证提出方法的有效性和可行性。实验结果表明,与传统的漏洞挖掘工具相比,本文提出的方法具有较低的漏报率和误报率,且准确率相对较高,在漏洞分析、追踪、溯源等方面具有较为广泛的应用价值。
潘华稳[2](2020)在《面向C语言软件的单元与集成测试工具的设计与实现》文中研究指明软件测试是保障软件质量的重要手段,包含单元测试、集成测试、配置项测试、系统测试等多个测试过程。单元测试对软件的最小可测试单元进行检查和验证,是最低级别的软件测试过程。集成测试作为单元测试的扩展,能够验证各单元集成时发生的问题。在实际应用中,由于测试工作量巨大,单元测试过于以覆盖率为主要目标而忽视功能测试,集成测试又没有有效的测试评价手段,测试的投入产出比很低,加之测试过程完全依赖人工,或者使用不够简单易用且基本来自国外的测试工具,导致单元与集成测试常常流于形式,在单元测试时只考虑覆盖率,集成测试更是简单测试或直接略过,未能真正起到保障软件质量的作用。没有易用的测试工具是出现以上问题的主要原因之一。本文试图立足于工程应用需求,充分分析单元测试和集成测试在工程应用中的问题,设计实现一款适用于实际工程应用的、简单易用的国产化单元与集成测试工具。工具能够自动抽取函数单元的接口信息、函数内的控制流关系、函数间的调用关系,并提供控制流关系和函数调用关系的可视化显示,提供表格化的易用型用例设计界面,可自动化生成用例脚本和桩函数、驱动函数脚本,支持自动化的覆盖率统计分析、代码覆盖率标注和控制流关系、函数调用关系的覆盖率染色标注。工具将集成测试作为独立的测试过程,不依赖于单元测试,结合学术研究,支持多种默认的集成测试方案和可定制方案选择。测试完成后,工具支持可定制报告导出。本文的研究试图解决在工程应用中无易用单元与集成测试工具的问题,希望通过对工具的使用,减少测试人员不必要的工作量投入,如覆盖率计算、用例脚本和测试报告编写等,集中测试人员精力进行用例设计,从而发现问题,提高投入产出比,提升测试效率,并最终实现单元与集成测试工具的国产化替代。
朱云凯[3](2020)在《基于MSVL的智能合约建模与验证》文中指出2008年中本聪(Satoshi Nakamoto)首次提出了区块链的概念,在过去的十几年中,区块链技术凭借其去中心化、公开透明以及不可篡改等特性而被广泛应用,其中最具代表性的是以太坊(Ethereum)。以太坊是一个开源的区块链系统,提供了丰富的接口,任何人都可以在以太坊上开发智能合约程序,以太坊中大多数智能合约都是用Solidity语言编写的。以太坊为智能合约提供了天然的执行平台,智能合约能够为以太坊自动处理复杂的业务逻辑。随着智能合约被广泛使用,合约漏洞事件却层出不穷,智能合约的安全性引起了人们的关注。在智能合约部署到区块链系统之前,对其进行安全审计是至关重要的。由于智能合约与用户的财产安全直接相关,传统的测试手段并不能满足审计的需求。形式化方法采用数学推理的方式来验证系统的安全性,本文将形式化方法中的模型检测应用于智能合约的建模与验证,基本思想是首先描述待验证系统的模型,然后描述待验证系统的性质,最后验证模型是否满足性质。为实现对智能合约程序需求、结构、行为以及参数约束等各方面的描述,需要一种定义良好、易于表达且普遍适用的标准建模语言。本文提出了一种基于时序逻辑程序设计语言(Modeling,Simulation and Verification Language,MSVL)的智能合约建模与验证方法。首先,使用MSVL对Solidity语言编写的智能合约程序进行建模,为了减少建模过程中大量的人工操作,开发了基于JavaCC(Java Compiler Compiler)的转换器SOL2M,可以将Solidity程序自动转换为MSVL程序。给出了SOL2M转换器的整体架构,并分别从预处理、词法分析、语法分析以及程序转换四个模块对其具体实现流程进行了详细介绍。之后,为了给智能合约建模程序的运行提供基础的结构与数据,使用MSVL程序对区块链底层进行了抽象建模。然后,为了能够对智能合约程序进行递进式验证,使用命题投影时序逻辑(Propositional Projection Temporal Logic,PPTL)公式分别从功能一致性、逻辑正确性以及合约完备性三个方面对合约的性质进行描述。最后,将描述模型的MSVL程序和描述性质的PPTL公式统一到MSVL模型检测器(Unified Model Checker for MSVL,UMC4M)中进行验证,根据验证结果来完善智能合约程序进而保证合约的完备性。基于上述方法及工具,通过具体的投票智能合约实例表明该方法的有效性以及可行性。
李盛[4](2020)在《分组密码专用描述语言及编译技术研究》文中研究指明可重构专用指令密码处理器具有面向密码运算的专用指令集和可重构专用运算单元,密码处理性能高、灵活性强,已成为密码算法的一种重要实现方式。但该类处理器指令集和体系结构复杂,代码编写和编译优化困难,影响了芯片应用,本文针对这一问题开展了研究,主要成果及创新点如下:1.提出了一种分组密码专用描述语言DSLBCA(Domain Specific Language for Block Cipher Algorithm)。针对通用编程语言难以直观描述分组密码算法的算子和结构的问题,采用领域专用语言建模的方法,从问题域和解答域的角度建立了分组密码算法加密过程特征模型、层次化特征模型和执行模型,定义了DSLBCA语言的数据类型、标识符、函数结构和程序控制结构,使密码应用者能够通过数学思维方式编写算法程序代码。2.设计了面向DSLBCA和可重构VLIW分组密码处理器RVBCP(Reconfigurable VLIW Block Cipher Processor)的编译基础设施。研究了RVBCP处理器指令集特点,结合分组密码专用描述语言的语言规则,提出了相应的编译基础设施,设计了词法分析器、语法分析器、语义分析器,实现了DSLBCA程序代码向RVBCP汇编指令集的符号编译。3.提出了面向可重构多引擎密码So C的反馈式编译器结构。研究了基于RVBCP的多引擎密码So C(System on Chip)的工作流程,提出了反馈式编译器结构,设计了基于平均代码行数的循环展开因子算法UFACLA(Unrolling Factor Based on Average Code Line Amount),在编译器前端实现了DSLBCA应用程序源代码在So C下的并行分配;并对展开后的代码进行标量替换,通过降低访存时间提高了分组密码算法的执行效率。4.提出了DSLBCA程序代码在RVBCP中的算子自动映射方案。建立分组密码算子调度参数模型,量化描述算子结点的调度状态信息;建立RVBCP的计算资源与寄存器资源参数模型,量化计算运行时计算资源与寄存器资源的消耗;基于贪婪策略、列表调度与线性扫描算法思想,设计了面向多发射可重构分组密码算法指令集处理器的并行资源分配算法,实现了分组密码算子在RVBCP上的自动并行映射。5.提出了RVBCP处理器低功耗指令调度方案。分析VLIW(Very Long Instruction Word)指令级功耗模型和RVBCP指令字内部指令排序与动态功耗变化的关系,对调整指令字之间汉明距离的方案进行了数学描述和讨论,将该低功耗指令调度问题归纳为广义旅行商问题,提出了一种基于禁忌搜索的改进广义遗传算法求解广义旅行商问题,实现了低功耗指令调度。
林旭军[5](2020)在《任务指令驱动的工业机器人离线编程关键技术研究》文中研究指明传统的工业机器人离线编程软件侧重于动作指令编程,面向任务编程化的程度低,针对复杂任务的编程,编程繁琐且编程耗时长。因此,传统的以动作指令编程为主导的离线编程软件难以满足日需增长的机器人操作应用,设计以面向工业机器人任务指令编程的离线编程软件得到广泛的关注与研究。随着传感技术的发展,以相机为代表的人机交互方式日趋成熟,通过相机实现手势驱动机器人完成任务,实现机器人操作的易用性与快捷性。但是目前机器人的手势驱动控制缺乏系统性的层次描述,只能完成简单的动作,并且手势与机器人指令映射单一。在机器人规划层面,操作人员占据主体地位,机器人内部缺乏智能化的自主规划,无法对操作人员的规划进行优化处理。针对上述工业机器人任务指令编程的关键技术问题,本文对其进行探索与研究,内容如下:研究面向任务指令离线编程的系统方法。首先基于模块化解耦合设计方法,设计了层次化的任务指令编程系统;然后针对离线编程任务指令的编程语言,提出了自顶向下的任务指令封装方法,实现专家与操作人员的指令层次开发;再者针对编程语言的解释器,基于自动机原理设计了高效的解释执行式的解释器;最后针对编程方式,提出了一种树形结构的图形控件可视化编程方法,以树视图的方式呈现机器人的操作指令,使得编程开发效率快速化,操作简单化。研究基于任务指令的工业机器人手势驱动控制方法。首先针对任务指令的层次架构,设计了手势类型,并以模块化的方式实现手势与任务指令的解耦合;然后利用Kinect深度相机,对手势图像进行预处理,实现手势的背景分割;接着基于神经网络的卷积深度可分离,实现静态手势的实时识别,基于手势序列的空间方向序列和静态手势识别结果,实现动态手势序列的实时识别;最终将手势识别结果通过手势指令映射器,实现机器人手势驱动控制。研究面向任务的工业机器人自适应空间路径规划方法。首先针对人工势场路径规划法分析其中存在的不足;然后针对三维空间中障碍物的表述方法,提出了基于八叉树的球树模型表达方式;针对改进人工势场法存在的不可达点问题,提出构造虚拟目标点的方法;针对路径规划方法所得点仅满足位置连续的问题,通过路径压缩提取必要信息点,并构造光顺曲线实现路径的光顺化;最后实现机器人路径规划的连续化。实现面向任务指令的工业机器人离线编程系统并进行验证。基于本文研究的任务指令离线编程方法、手势驱动的人机交互方式和自适应空间路径规划方法,从系统的功能模块需求出发,设计了系统的层次架构和交互界面,最终通过机器人运动仿真来说明和验证本文提出方法的可行性和有效性。
邢利明[6](2020)在《C++静态分析中前端构建方法的研究与实现》文中研究表明随着当今社会计算机技术的发展,各类软件的代码规模不断增加,代码中所存在的问题排查难度越来越大,因此自动化软件测试逐渐受到了人们的重视。抽象语法树这一数据结构作为软件测试中代码信息的来源,其正确性与完整性对于软件测试的最终结果有着决定性的作用。传统的抽象语法树生成技术大都依赖于开发人员所提供的语法范式,且这些抽象语法树生成技术主要是进行较为简单的词法和语法分析,对于复杂程度较高的语法会出现分析失败的问题。随着互联网技术的不断发展,计算机语言的复杂程度与更新速度都在不断提高。这些问题会导致开发人员维护抽象语法树生成的成本和难度越来越高。为了降低抽象语法树生成成本以及其维护难度,本文提出了一种新的抽象语法树生成方法,通过借助编译器编译时所生成的抽象语法树,来达到抽象语法树生成的目的。借助编译器,可以将语言升级时的维护工作交由编译器,开发人员只需要对生成策略中的对应类进行增加和删除即可,此方法可以大大降低维护成本和难度。本文借助G++编译器进行整体工作的说明,借助编译器进行抽象语法树生成时,很重要的工作是对编译器所导出的中间文件进行解析,对其中的抽象语法树信息进行分析,寻找将文本化的信息重新整合为抽象语法树的方法。抽象语法树的完整性对测试工作的正确性有着非常大的影响,因此对新建抽象语法树进行完整性测试有着非常重要的意义,但是抽象语法树的规模一般非常庞大,无法一对一验证其完整性,因此本文采取对比代码块数量,声明语句以及关键字对其进行验证。通过7个工程的测试结果与分析,以及与传统抽象语法树构建方法的对比,验证了该方法在抽象语法树完整性以及有效信息提取比例方面都有着良好的表现。为了表述简单,文中会将编译器的预处理,词法与语法分析统称为预处理。
王慧娇,黄廷辉,朱英[7](2018)在《以计算思维能力培养为核心的“编译原理”课程教学改革探索与实践》文中研究指明本文针对"编译原理"课程的教学目标及培养学生计算思维能力的需要,分析了"编译原理"课程的特点与教学中存在的一般问题,提出了以计算思维能力培养为核心的"编译原理"课程教学模式。该模式以计算思维的两个A为基础,将计算思维的各个方面(如嵌入、约简、递归、转化等),有机整合到教学过程中,着重培养学生的计算思维能力。
杨湛宇[8](2018)在《面向开源软件复用的程序增量分析技术研究》文中研究指明复用开源软件对缩短产品研发时间、降低研发成本、提高软件质量具有重要意义。代码侵权检测、质量评价及同步更新是开源软件复用过程中的三个重要环节,此三者均依赖于高效的程序分析方法支撑。现有的程序分析方法主要识别完整的语法结构,分析时间依赖于整体代码规模,缺乏对开源代码仓库的高效分析支持,没有有效利用开源代码仓库中快照间的高度相似性特点,难以满足海量开源代码的高效分析需求。为解决上述问题,本文提出了一种面向开源软件复用的程序增量分析技术,针对开源代码仓库的存储特点,仅对变更的函数进行增量分析,从而有效减少分析规模。本文的增量分析方法利用了开源代码仓库中相邻快照间高度相似这一特点。首先,获取快照间的增量文本变更,通过映射算法将文本格式的变更转换成可分析的函数对象,从而获得增量函数集合。然后,设计了面向开源软件复用的程序分析器,实现了函数信息获取。为了实现函数的快速比对,本文结合N-gram模型设计了一种函数指纹计算方法,并给出了基于函数指纹的相似度比对方法。在此基础上,构建了函数指纹索引库,针对上述三方面的开源代码复用挑战,提出了相应的解决策略。最后,设计了四组实验进行验证,实验结果证实了上述增量分析方法的有效性。本文首次提出了面向开源软件复用的开源代码仓库增量分析方法,有效减少了开源代码的分析规模,有助于提高整体分析速度、降低分析结果存储大小,能有效满足大规模开源代码仓库的海量分析需求。本研究成果不仅在开源代码复用领域有重要应用价值,在其它领域也有广泛的应用前景。
朱朝霞[9](2018)在《递归对自顶向下语法分析的影响》文中提出在编译程序的语法分析中,含有左递归的文法,无法采用自顶向下的方法来进行语法分析,该文从递归的角度出发,讨论递归对自顶向下语法分析的影响。
谢武平[10](2017)在《云服务编程语言Apla+及其实现方法研究》文中研究表明通过高速网络连接,各类计算资源互联构成了一个庞大的全球计算机系统。资源请求因资源以云服务形式分享而无处不在,这一转变正在改变每个人对计算能力获取、消费和提供等方面的使用习惯。各主要国家和知名企业纷纷推出云计算发展规划,加快建设云计算平台。然而通过网络请求使用云服务具有动态开放的特点,采用面向固定环境的传统编程方法开发云服务系统并非易事。一方面云服务供应商捆绑使得部署在不同云平台的云服务难以直接集成;另一方面网络环境的动态性要求在集成云服务时既要考虑用户需求的多样性又要分析相互竞争云服务的绑定方法。因此,本文针对云服务呈现的新特征,提出一种新型云服务编程语言Apla+,支持便捷地开发云服务系统。云服务是Apla+编程的基本单元,Apla+使用资源描述机制Bundle消除云服务的平台依赖。基于面向服务分析中得到的不确定候选服务集,在Apla+中提出抽象服务请求机制有效实现运行时动态绑定云服务。通过定义集成云服务的服务组合机制,可便捷地实现组合小服务得到功能增值的大服务。通过定义Apla+形式语义,研究了用于分析云服务系统动态重构的等价关系。最后,由Apla+编写的程序将由支撑环境自动生成目标代码并编译执行。具体说,本文主要做了以下几方面工作:(1)提出Apla+中云服务编程机制服务是资源动态执行时提供的功能,那么不同资源可以提供相同的服务。基于云服务新定义,提出了资源描述机制Bundle用于表示提供服务的不同资源。根据面向服务分析中定义的不确定候选服务集,定义了抽象服务请求机制,其中包含时间和断言的契约可有效应对云计算环境的网络不确定性,契约中的配置信息可用于描述用户个性化需求。通过分析组合服务的基本结构和并行性质,定义了五个具有并行语义的服务组合算子便捷地描述服务集成,其中调用算子体现了云计算环境下便捷处理大数据的思想。这些新机制构成了 Apla+中云服务编程的核心要素。(2)定义Apla+语言的形式语义针对Apla+语言具有并行含义和服务动态绑定的特点,采用标记事件发生时间、执行状态与变量取值共同定义状态和对状态赋予断言等方法定义时间标记的标签转换系统。使用该系统精确定义Apla+语言的语义信息,并以此为基础定义强时间互模拟和弱时间互模拟,进而建立强等价和弱等价关系,可分别用于结构相同组合云服务的等价性分析和结构不同组合云服务的相容性分析。同时针对特定环境中的服务,提出了环境等价及其验证算法并形式化证明了该算法。实现对云服务系统进行形式化分析及优化。(3)研究Apla+的实现方法基于模型驱动开发思想,主要研究了 Apla+程序开发支撑环境的系统架构和实现原理,并采用生成式程序设计方法实现了原型系统。重点研究了开放环境下异构资源的访问方法、异构资源之间数据交互策略和分布式服务并行执行等核心问题及其实现算法。基于Apla+语言语义,定义了由Apla+到Java的程序生成规则库及服务组合算子构件库,从而可自动生成对应的Java目标程序,或直接发布部署为云服务。(4)提出基于迭代的交互式面向服务分析方法基于迭代的交互式面向服务分析将系统分析过程分为交互式面向服务分析和基于迭代的分析过程两部分组成。其中,交互式面向服务分析将系统分析中的创造性活动交由设计过程完成,而精确查找满足规约的服务这一非创造性活动则采用自动化方法实现。采用基于迭代的分析过程可以有效避免分析过程中存在的局部视角缺陷,实现尽可能复用已有服务。最终通过设置可复用服务阈值得到实现云服务系统的不确定候选服务集。将并行绑定算子作用于该集合实现依据服务执行状态选择并绑定服务。
二、一种基于递归算法的自顶向下语法分析方法(论文开题报告)
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
本文主要提出一款精简64位RISC处理器存储管理单元结构并详细分析其设计过程。在该MMU结构中,TLB采用叁个分离的TLB,TLB采用基于内容查找的相联存储器并行查找,支持粗粒度为64KB和细粒度为4KB两种页面大小,采用多级分层页表结构映射地址空间,并详细论述了四级页表转换过程,TLB结构组织等。该MMU结构将作为该处理器存储系统实现的一个重要组成部分。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
三、一种基于递归算法的自顶向下语法分析方法(论文提纲范文)
(1)基于知识图谱的软件安全漏洞挖掘技术研究(论文提纲范文)
摘要 |
Abstract |
1 绪论 |
1.1 研究背景及意义 |
1.2 国内外研究现状 |
1.2.1 漏洞挖掘现状 |
1.2.2 知识图谱研宄现状 |
1.3 主要研究内容 |
1.4 论文结构安排 |
2 理论基础和关键技术 |
2.1 程序分析 |
2.1.1 词法和语法分析 |
2.1.2 数据流和控制流分析 |
2.1.3 抽象语法树分析 |
2.2 知识图谱理论与技术 |
2.2.1 知识图谱定义 |
2.2.2 知识图谱架构 |
2.2.3 知识图谱关键技术 |
2.3 软件安全漏洞挖掘技术 |
2.3.1 软件漏洞定义 |
2.3.2 漏洞挖掘技术 |
2.4 本章小结 |
3 漏洞知识图谱构建 |
3.1 漏洞样本数据采集与预处理 |
3.1.1 漏洞样本数据采集 |
3.1.2 漏洞样本数据预处理 |
3.2 漏洞知识图谱本体组成 |
3.3 漏洞知识图谱实体识别 |
3.3.1 实体识别概述 |
3.3.2 面向软件实体识别 |
3.3.3 面向源代码实体识别 |
3.4 漏洞知识图谱关系抽取 |
3.4.1 面向软件关系抽取 |
3.4.2 面向源代码关系抽取 |
3.5 漏洞知识图谱知识融合 |
3.6 漏洞知识图谱存储与应用 |
3.6.1 漏洞知识图谱存储 |
3.6.2 漏洞知识图谱可视化 |
3.6.3 漏洞知识图谱应用 |
3.7 本章小结 |
4 漏洞挖掘方法 |
4.1 漏洞挖掘总体方案 |
4.1.1 CWE链式推理 |
4.1.2 漏洞挖掘技术框架 |
4.2 漏洞挖掘算法设计 |
4.2.1 算法设计思想 |
4.2.2 算法分析 |
4.3 漏洞挖掘实验 |
4.3.1 实验环境 |
4.3.2 实验数据 |
4.3.3 评价指标 |
4.3.4 实验分析与总结 |
4.4 本章小结 |
5 结论与展望 |
5.1 结论 |
5.2 展望 |
参考文献 |
攻读硕士学位期间发表的论文及成果 |
致谢 |
(2)面向C语言软件的单元与集成测试工具的设计与实现(论文提纲范文)
摘要 |
Abstract |
第1章 绪论 |
1.1 研究背景与意义 |
1.2 单元测试与集成测试工具的研究进展 |
1.2.1 单元测试研究进展及工程应用现状 |
1.2.2 集成测试研究进展及工程应用现状 |
1.2.3 单元与集成测试工具研究进展 |
1.3 本文主要研究内容 |
第2章 工具架构设计 |
2.1 工具需求分析 |
2.1.1 功能需求分析 |
2.1.2 非功能需求分析 |
2.2 工具整体架构设计 |
2.3 基础分析模块功能分析 |
2.4 用户交互模块功能分析 |
2.5 用例执行模块功能分析 |
2.6 小结 |
第3章 基础分析模块详细设计与实现 |
3.1 语法分析功能设计实现 |
3.1.1 语法分析功能介绍 |
3.1.2 语法分析功能实现 |
3.2 控制流程图构造实现 |
3.3 函数调用图构造实现 |
3.4 小结 |
第4章 用户交互模块详细设计与实现 |
4.1 基于Eclipse RCP的工具客户端实现 |
4.2 基于Eclipse插件扩展的用户交互实现 |
4.3 测试工程管理功能设计实现 |
4.3.1 单元测试工程设计实现 |
4.3.2 集成测试工程设计实现 |
4.4 测试用例编辑器设计实现 |
4.4.1 单元测试用例编辑器设计实现 |
4.4.2 集成测试方案设计 |
4.5 小结 |
第5章 用例执行模块设计实现与工具应用验证 |
5.1 自动生成用例脚本功能设计实现 |
5.2 用例执行业务流程设计 |
5.3 覆盖率统计分析功能的设计实现 |
5.3.1 代码覆盖率介绍 |
5.3.2 源代码插装功能设计 |
5.3.3 覆盖率分析计算功能设计 |
5.4 可定制化测试报告生成功能设计实现 |
5.5 工具应用实践 |
5.5.1 创建被测工程 |
5.5.2 应用工具进行单元测试 |
5.5.3 应用工具进行集成测试 |
5.5.4 非功能性需求验证 |
5.6 小结 |
第6章 结论与展望 |
6.1 工作总结 |
6.2 下一步研究方向 |
参考文献 |
致谢 |
作者简历及攻读学位期间发表的学术论文与研究成果 |
(3)基于MSVL的智能合约建模与验证(论文提纲范文)
摘要 |
ABSTRACT |
缩略语对照表 |
第一章 绪论 |
1.1 研究背景及意义 |
1.2 研究现状 |
1.3 研究内容与组织结构 |
第二章 相关工作及工具介绍 |
2.1 面向合约语言Solidity |
2.1.1 Solidity概述 |
2.1.2 合约结构简介 |
2.2 PPTL与 MSVL |
2.2.1 PPTL |
2.2.2 MSVL |
2.2.3 统一模型检测器UMC4M |
2.3 JavaCC工具 |
2.3.1 编译基本流程 |
2.3.2 JavaCC概述 |
第三章 SOL2M转换器的研究与实现 |
3.1 预处理 |
3.2 词法分析 |
3.2.1 跳过部分 |
3.2.2 标记部分 |
3.3 语法分析 |
3.3.1 合约的语法规则 |
3.3.2 基本语句的语法规则 |
3.3.3 表达式的语法规则 |
3.4 程序转化模块 |
3.4.1 转换规则设计 |
3.4.2 转换方法及流程 |
3.4.3 难点解决 |
3.4.4 特殊处理 |
3.4.5 总结 |
第四章 智能合约的建模与验证 |
4.1 区块链底层模型 |
4.1.1 区块模型 |
4.1.2 交易模型 |
4.1.3 Solidity特殊变量 |
4.2 模型检测 |
4.2.1 基于MSVL的智能合约建模 |
4.2.2 基于PPTL的性质描述 |
4.2.3 验证性质 |
4.2.4 模型反例的验证分析 |
4.3 工具对比 |
第五章 总结与展望 |
5.1 总结 |
5.2 展望 |
参考文献 |
附录 A |
致谢 |
作者简介 |
(4)分组密码专用描述语言及编译技术研究(论文提纲范文)
摘要 |
Abstract |
第一章 绪论 |
1.1 研究背景 |
1.2 国内外研究现状 |
1.2.1 密码算法编程语言 |
1.2.2 处理器的编译技术 |
1.2.3 处理器的编译优化技术 |
1.3 本文主要研究工作 |
1.3.1 研究内容 |
1.3.2 论文结构 |
第二章 理论研究基础 |
2.1 领域专用语言设计概念 |
2.2 分组密码算法特点 |
2.2.1 分组密码算法数学模型 |
2.2.2 分组密码算法的网络结构 |
2.3 可重构分组密码指令集处理器 |
2.3.1 RVBCP体系结构及功能单元 |
2.3.2 RVBCP指令系统 |
2.4 本章小结 |
第三章 分组密码专用描述语言及编译基础设施研究 |
3.1 引言 |
3.2 分组密码专用描述语言建模 |
3.2.1 问题域分析 |
3.2.2 解答域分析 |
3.3 分组密码专用描述语言定义及实例 |
3.3.1 变量类型与数据表示 |
3.3.2 标识符与关键字 |
3.3.3 函数与程序控制结构 |
3.3.4 分组密码描述语言的格式 |
3.4 面向分组密码专用描述语言的编译器基础设施设计 |
3.4.1 词法分析器设计 |
3.4.2 语法分析器设计 |
3.4.3 语义分析器设计 |
3.5 本章小结 |
第四章 编译器结构设计及前端编译优化研究 |
4.1 引言 |
4.2 优化编译结构设计 |
4.2.1 分组密码异构SoC结构及工作流程 |
4.2.2 编译器结构设计原则 |
4.2.3 反馈式编译器结构设计 |
4.3 反馈式编译器前端优化算法研究 |
4.3.1 基于平均代码行数的循环展开算法研究 |
4.3.2 标量替代算法研究 |
4.4 实验及分析 |
4.4.1 实验验证 |
4.4.2 实验结果分析 |
4.5 本章小结 |
第五章 可重构分组密码指令集处理器的自动映射研究 |
5.1 引言 |
5.2 分析与参数建模 |
5.2.1 分组密码算子调度与映射参数模型 |
5.2.2 可重构分组密码指令集处理器资源模型 |
5.2.3 资源消耗与资源约束关系分析 |
5.3 可重构指令集处理器自动映射算法 |
5.3.1 初始化调度 |
5.3.2 资源分配与结点调度调整 |
5.4 实验及分析 |
5.4.1 实验设计 |
5.4.2 实验结果分析 |
5.5 本章小结 |
第六章 面向VLIW结构密码处理器的低功耗指令调度研究 |
6.1 引言 |
6.2 VLIW结构的指令级低功耗分析 |
6.2.1 密码处理器功耗的编译调优方法分析 |
6.2.2 低功耗调度原理分析及低功耗指令调度问题 |
6.3 面向低功耗指令调度问题求解的改进广义遗传算法 |
6.3.1 遗传算法、广义遗传算法与禁忌搜索算法 |
6.3.2 基于禁忌搜索的改进广义遗传算法设计 |
6.4 实验及分析 |
6.4.1 IGGABTS算法仿真实验 |
6.4.2 平均功耗测试 |
6.5 本章小结 |
第七章 总结与展望 |
7.1 研究总结 |
7.2 创新点总结 |
7.3 展望 |
致谢 |
参考文献 |
(5)任务指令驱动的工业机器人离线编程关键技术研究(论文提纲范文)
致谢 |
摘要 |
ABSTRACT |
第1章 绪论 |
1.1 课题来源 |
1.2 研究背景 |
1.3 国内外研究现状 |
1.3.1 任务驱动指令编程研究现状 |
1.3.2 手势驱动的人机交互研究现状 |
1.3.3 工业机器人空间路径规划研究现状 |
1.4 本文的研究内容与组织结构 |
1.4.1 主要研究内容 |
1.4.2 本文组织结构 |
1.5 本文研究意义 |
1.6 本章小结 |
第2章 面向离线编程系统的任务指令设计 |
2.1 引言 |
2.2 基于模块化的任务指令编程系统框架 |
2.3 基于自顶向下层次架构的任务指令编程语言设计 |
2.3.1 任务指令编程语言描述 |
2.3.2 任务指令编程语言设计 |
2.4 基于有限自动机的任务指令编程语言解释器 |
2.4.1 语言解释器的概述与总体设计 |
2.4.2 面向任务的语言解释器的实现 |
2.4.3 面向任务的语言解释器图形化操作 |
2.5 基于语法树的通用模型翻译 |
2.6 本章小结 |
第3章 基于任务指令的工业机器人手势驱动控制 |
3.1 引言 |
3.2 基于层次映射的手势类型设计 |
3.3 基于深度信息的动静态手势识别 |
3.3.1 基于Kinect的深度手势图像获取与预处理 |
3.3.2 基于卷积神经网络的实时静态手势识别 |
3.3.3 基于循环神经网络的动态手势序列识别 |
3.4 基于可视化操作的手势驱动控制 |
3.4.1 手势驱动控制系统的模块构建 |
3.4.2 基于图形界面的手势驱动操作 |
3.4.3 基于任务指令的手势驱动示例 |
3.5 本章小结 |
第4章 面向任务的工业机器人空间路径避障规划 |
4.1 引言 |
4.2 基于传统人工势场的路径规划方法 |
4.2.1 基于球包络的障碍物模型简化 |
4.2.2 改进的人工势场法模型存在的不足 |
4.3 结合球树模型的人工势场法空间规划方法 |
4.3.1 基于八叉树结构的障碍物球树模型 |
4.3.2 人工势场法模型的搭建 |
4.3.3 基于虚拟点的目标点不可达处理 |
4.3.4 路径生成点的光顺处理 |
4.4 结合球树模型的人工势场法仿真对比实验 |
4.4.1 传统人工势场法与本文的人工势场法对比 |
4.4.2 本文的人工势场法在不同切点选取的对比 |
4.4.3 球形包络模型与球树模型的对比 1 |
4.4.4 球形包络模型与球树模型的对比 2 |
4.4.5 球形包络模型与球树模型的路径光顺对比 |
4.5 本章小结 |
第5章 面向任务指令的工业机器人离线编程系统开发与验证 |
5.1 引言 |
5.2 离线编程系统功能需求分析与框架构建 |
5.2.1 离线编程系统的功能需求分析 |
5.2.2 离线编程系统开发环境 |
5.2.3 离线编程系统总体框架构建 |
5.3 离线编程系统用户交互界面设计 |
5.3.1 任务编程模块的交互界面 |
5.3.2 手势驱动模块的交互界面 |
5.4 面向任务指令的工业机器人仿真实验 |
5.4.1 基于图形化界面的机器人复杂环境路径规划 |
5.4.2 基于任务指令的无障碍物手势驱动编程 |
5.4.3 基于任务指令与空间路径避障规划的手势驱动编程 |
5.5 本章小结 |
第6章 总结与展望 |
6.1 全文总结 |
6.2 工作展望 |
参考文献 |
硕士期间的主要研究成果 |
(6)C++静态分析中前端构建方法的研究与实现(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 研究背景 |
1.2 研究内容 |
1.3 论文章节安排 |
第二章 相关技术及存在问题 |
2.1 LEX、YACC抽象语法树生成技术 |
2.2 ANTLR抽象语法树生成技术 |
2.3 JAVACC抽象语法树生成技术 |
2.4 CLANG编译器抽象语法树生成技术 |
2.5 问题分析 |
第三章 G++中间文件解析 |
3.1 类型解析 |
3.1.1 节点特征描述 |
3.1.2 类型节点 |
3.1.3 声明节点 |
3.1.4 表达式节点 |
3.1.5 常量节点 |
3.1.6 语句节点 |
3.2 结构解析及特殊情况说明 |
3.2.1 节点整体结构特征 |
3.2.2 节点属性无对应值 |
3.2.3 节点属性重复出现 |
3.2.4 节点属性与冒号分离 |
3.2.5 节点属性值中存在多个字符串 |
3.3 关系解析 |
3.3.1 节点关系特征描述 |
3.3.2 节点关系分析 |
3.4 来源解析 |
3.4.1 节点来源确定方式 |
3.4.2 节点来源分析 |
3.5 本章小结 |
第四章 基于G++中间文件的前端构建 |
4.1 系统整体架构设计 |
4.2 文件预处理 |
4.2.1 文件预处理流程 |
4.2.2 工程文件信息收集 |
4.2.3 编译器生成中间文件 |
4.2.4 中间文件收集 |
4.3 中间文件解析 |
4.3.1 中间文件解析流程 |
4.3.2 节点信息读取 |
4.3.3 节点信息拆分 |
4.3.4 节点标记 |
4.4 抽象语法树构建 |
4.4.1 抽象语法树节点类设计 |
4.4.2 节点访问方式设计 |
4.4.3 抽象语法树构建方法设计 |
4.5 抽象语法树节点定位 |
4.6 本章小结 |
第五章 基于G++中间文件的前端实现 |
5.1 文件预处理模块 |
5.1.1 文件信息收集 |
5.1.2 中间文件生成 |
5.1.3 中间文件收集 |
5.2 中间文件解析 |
5.2.1 节点信息读入 |
5.2.2 节点信息拆分 |
5.2.3 节点标记 |
5.3 抽象语法树构建 |
5.4 抽象语法树节点定位 |
5.5 本章小结 |
第六章 实验结果及分析 |
6.1 实验环境 |
6.2 实验结果及分析 |
6.2.1 抽象语法树完成率 |
6.2.2 抽象语法树正确率 |
6.2.3 抽象语法树构建效果对比 |
6.3 本章小结 |
第七章 总结与展望 |
7.1 研究工作总结 |
7.2 进一步研究工作 |
参考文献 |
致谢 |
(7)以计算思维能力培养为核心的“编译原理”课程教学改革探索与实践(论文提纲范文)
0 引言 |
1“编译原理”课程教学中以计算思维能力培养为核心的教学模式概述 |
2 以两个A为基础 |
3 计算思维与“编译原理”课程授课内容的结合 |
3.1 案例1:约简与转化方法 |
3.2 案例2:递归与迭代思维 |
3.3 案例3:抽象与分解方法 |
4 结语 |
(8)面向开源软件复用的程序增量分析技术研究(论文提纲范文)
摘要 |
ABSTRACT |
1 绪论 |
1.1 研究背景及意义 |
1.2 国内外研究现状 |
1.3 本文的主要内容 |
1.4 课题的来源及意义 |
1.5 论文结构 |
2 相关技术介绍 |
2.1 版本控制系统 |
2.1.1 中央式版本控制系统 |
2.1.2 分布式版本控制系统 |
2.2 N-gram模型 |
2.3 程序分析技术 |
2.3.1 上下文无关文法 |
2.3.2 LL(k)分析方法 |
2.3.3 LR(k)分析方法 |
2.4 语法分析器自动生成器 |
2.4.1 确定性分析器生成器 |
2.4.2 非确定性分析器生成器 |
2.5 本章小结 |
3 开源代码仓库增量程序分析方法 |
3.1 增量文本变更的获取 |
3.2 文本至函数的映射 |
3.2.1 文本变更的格式处理 |
3.2.2 函数集合的存储格式 |
3.2.3 定位修改的函数 |
3.2.4 新增函数检测 |
3.3 分析器的实现 |
3.3.1 Flex词法分析模块 |
3.3.2 Bison语法分析模块 |
3.4 函数指纹生成 |
3.4.1 Token序列生成 |
3.4.2 N-gram指纹构造 |
3.4.3 相似度比对算法 |
3.5 索引库的构建 |
3.6 增量分析方法的应用 |
3.6.1 许可证侵权检测的解决方案 |
3.6.2 代码质量评估的解决方案 |
3.6.3 代码同步更新的解决方案 |
3.7 本章小结 |
4 增量分析的有效性验证 |
4.1 单一文件分析能力的验证 |
4.2 完整项目分析能力的验证 |
4.3 函数指纹算法的有效性验证 |
4.4 代码复用关系分析能力的验证 |
4.5 本章小结 |
5 总结与展望 |
5.1 结论 |
5.2 贡献 |
5.3 未来的工作 |
参考文献 |
个人简介 |
导师简介 |
获得成果目录 |
致谢 |
(9)递归对自顶向下语法分析的影响(论文提纲范文)
1 递归的定义 |
2 文法中的递归 |
3 递归对自顶向下语法分析的影响 |
3.1 消除左递归引起的无穷推导问题 |
1) 消除直接左递归 |
2) 消除文法中所有多重间接左递归的方法: |
3.2 递归下降语法分析法中的递归 |
4 文法中同时含有左递归和右递归的危害 |
5 结束语 |
(10)云服务编程语言Apla+及其实现方法研究(论文提纲范文)
摘要 |
Abstract |
第1章 绪论 |
1.1 研究背景 |
1.2 研究动机 |
1.3 本文研究内容 |
1.4 论文组织结构 |
第2章 国内外研究现状 |
2.1 云服务 |
2.2 描述服务组合语言 |
2.2.1 BPEL语言系列 |
2.2.2 图形化语言 |
2.2.3 自定义语言 |
2.3 全过程服务编程语言 |
2.4 小结 |
第3章 PAR方法及其支撑平台 |
3.1 PAR方法与PAR平台研究基础 |
3.2 PAR的特色和优势 |
3.3 Apla语言 |
3.3.1 Apia语言特征 |
3.3.2 Apia语言语法 |
3.3.3 Apia程序生成 |
3.4 基于PAR的面向服务分析 |
3.4.1 基于迭代的交互式面向服务分析 |
3.4.2 不确定候选服务集 |
3.5 小结 |
第4章 Apla+中云服务编程机制 |
4.1 云服务编程机制设计目标 |
4.1.1 具体设计目标 |
4.1.2 机制定义总体架构 |
4.2 资源描述机制Bundle |
4.2.1 Apla+中的云服务 |
4.2.2 统一化资源Bundle |
4.2.3 Bundle语法结构 |
4.2.4 异构资源服务化 |
4.3 服务组合机制 |
4.3.1 程序并行性分析 |
4.3.2 Orc语言中并行算子分析 |
4.3.3 服务组合算子 |
4.3.4 组合服务的控制结构 |
4.4 抽象服务请求机制 |
4.4.1 并行绑定算子 |
4.4.2 服务契约 |
4.4.3 契约约束的抽象服务请求 |
4.5 编程能力分析 |
4.5.1 并行表达能力 |
4.5.2 大数据处理能力 |
4.5.3 构建系统能力 |
4.6 Apla+编程实例 |
4.7 Apla+语言总结 |
4.7.1 语言特点 |
4.7.2 典型编程场景分析 |
4.7.3 已有研究工作对比 |
4.8 小结 |
第5章 Apla+语言形式语义 |
5.1 形式语义基础 |
5.1.1 形式语义定义方法 |
5.1.2 云服务系统的形式化分析方法 |
5.2 Apla+语义分析框架 |
5.3 Apla+语言语义 |
5.3.1 时间标记的标签转换系统 |
5.3.2 具体语义定义 |
5.4 语义等价关系 |
5.4.1 迹 |
5.4.2 时间互模拟关系 |
5.4.3 强弱等价与环境等价 |
5.4.4 迹相似算法及正确性证明 |
5.4.5 强等价规则 |
5.4.6 云服务等价 |
5.5 同余关系 |
5.6 小结 |
第6章 Apla+实现方法与程序生成 |
6.1 总体结构 |
6.2 编程环境实现方法 |
6.2.1 实现技术路线 |
6.2.2 支撑环境主要功能 |
6.2.3 系统总体设计 |
6.3 程序生成规则 |
6.4 原型系统 |
6.4.1 原型系统功能说明 |
6.4.2 实例分析 |
6.5 系统实现的关键技术 |
6.6 小结 |
第7章 总结与展望 |
7.1 本文主要贡献 |
7.2 进一步研究 |
参考文献 |
附录A Apla语言语法结构 |
附录B Bundle语法结构 |
附录C 迹相似算法正确性证明 |
攻博期间的科研成果目录 |
致谢 |
四、一种基于递归算法的自顶向下语法分析方法(论文参考文献)
- [1]基于知识图谱的软件安全漏洞挖掘技术研究[D]. 王乐. 西安工业大学, 2021(02)
- [2]面向C语言软件的单元与集成测试工具的设计与实现[D]. 潘华稳. 中国科学院大学(中国科学院大学人工智能学院), 2020(04)
- [3]基于MSVL的智能合约建模与验证[D]. 朱云凯. 西安电子科技大学, 2020(05)
- [4]分组密码专用描述语言及编译技术研究[D]. 李盛. 战略支援部队信息工程大学, 2020(03)
- [5]任务指令驱动的工业机器人离线编程关键技术研究[D]. 林旭军. 浙江大学, 2020
- [6]C++静态分析中前端构建方法的研究与实现[D]. 邢利明. 北京邮电大学, 2020(05)
- [7]以计算思维能力培养为核心的“编译原理”课程教学改革探索与实践[J]. 王慧娇,黄廷辉,朱英. 工业和信息化教育, 2018(04)
- [8]面向开源软件复用的程序增量分析技术研究[D]. 杨湛宇. 北京林业大学, 2018(04)
- [9]递归对自顶向下语法分析的影响[J]. 朱朝霞. 电脑知识与技术, 2018(04)
- [10]云服务编程语言Apla+及其实现方法研究[D]. 谢武平. 武汉大学, 2017(06)