论文部分内容阅读
随着我国国防、航空等领域的飞速发展,高性能自主可控的软、硬件已经成为我国自主化信息产业发展的必备技术。对一个国家而言,自主可控的信息系统是非常重要的。国防、航天航空领域信息自主化必须构筑于安全关键系统之上,而国产龙芯处理器在国产信息化的道路上发挥着重要作用,其性能的发挥需要系统核心软件的全力配合。作为系统核心软件之一的编译器的重要性已提升至信息产业前列,是确保安全关键系统能否正常运行的关键。以国防科工委公布的《航天型号软件C语言安全子集》作为安全检测技术的标准,构造符合规范的测试用例,对LonGcc编译器进行改造、升级。最后实测表明,所构造的编译器符合《航天型号软件C语言安全子集》标准,并且没有增加执行时的开销。本文主要进行了以下的工作:(1)通过对比三种编译器Gcc,CompCert,Clang对《航天型号软件C语言安全子集》的支持程度选取了Gcc4.9.3作为基准编译器,在此基础上构造安全编译器LonGcc。分析《航天型号软件C语言安全子集》规则并结合LonGcc实际需求实现了安全子集的等级划分策略。(2)对词法分析、语法分析涉及到的主要函数和流程进行分析,并分析了Gcc中重要数据结构,对Gcc中重要树节点进行分析说明。(3)采取移植Gcc前端的方法,添加安全检测开关fsafe_c,扩展Gcc前端中的词法分析、语法语义分析部分实现了基于《航天型号软件C语言安全子集》的安全编译器LonGcc。(4)对LonGcc编译器进行安全性测试,根据《航天型号软件C语言安全子集》的规则要求,为每条规则编写了大量的测试用例来验证其正确性,通过与商业测试软件工具Testbed的对比,证明LonGcc编译器具有可靠性和实用性。