一、正确使用C语言指针初探(论文文献综述)
孙道层[1](2021)在《C语言程序设计中指针变量的关联引用》文中指出本文论述的指针变量是C语言程序设计的精髓,也是C语言代码的质量和执行效率的关键,针对C语言程序设计中使用指针变量关联引用出现的问题,本文首先对指针变量的概念进行界定,然后对指针变量的关联引用进行详细陈述,包括指针变量对基本变量、字符串常量、数组、函数、结构体变量、文件等关联对象的引用及注意事项,深入分析各类指针变量内涵和使用场合,对C语言程序设计者如何正确有效使用各类指针变量提高程序代码质量具有实践借鉴意义。
杨兰兰[2](2021)在《基于内存回收方案的非阻塞算法的形式化分析》文中进行了进一步梳理操作系统作为计算机软件系统的核心部分,其正确性与可靠性等的保证一直以来都是学术界和工业界努力的方向,而操作系统中出现的大量问题都和并发技术的实现有关。随着并发系统规模的增大,非阻塞算法成为并发技术中的一个研究热点。非阻塞算法在硬件提供的特定原子操作的基础上实现并发算法,保证一个线程的延迟或失败不会影响其他线程。这种同步方法天然地避免了传统互斥锁固有的死锁、锁护航、优先级倒置等问题,同时具有良好的可伸缩性以及在高并发下显着的性能。与此同时,其实现也更加复杂,这给其正确性和安全性的验证带来了挑战。目前针对非阻塞算法的实现已有大量研究,其中的关键问题是在没有自动垃圾回收机制(Garbage Collection,GC)的环境中,如何安全地回收这些数据结构对象中删除掉的动态节点所占用的内存。本文针对其中的两种内存回收方案进行研究,其中简单而高效的一个方案是Michael提出的风险指针(Hazard Pointers),另一个是已经被引入到Linux内核中的非阻塞同步机制——RCU(ReadCopy-Update)。本文将分析这两类内存回收方案,使用CIVL(the Concurrency Intermediate Verification Language)验证框架对其进行形式化建模,提取内存管理方面的性质,并验证其正确性和安全性。使用形式化方法对非阻塞算法的两种典型内存回收方案进行建模与验证分析,为今后基于非阻塞算法的系统开发等工作打下了基础,也为其他并发技术的分析与研究起到了促进作用。
龚萌晓[3](2020)在《基于拓扑空间的C语言缺陷分析》文中研究指明C及后来的C++语言都是灵活高效且应用范围十分广泛的计算机编程语言,但是在使用C语言进行编程时,若使用不当则会产生缺陷。C语言产生缺陷的主要原因是语法安全性不够,尤其是在数据方面缺乏边界性检查。点集拓扑学是一门研究图形在连续变化下保持不变性质的数学学科。本文利用点集拓扑学中的连续性概念,给出了判定C语言字符串函数存在缓冲区溢出缺陷的方法。C语言缺陷的判定一直是信息科学领域的一个重点和难点。目前的判定方法主要是在计算机领域的一些检测方法,本文将C语言缺陷的判定和点集拓扑学相结合,给缺陷检测提供了一个全新的静态判定方法。本文通过刻画C语言字符串函数的拓扑空间,构造了字符次序拓扑空间和该空间的导集与凝聚点,证明了当代码没有缺陷时文中定义的字符串函数同名映射是连续映射,从而得出了当定义的同名映射不连续时代码存在缺陷的结论,达到了利用拓扑空间的连续性判定字符串函数存在缺陷的目的,得到了一种合理可行而且全新的静态检测方法。根据点集拓扑学的性质判定C语言中缺陷的存在,有利于促进编程人员改进代码,提高缺陷的查找精度,有利于更加良好和安全地开发C语言软件。
郭建,丁继政,朱晓冉[4](2020)在《嵌入式实时操作系统内核混合代码的自动化验证框架》文中研究指明"如何构造高可信的软件系统"已成为学术界和工业界的研究热点.操作系统内核作为软件系统的基础组件,其安全可靠是构造高可信软件系统的重要环节.为了确保操作系统内核的安全可靠,将形式化方法引入到操作系统内核验证中,提出了一个自动化验证操作系统内核的框架.该验证框架包括:(1)分别对C语言程序和混合语言程序(C语言和汇编语言)进行验证;(2)在混合语言程序验证中,为汇编程序建立抽象模型,并将C语言程序和抽象模型粘合形成基于C语言验证工具可接收的验证模型;(3)从规范中提取性质,基于该自动验证工具,对性质完成自动验证;(4)该框架不限于特定的硬件架构.成功地运用该验证框架对两种不同硬件平台的嵌入式实时操作系统内核μC/OS-Ⅱ进行了验证.结果显示,利用该框架在对两个不同的硬件平台上内核验证时,框架的可重复利用率很高,高达83.8%,虽然其抽象模型需要根据不同的硬件平台进行重构.在对基于这两种平台的操作系统内核验证中,分别发现了10处~12处缺陷.其中,在ARM平台上两处与硬件相关的问题被发现.实验结果表明,该方法对不同硬件平台的同一个操作系统分析验证具有一定的通用性.
孙小祥[5](2020)在《基于定理证明的内存安全性动态检测算法的正确性研究》文中认为计算机软件系统已经在国防、金融、通信、医疗等安全关键领域中得到大规模应用。这些领域中的许多软件是采用C语言开发,在享受C语言高效的运行效率的同时,还需要承担C语言指针操作带来的内存安全风险。为了构建高可信的软件系统。许多面向C语言的内存安全检测工具被广泛使用,这些工具使用代码插桩来实现内存安全错误的运行时检测。但是,这些内存安全检测工具及其算法都没有经过严格的正确性证明,这带来了两个问题。第一,插桩过的程序有可能会改变原有程序的行为及语义,导致改变原有程序的执行结果。第二,我们不能确保检测算法能检测出它所针对的所有内存安全性错误。因此,如何证明内存安全检测工具及其算法本身的可靠性和有效性就成为至关重要的问题。针对以上两个问题,本文提出了一种基于定理证明的内存安全性动态检测算法的正确性证明方法,并使用该方法完成了对C语言内存安全性动态检测工具Movec的算法的正确性证明,具体而言,本文的工作主要包括以下三个部分:首先,我们形式化地定义了C语言核心子集的语法和语义、Movec内存安全性检测算法的插桩语义。我们通过Coq内置的函数式编程语言实现了对C语言类型、操作语法语义的形式化表示。基于这些形式化定义,我们可以证明检测算法的两个正确性属性:行为不变性和内存安全性。第二,我们证明了Movec算法的行为不变性,即所有的插桩行为不会改变原有程序的行为及语义,主要是通过对Movec包装函数的形式化规约来推导出C语言原有函数的方法来证明Movec算法的行为不变性。第三,我们证明了Movec算法的内存安全性,即该算法能够在运行时检测出典型的时间和空间内存安全错误。首先我们定义了满足内存安全规范的良构环境,再结合Movec插桩操作的性质、相关公理来证明内存操作及操作语义保持的内存安全性。最后,我们使用着名的Coq交互式定理证明器实现了以上所有的形式化定义,并自动化地证明了以上两个正确性属性,验证了本文方法的有效性。
王星[6](2020)在《中职学校《C语言程序设计》实训课程改革研究》文中研究表明中等职业学校是培养复合型和技术型人才的重要基地,机电一体化专业的学生毕业后可从事铣床、钻床、流水线等自动化设备的制造、运行管理和保养维护等工作。C语言作为编程的入门语言,为计算机专业的学生后面学习更高级别的编程,如JAVA、VB等打好基础,也为机电一体化专业的学生学习单片机、PLC等课程奠定了基础。上机实训作为C语言课程中最重要的一部分,在很多学校中并未得到重视,需要进一步去完善。本文针对中等职业学校机电一体化专业中C语言实训课程教学现状,采用观察法、问卷调查、访谈的手段,分别对中职学校机电一体化专业的学生、C语言任课教师和企业相关人员进行了调查研究,分析当前中职学校C语言实训课程存在的弊端,并针对弊端提出相应的对策。研究结果表明中职学校存在以下问题:机电一体化专业的学生学习习惯差,课前不预习,课后非独立完成作业;校外师资培训基地的不足导致中职学校“双师型”教师匮乏;中职学校机电一体化专业的学生职业素养认识低,且任课教师在教学过程中并未注重职业素养的提高等。本文结合苏州工业园区工业技术学校C语言课程的实际情况,针对问题提出如下建议:安排本校的C语言任课教师以及其他教师参加培训,或聘请企业一线员工担任兼职教师,提高中职学校“双师型”教师的比例;融合多种教学方法,如小组合作、多人讨论,促进C语言实践技能的教学,且充分利用信息化资源等。
孙海泳[7](2020)在《嵌入式操作系统的形式化验证方法研究》文中进行了进一步梳理嵌入式操作系统作为基础性软件系统,管理着嵌入式系统的软硬件资源,是嵌入式系统的核心与基石。近年来,随着智能技术和物联网的不断融合,嵌入式操作系统得到广泛应用,并呈现出智能化、网络化的发展趋势。但与此同时,嵌入式操作系统的自身安全性和用户敏感信息的安全性成为了嵌入式领域亟需解决的重点和难点问题。一旦嵌入式操作系统出现软件错误或泄露机密信息,则可能造成重大的安全事故或极大的经济损失。因此,针对嵌入式操作系统的应用场景,分析其实际特征需求,建立功能性、安全性的形式化模型,证明系统代码实现确实符合形式化的功能规范和安全属性规范,已成为重要的研究课题。针对上述问题,本文深入分析并总结了嵌入式操作系统的设计实现与验证需求,并针对内存管理模块的功能性验证、任务管理模块的功能性验证和可信执行环境的安全性验证等关键问题,分别提出了相应的解决方案,最终形成了一套可扩展的模块化验证框架与验证系统,以及实现并评估了一个经过验证的安全嵌入式操作系统可信执行环境。评估结果表明,可扩展的模块化验证框架结合硬件隔离保护机制,既能满足嵌入式操作系统在功能、性能和安全性方面的特殊需求,又能提高系统整体验证的可行性,为系统源码实现满足系统功能性、安全性需求提供可信证据。本文的主要贡献和创新点有:(1)为实现嵌入式操作系统的整体验证,提出了一种面向嵌入式操作系统的可扩展的模块化验证框架。对于每个单独模块,首先基于分离逻辑描述C程序的实现层规范,接着使用函数式编程方式构建C程序的抽象层规范,然后构建起两者之间的数据精化关系并进行一致性证明,最后形成一个源码实现与抽象层规范行为一致的验证模块。对于系统整体验证,使用框架的组合验证规则将各子模块的抽象层规范链接成一个完整的验证系统。(2)针对嵌入式操作系统的内存管理模块,提出了包含复杂指针数据结构的高性能C程序的建模验证方法。以内存碎片率低、内存分配粒度多样化、执行时间可预估的内存管理算法为研究案例,基于模块化验证框架,成功定义了底层数据结构操作接口和高层内存分配、回收操作的行为语义,完成了高性能内存管理模块的建模验证工作。(3)针对嵌入式操作系统的任务管理模块,构建了ARM汇编语义模型,扩充了模块化验证框架对汇编语言的验证支持,提出了支持C和ARM汇编程序的组合验证系统。基于组合验证系统,将任务管理模块分成任务调度(C实现)和任务上下文切换(ARM汇编实现)两个子模块,首先在不同的抽象层分别建模验证,然后基于各子模块的抽象层规范进行组合验证,从而解决了分离逻辑不支持汇编函数指针的问题,最终顺利完成任务管理模块的形式化验证。(4)为了满足嵌入式操作系统对执行环境的隔离性要求,基于ARM TrustZone硬件保护机制提出了一种窄通信接口的可信执行环境设计方法,并构建了可信执行环境的安全属性模型(如信息流无干扰性模型),最后形成了一套支持端到端安全属性验证、C和汇编功能正确性验证、程序抽象及数据精化证明的集成验证系统。实现了首个基于ARM TrustZone硬件保护机制的多任务嵌入式操作系统的形式化验证。(5)整个系统的形式化实现、规范、模型、属性定义和证明,均在辅助定理证明器Coq中完成,最大程度降低了不同规范接口间的语义鸿沟。最终经验证的软件系统可在真实硬件平台上执行,整套理论方案具备较高的实用性。目前,在嵌入式操作系统形式化验证领域仍然存在诸多挑战。本文旨在为研发与验证安全可靠的嵌入式操作系统提供新的理论依据和技术方法。
高云云[8](2019)在《C语言编译系统的研究与实现》文中进行了进一步梳理相比于其他自然科学,计算机科学算是较新的科学体系,还有很多技术领域有待学者进一步探索。编译技术是系统软件的设计学科,作为计算机技术发展的基石,学习编译器设计的目的不仅在于其本身的理论和技术,其解决问题的思路与方法更值得学者学习借鉴。本文基于C++编程语言采用面向对象的思想,系统的实现了一个C语言编译器MiniC,并结合MiniC的源代码,从前端和后端两个角度出发,详细介绍了编译器各个模块数据结构和算法框架的设计实现。论文的研究工作主要体现在如下几个方面:前端部分实现包括词法分析、语法分析及与语义分析。词法分析部分采用有穷状态自动机进行单词识别,然后采用哈希表结构实现单词的插入与查找。采用语法制导翻译,在语法分析的过程中直接驱动语义分析,并采用栈式结构组织符号表,实现符号的存储及作用域管理。后端部分实现包括汇编与链接。汇编过程采用直接翻译方式将源语言翻译为机器指令,着重阐述了寄存器的分配算法、程序运行时的存储管理及目标文件生成。链接过程对符号进行分析及重定位,将符号引用与定义相关联,最终生成Windows系统下PE文件格式的可执行文件。错误管理贯穿整个编译系统,统计编译及链接过程中发生的错误,然后向用户输出。最终对编译系统的测试结果表明,本文实现的C编译器能够将源程序经过编译、汇编生成目标文件,再通过链接生成可执行文件,并在目标机器上成功运行得到正确的结果。
戴伟[9](2019)在《基于Nginx高性能Web服务器的理论研究与性能改进》文中提出Web2.0时代到来后,一方面互联网普及率大大提高,用户群体成倍增长;另一个方面Internet上的资源不再是一些简单的静态网页文件,即时通讯、在线实时互动等新兴形式,使得应用程序的数据交互变得更复杂,这些都对Web服务器的性能提出了新的要求。如今的大型网络公司和热门门户网站时常需要应对峰值数十万的并发请求。对此,传统的Web服务器会消耗大量CPU资源和内存,导致用户端响应迟滞,甚至服务器直接崩溃宕机。Nginx作为时下最强劲的轻量级Web服务器,依据全新的服务器开发模型,采用事件驱动架构无阻塞地处理请求,其性能优异,运行效率远超过传统的Apache、Tomcat,广泛运用于国内外诸多顶级互联网公司。因此对Nginx的运行机制和功能框架进行研究,在它的基础上进行开发和优化具有重大的意义。本文以Nginx源码为出发点,通过对Nginx的模块体系、框架结构、事件驱动等内部架构和实现原理进行研究,深入理解Nginx的运行机制,从底层实现探索Nginx高效处理大并发请求的原理。在此基础上,充分使用C++语言的新特性和编程范式,对Nginx的源码进行封装和扩展,大大提升了Nginx的稳定性和易用性。本文使用封装后的Nginx开发HTTP模块,嵌入到Nginx的整个工作流程中,实现更加便捷的个性化功能定制与开发,搭配对配置文件和系统参数的优化,让Nginx在C++中获得更进一步的发展动力。
刘展旭[10](2019)在《计算机中C语言的应用特点探析》文中进行了进一步梳理现在这个时代,科学技术已经发展的很成熟了,家家户户各行各业对计算机的使用也已经是很常见了。所以说,计算机已经成为了21世纪信息传递的主要交通工具。因为计算机还在持续的发展当中,人们对计算各方面的要求也是越来越高,如此一来,就对计算机设计有了更加严格的要求,C语言作为计算机编程的过程中最常见的一种语言,因此把握好C语言的应用特点,就会对更多领域的发展带来积极的影响。文章从计算机C语言的应用特点方面进行了详细的分析。
二、正确使用C语言指针初探(论文开题报告)
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
本文主要提出一款精简64位RISC处理器存储管理单元结构并详细分析其设计过程。在该MMU结构中,TLB采用叁个分离的TLB,TLB采用基于内容查找的相联存储器并行查找,支持粗粒度为64KB和细粒度为4KB两种页面大小,采用多级分层页表结构映射地址空间,并详细论述了四级页表转换过程,TLB结构组织等。该MMU结构将作为该处理器存储系统实现的一个重要组成部分。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
三、正确使用C语言指针初探(论文提纲范文)
(1)C语言程序设计中指针变量的关联引用(论文提纲范文)
1 研究的目的和意义 |
2 基本类型变量的指针变量关联引用 |
3 字符串的指针变量关联引用 |
4 数组的指针变量关联引用 |
4.1 一维数组的指针变量关联引用 |
4.2 二维数组的指针变量关联引用 |
5 函数的指针变量关联引用 |
6 结构体的指针变量关联引用 |
7 文件的指针变量关联引用 |
8 结论 |
(2)基于内存回收方案的非阻塞算法的形式化分析(论文提纲范文)
摘要 |
abstract |
第1章 绪论 |
1.1 研究背景 |
1.2 相关现状 |
1.3 本文工作与贡献 |
1.4 本文组织结构 |
第2章 预备知识 |
2.1 非阻塞算法 |
2.2 内存回收问题 |
2.2.1 内存泄漏 |
2.2.2 ABA问题 |
2.2.3 解决方案 |
2.3 形式化方法 |
2.4 本章小结 |
第3章 总体架构和验证框架 |
3.1 总体架构 |
3.2 验证框架 |
3.2.1 CIVL工具 |
3.2.2 CIVL-C语言 |
3.2.3 CIVL模型 |
3.3 本章小结 |
第4章 风险指针形式化分析 |
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 ABA问题 |
4.4 验证与分析 |
4.5 本章小结 |
第5章 基于多核的RCU机制形式化分析 |
5.1 RCU机制 |
5.2 总体设计 |
5.3 形式化建模 |
5.3.1 CPU建模 |
5.3.2 宽限期建模 |
5.3.3 内存回收建模 |
5.3.4 RCU原语建模 |
5.3.5 验证场景建模 |
5.4 性质的提取 |
5.4.1 线性一致 |
5.4.2 内存泄漏 |
5.4.3 死锁 |
5.5 验证与分析 |
5.5.1 无宽限期的验证 |
5.5.2 有宽限期的验证 |
5.5.3 读者升级的验证 |
5.6 本章小结 |
第6章 总结与展望 |
6.1 总结 |
6.2 展望 |
参考文献 |
致谢 |
发表论文和科研情况 |
(3)基于拓扑空间的C语言缺陷分析(论文提纲范文)
摘要 |
Abstract |
1 引言 |
1.1 研究背景及研究意义 |
1.2 国内外研究现状 |
1.2.1 C语言缺陷研究现状 |
1.2.2 拓扑学应用研究现状 |
1.3 论文结构安排 |
2 C语言程序缺陷 |
2.1 C语言程序缺陷分类 |
2.2 C语言缺陷介绍及代码示例 |
2.2.1 缓冲区溢出缺陷 |
2.2.2 C语言常见缺陷示例 |
2.3 C语言缺陷检测技术 |
2.3.1 静态检测技术 |
2.3.2 动态检测技术 |
2.3.3 动静结合技术 |
2.4 本章小结 |
3 拓扑学的应用及定理 |
3.1 二维拓扑图的开端及应用 |
3.2 拓扑学在计算机科学中的应用 |
3.2.1 计算机网络拓扑结构 |
3.2.2 拓扑数据分析(TDA) |
3.3 点集拓扑学基本定义与定理 |
3.4 本章小结 |
4 基于拓扑空间分析字符串函数缺陷 |
4.1 字符串函数的拓扑刻画 |
4.2 strcpy函数缺陷检测 |
4.3 strcat函数缺陷检测 |
4.4 双参数字符串函数 |
4.5 本章小结 |
5 总结与展望 |
5.1 本文总结 |
5.2 下一步工作展望 |
参考文献 |
个人简介 |
导师简介 |
获得成果目录 |
致谢 |
(4)嵌入式实时操作系统内核混合代码的自动化验证框架(论文提纲范文)
1 操作系统内核验证框架 |
1.1 μC/OS-II介绍 |
1.1.1 Freescale MCF平台 |
1.1.2 ARM Cortex-M3平台 |
1.2 高层语言程序的验证方法 |
1.3 混合语言程序的验证方法 |
2 混合语言的抽象建模 |
2.1 汇编语言的抽象建模 |
2.1.1 汇编语言语法 |
2.1.2 辅助函数的定义 |
2.2 汇编程序的抽象模型 |
2.3 汇编语言子集与抽象模型的一致性问题 |
2.4 混合语言的建模过程 |
2.4.1 C内嵌汇编程序的建模 |
2.4.2 汇编内嵌C程序的建模 |
3 抽象模型的实现 |
3.1 VCC中Ghost语句语法 |
3.2 抽象模型的实现 |
3.3 C代码和抽象模型的粘合 |
4 验证μC/OS-II及其分析 |
4.1 VCC的基础知识 |
4.2 系统调用的验证 |
4.2.1 性质的提取 |
4.3 核心服务程序的验证 |
4.4 验证结果与分析 |
5 验证框架的评估 |
5.1 ARM平台下的验证 |
5.2 缺陷分析 |
6 总结 |
(5)基于定理证明的内存安全性动态检测算法的正确性研究(论文提纲范文)
摘要 |
ABSTRACT |
缩略词 |
第一章 绪论 |
1.1 研究背景和意义 |
1.2 国内外研究现状 |
1.2.1 形式化方法 |
1.2.2 动态分析 |
1.2.3 Coq定理证明器 |
1.3 研究内容和论文结构 |
第二章 相关知识 |
2.1 Coq交互式定理证明器 |
2.1.1 Gallina语言 |
2.1.2 类型、声明、定义 |
2.1.3 Coq中的基础策略 |
2.2 动态分析 |
2.3 本章总结 |
第三章 动态分析算法的形式化描述 |
3.1 类型的定义 |
3.2 环境的搭建 |
3.3 公理的定义 |
3.4 本章总结 |
第四章 操作语义的形式化描述 |
4.1 C语言语法形式化表示 |
4.1.1 C程序语法形式化定义 |
4.1.2 C语言的良构语义 |
4.2 C语言操作语义 |
4.2.1 Lhs标准操作语义 |
4.2.2 Rhs标准操作语义 |
4.2.3 Cmd标准操作语义 |
4.3 Movec动态分析算法的操作语义 |
4.3.1 Lhs插桩操作语义的表示 |
4.3.2 Rhs插桩操作语义的表示 |
4.3.3 Cmd插桩操作语义的表示 |
4.4 本章总结 |
第五章 行为不变性证明 |
5.1 内存操作行为不变性的证明 |
5.1.1 malloc插桩性质及其不变性 |
5.1.2 free插桩性质及其不变性 |
5.1.3 create Frame插桩性质及其不变性 |
5.1.4 destroy Frame插桩性质及其不变性 |
5.2 操作语义行为不变性的证明 |
5.2.1 Lhs行为不变性 |
5.2.2 Rhs行为不变性 |
5.2.3 Cmd行为不变性 |
5.3 本章总结 |
第六章 内存安全性证明 |
6.1 良构环境的定义 |
6.2 内存操作保持内存安全性 |
6.2.1 malloc保持内存安全性 |
6.2.2 内存释放保持内存安全性 |
6.2.3 函数栈创建保持内存安全性 |
6.2.4 函数栈销毁保持内存安全性 |
6.3 Movec插桩语义的安全性证明 |
6.3.1 Lhs语义安全性证明 |
6.3.2 Rhs语义安全性证明 |
6.3.3 Cmd语义安全性证明 |
6.4 本章总结 |
第七章 总结与展望 |
7.1 论文总结 |
7.2 工作展望 |
参考文献 |
致谢 |
在学期间的研究成果及发表的学术论文 |
(6)中职学校《C语言程序设计》实训课程改革研究(论文提纲范文)
摘要 |
abstract |
第一章 绪论 |
1.1 研究背景 |
1.1.1 职业教育相关政策 |
1.1.2 中职学校实训课程面临的问题 |
1.2 研究问题与研究意义 |
1.2.1 研究问题 |
1.2.2 研究意义 |
1.3 国内外研究现状 |
1.3.1 国外研究现状 |
1.3.2 国内研究现状 |
1.3.3 总体述评 |
1.4 研究内容、思路及方法 |
1.4.1 研究内容 |
1.4.2 研究思路 |
1.4.3 研究方法 |
第二章 中职学校机电一体化专业《C语言程序设计》实训课程概述 |
2.1 《C语言程序设计》实训课程基本要素 |
2.1.1 《C语言程序设计》实训课程目标 |
2.1.2 《C语言程序设计》实训课程教学对象 |
2.1.3 《C语言程序设计》实训课程内容 |
2.1.4 《C语言程序设计》实训环境 |
2.1.5 《C语言程序设计》实训课程的考核评价 |
2.2 《C语言程序设计》实训课程的特点 |
2.2.1 课程目标的明确性 |
2.2.2 教学方法的多样性 |
2.2.3 考核评价的全面性 |
第三章 中职学校机电一体化专业《C语言程序设计》实训课程现状调查 |
3.1 调查的设计及实施 |
3.1.1 调查目的 |
3.1.2 调查对象 |
3.1.3 调查设计 |
3.1.4 调查的实施 |
3.2 中职学校教师以及学生的调查情况 |
3.3 企业的调查情况 |
3.3.1 企业对中职学生的要求 |
3.3.2 企业对中职学校实训教师的要求 |
3.3.3 企业人员对中职学校实训教学的建议 |
3.4 中职学校《C语言程序设计》实训教学实施中存在的问题 |
3.4.1 职业素养的培养不足 |
3.4.2 学生学习积极性不高,学习效果不明显 |
3.4.3 C语言实训教学的教材、教法相对落后 |
3.4.4 “双师型”教师的匮乏 |
3.4.5 课程评价体系有待改善 |
第四章 中职学校机电一体化专业《C语言程序设计》实训课程的改革研究 |
4.1 重视培养学生的职业素养,打造高素质人才 |
4.1.1 在实训教学中渗透职业素养 |
4.1.2 在日常管理中渗透职业素养 |
4.1.3 在企业实习中提升职业素养 |
4.2 改进教学方法和手段,充分利用信息化资源 |
4.2.1 多种教学方法的融合 |
4.2.2 充分利用信息化资源 |
4.2.3 建立实训基地 |
4.3 优化C语言授课内容,与其他相关课程结合,增加趣味性 |
4.4 组建C语言兴趣小组,以赛促学 |
4.5 提高任课教师的素质,建设“双师型”教师队伍 |
4.6 完善《C语言程序设计》实训课程的评价体系 |
第五章 中职学校《C语言程序设计》实训教学实施案例 |
5.1 教学改革探索 |
5.2 实践案例 |
5.2.1 if语句教学案例 |
5.2.2 for语句教学案例 |
5.2.3 一维数组教学案例 |
5.3 教学实践的分析与反思 |
5.3.1 课堂任务完成情况 |
5.3.2 课后访谈情况 |
5.3.3 反思 |
第六章 结论与展望 |
6.1 结论 |
6.2 展望 |
参考文献 |
攻读学位期间本人出版或公开发表的论着、论文 |
附录 |
致谢 |
(7)嵌入式操作系统的形式化验证方法研究(论文提纲范文)
摘要 |
abstract |
第一章 绪论 |
1.1 研究背景 |
1.1.1 嵌入式操作系统安全及其意义 |
1.1.2 软件系统的形式化验证 |
1.2 操作系统形式化验证的研究现状 |
1.2.1 早期阶段 |
1.2.2 壮大阶段 |
1.2.3 当前阶段 |
1.3 研究内容与意义 |
1.3.1 嵌入式操作系统验证中存在的问题 |
1.3.2 本文研究内容 |
1.4 本文的组织结构 |
第二章 嵌入式操作系统的验证框架研究 |
2.1 概述 |
2.2 系统设计与形式化验证需求 |
2.3 分离逻辑理论基础及验证实例 |
2.3.1 分离逻辑理论基础 |
2.3.2 验证链表反转程序 |
2.4 嵌入式操作系统的模块化验证框架 |
2.4.1 原子模块 |
2.4.2 模块化验证过程 |
2.4.3 抽象层形式化规范 |
2.4.4 实现层形式化规范 |
2.5 双链表删除程序的模块化验证实例 |
2.6 本章小结 |
第三章 内存管理的验证方法研究 |
3.1 概述 |
3.1.1 所面临的挑战 |
3.1.2 解决方法 |
3.2 内存验证方案 |
3.2.1 内存分配算法分析 |
3.2.2 内存分配算法的验证计划 |
3.3 TLSF动态内存分配算法的验证 |
3.3.1 MPI抽象模型 |
3.3.2 MPO抽象模型 |
3.3.3 顶层TLSF抽象模型 |
3.3.4 状态不变量 |
3.4 评估和经验总结 |
3.4.1 验证对象评估 |
3.4.2 验证工作 |
3.4.3 验证方法对比分析 |
3.5 本章小结 |
第四章 任务管理的验证方法研究 |
4.1 概述 |
4.1.1 所面临的挑战 |
4.1.2 解决方法 |
4.2 任务管理模块分析 |
4.2.1 数据结构分析 |
4.2.2 调度行为分析 |
4.3 ARM汇编模型 |
4.4 任务管理的建模与验证 |
4.4.1 任务管理的建模 |
4.4.2 任务管理的验证实例 |
4.5 验证对象评估 |
4.6 本章小结 |
第五章 可信执行环境设计与安全性验证 |
5.1 概述 |
5.1.1 TEE攻击模型 |
5.1.2 TEE设计及验证计划 |
5.2 基于TrustZone的 TEE设计 |
5.2.1 TEE多级架构 |
5.2.2 安全通道设计 |
5.2.3 不同TEE设计架构对安全性验证工作的影响 |
5.3 验证挑战与解决方法 |
5.3.1 TEE调度程序验证 |
5.3.2 端到端的安全性验证 |
5.4 端到端的安全性验证框架 |
5.4.1 抽象层状态机?的安全属性建模验证 |
5.4.2 实现层状态机m的安全属性建模验证 |
5.4.3 集成验证系统 |
5.5 TEE监控模块的安全性验证 |
5.5.1 API的正确性验证 |
5.5.2 无干扰性建模与验证 |
5.6 评估和经验总结 |
5.6.1 验证工作 |
5.6.2 TEE性能评估 |
5.6.3 TEE安全性评估 |
5.6.4 TEE设计与验证方法对比分析 |
5.6.5 集成验证系统与现有验证系统的对比分析 |
5.7 本章小结 |
第六章 总结与展望 |
6.1 全文总结 |
6.2 未来工作展望 |
致谢 |
参考文献 |
攻读博士学位期间取得的成果 |
(8)C语言编译系统的研究与实现(论文提纲范文)
摘要 |
abstract |
专用术语注释表 |
第一章 绪论 |
1.1 C语言简介 |
1.2 论文的研究背景及意义 |
1.3 国内外研究现状 |
1.4 主流C语言编译器 |
1.5 论文的主要工作及结构安排 |
第二章 编译系统设计原理概述 |
2.1 词法分析 |
2.1.1 正则表达式 |
2.1.2 有穷状态自动机 |
2.1.3 从正则表达式到有穷自动机的转换 |
2.1.4 单词识别 |
2.2 语法分析 |
2.2.1 上下文无关法 |
2.2.2 FIRST、FOLLOW集合 |
2.3 语义分析 |
2.3.1 语法制导翻译 |
2.3.2 符号表 |
2.4 汇编生成目标文件 |
2.5 链接生成可执行文件 |
2.5.1 PE文件格式 |
2.5.2 可选文件头 |
2.6 主流编译器及相关工具实现技术对比 |
2.7 本章小结 |
第三章 编译系统前端设计与实现 |
3.1 词法分析 |
3.1.1 分词算法框架 |
3.1.2 单词编码规则 |
3.1.3 DFA实现 |
3.1.4 单词表数据结构 |
3.1.5 哈希冲突解决方法 |
3.2 语法分析及语义分析 |
3.2.1 文法定义 |
3.2.2 类型信息 |
3.2.3 符号表设计实现 |
3.3 错误管理 |
3.4 模块间关系及类结构设计 |
3.5 本章小结 |
第四章 编译器后端设计与实现 |
4.1 目标机器 |
4.1.1 汇编指令 |
4.1.2 寄存器分配 |
4.2 运行时的存储管理 |
4.2.1 过程活动记录 |
4.2.2 栈式存储管理 |
4.3 生成目标文件 |
4.3.1 节数据存储 |
4.3.2 Obj文件生成 |
4.4 生成可执行文件 |
4.4.1 导入库文件 |
4.4.2 外部符号解析及重定位 |
4.5 模块间关系及类结构设计 |
4.6 本章小结 |
第五章 系统分析及测试 |
5.1 实验环境 |
5.2 系统分析 |
5.3 词法分析器功能测试 |
5.4 语法分析器功能测试 |
5.4.1 基本运算测试 |
5.4.2 语句测试 |
5.5 目标文件生成测试 |
5.6 可执行文件测试 |
5.7 错误管理测试 |
5.8 本章小结 |
第六章 总结与展望 |
6.1 总结 |
6.2 展望 |
参考文献 |
附录1 攻读硕士学位期间申请的专利 |
致谢 |
(9)基于Nginx高性能Web服务器的理论研究与性能改进(论文提纲范文)
摘要 |
abstract |
第一章 绪论 |
1.1 论文的研究背景与意义 |
1.2 国内外研究现状 |
1.3 本文的主要工作 |
第二章 服务器相关技术分析 |
2.1 服务器模型 |
2.1.1 多进程模式 |
2.1.2 多线程模式 |
2.1.3 I/O多路复用 |
2.2 高效事件处理模式 |
2.2.1 Reactor模式 |
2.2.2 Proactor模式 |
2.3 并发网络服务器模型分析 |
2.4 常见的Web服务器模型分析 |
2.4.1 Apache |
2.4.2 Tomcat |
2.4.3 Nginx |
2.5 本章小结 |
第三章 Nginx服务器深入研究 |
3.1 Nginx服务器架构研究 |
3.1.1 Nginx模块化体系 |
3.1.2 Nginx事件机制 |
3.2 Nginx进程模型 |
3.2.1 one master/multi workers模型分析 |
3.2.2 多进程设计优化问题研究 |
3.3 Nginx HTTP框架解析 |
3.3.1 HTTP框架初始化 |
3.3.2 HTTP框架处理流程 |
3.4 Nginx与设计模式 |
3.4.1 策略(Strategy)模式 |
3.4.2 适配器(Adapter)模式 |
3.4.3 桥接(Bridge)模式 |
3.5 本章小结 |
第四章 Nginx面向对象化系统设计与实现 |
4.1 基本设计原则和编程规范 |
4.1.1 设计思想 |
4.1.2 系统设计原则和实现规范 |
4.1.3 基本包装外观类 |
4.2 高级数据结构的封装实现 |
4.2.1 字符串封装实现 |
4.2.2 内存池封装实现 |
4.2.3 动态数组封装实现 |
4.2.4 双向链表封装实现 |
4.3 Nginx模块配置的封装实现 |
4.3.1 Nginx配置模块封装 |
4.3.2 Nginx基类模块实现 |
4.4 HTTP框架组件封装 |
4.4.1 HTTP核心模块封装 |
4.4.2 HTTP过滤机制封装 |
4.5 本章小结 |
第五章 Nginx模块开发与性能调优 |
5.1 Nginx开发流程综述 |
5.2 HTTP模块的开发与实现 |
5.2.1 脚本文件编写 |
5.2.2 配置解析 |
5.2.3 模块实现 |
5.3 测试与验证 |
5.3.1 Nginx配置项优化 |
5.3.2 模块测试 |
5.4 本章小结 |
第六章 总结与展望 |
6.1 本文工作总结 |
6.2 展望 |
参考文献 |
附录1 攻读硕士学位期间撰写的论文 |
致谢 |
(10)计算机中C语言的应用特点探析(论文提纲范文)
1 C语言的特点 |
1.1 C语言运算符设计具有广泛性 |
1.2 C语言操作具有简便性 |
1.3 C语言指针操作具备有效性 |
2 C语言的结构 |
2.1 C语言的结构特点 |
2.2 C语言的函数特点 |
2.3 C语言的语法 |
2.4 C语言的应用 |
3 结语 |
四、正确使用C语言指针初探(论文参考文献)
- [1]C语言程序设计中指针变量的关联引用[J]. 孙道层. 电子技术与软件工程, 2021(22)
- [2]基于内存回收方案的非阻塞算法的形式化分析[D]. 杨兰兰. 华东师范大学, 2021(05)
- [3]基于拓扑空间的C语言缺陷分析[D]. 龚萌晓. 北京林业大学, 2020(03)
- [4]嵌入式实时操作系统内核混合代码的自动化验证框架[J]. 郭建,丁继政,朱晓冉. 软件学报, 2020(05)
- [5]基于定理证明的内存安全性动态检测算法的正确性研究[D]. 孙小祥. 南京航空航天大学, 2020(07)
- [6]中职学校《C语言程序设计》实训课程改革研究[D]. 王星. 苏州大学, 2020(03)
- [7]嵌入式操作系统的形式化验证方法研究[D]. 孙海泳. 电子科技大学, 2020(07)
- [8]C语言编译系统的研究与实现[D]. 高云云. 南京邮电大学, 2019(02)
- [9]基于Nginx高性能Web服务器的理论研究与性能改进[D]. 戴伟. 南京邮电大学, 2019(02)
- [10]计算机中C语言的应用特点探析[J]. 刘展旭. 科技传播, 2019(15)