System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种结合8114准则的同步数据流语言可信翻译方法技术_技高网

一种结合8114准则的同步数据流语言可信翻译方法技术

技术编号:44597717 阅读:4 留言:0更新日期:2025-03-14 12:53
本发明专利技术涉及一种结合8114准则的同步数据流语言可信翻译方法,属于代码生成领域。本发明专利技术通过对Lustre源代码词法、语法分析和翻译等步骤获取Ctemp中间语言的抽象语法树;遍历Ctemp抽象语法树,针对树结构中的语句中控制流语句、赋值语句设计翻译方法;遍历语句中的表达式,设计添加强制转化的翻译方法,确保语句在语义正确的同时,不存在隐式类型转化;扩展了关于Cltype中类型关系的定理,用于验证类型操作;扩展关于Ctemp语义的强制转化和二元操作的定理,实现语义形式化验证。本发明专利技术大幅度提升代码生成工具所生成的C代码对GJB 8114规范的满足性。

【技术实现步骤摘要】

本专利技术属于代码生成领域,具体涉及一种结合8114准则的同步数据流语言可信翻译方法


技术介绍

1、高可信代码的生成,是基于模型的软件开发的核心技术难点。代码生成技术是一种先进的编程技术,它能够通过模型自动生成代码。这类技术的核心优势在于能够有效提升开发效率和并减少人为的编程错误。

2、目前,同步数据流语言在基于模型的软件开发中,占据重要地位。在航天、核电等安全关键领域,基于模型的软件开发已经成为了重要的研制方向。在这些领域,任何一个微小的软件错误,都可能酿成巨大的生命或财产损失。如何实现同步数据流语言的可信翻译,逐渐成为该领域的研究重点。

3、传统的保证编译器正确性的做法大多采用对生成代码进行大量测试或对生产过程采取严格的过程管理。但随着软件规模的增大,此类方法逐渐变得低效。对代码安全性的保障能力,也逐渐接近极限。而另一种保证代码安全性的手段:形式化验证,正逐渐成为研究热点。针对模型的开发和验证,美国航空无线电技术委员会于2011年在do-178c系列适航标准内补充了do-331标准(基于模型开发和验证)和do-333标准(形式化方法)。

4、在国内对建模语言可信编译的研究中,l2c可信编译器是一个突出成就。l2c编译器的源语言为lustre*,是对同步数据流语言lustre v6的扩展。目标语言为clight,是compcert编译器的一个中间语言,一种符合c99标准的c语言子集。compcert编译器是一种基于基于交互式定理证明工具coq开发的,经过完全形式化验证的c语言编译器。其安全性达到了目前c语言编译器的最高水平。l2c编译器同样基于交互式定理证明工具coq开发,其中翻译的核心步骤均经过严格的形式化验证,以保证翻译过程的语义模拟等价性。通过在clight步骤与compcert编译器对接,l2c编译器既可以完整地完成了形式化验证的编译,也可以直接基于clight抽象语法树输出c代码,以便进行代码调试和移植。

5、为进一步增强c代码的可维护性和可移植性,定义和落实安全c代码安全编程规范是至关重要的。为提高军用软件安全性,我国针对军用软件c/c++语言提出了gjb 8114-2103标准。其通过对c/c++语言使用的诸多方面进行了严格限制,构造了一个安全c代码子集,使得符合该标准的c代码安全性、可维护性和可移植性大大提升。

6、然而,目前的基于模型的c代码生成工具,尚未有能够较好符合gjb 8114-2103标准,并进行完全的形式化验证的,从而影响其在高风险领域,特别是在航空航天和军事领域的适用性。以l2c为例,其对8114标准的违背率非常高,在50000行代码的测试中,对规则的违背共计19660条,其中,对其中的r-1-10-4规则,即不允许隐式类型转换规则的违背,达到了17192条,占总数的87.4%


技术实现思路

1、(一)要解决的技术问题

2、本专利技术要解决的技术问题是如何提供一种结合8114准则的同步数据流语言可信翻译方法,以解决当前代码生成器生成的代码中存在隐式类型转换,导致gjb 8114标准违背率高的问题。

3、(二)技术方案

4、为了解决上述技术问题,本专利技术提出一种结合8114准则的同步数据流语言可信翻译方法,该方法包括如下步骤:

5、s1、利用同步数据流语言翻译工具l2c从lustre源码中生成中间语言ctemp抽象语法树;

6、s2、对ctemp抽象语法树中表达式层进行翻译:在表达式层中检测并消除隐式类型转化;

7、s3、遍历抽象语法树中的语句层、函数层、程序层完成完整的翻译;在语句层,检测并消除语句与表达式衔接部分的隐式类型转化;

8、s4、遍历翻译后的ctemp抽象语法树,将抽象语法树输出为c代码;

9、s5、对翻译过程进行形式化验证,证明翻译前后的程序具有模拟等价性,从而保证该翻译过程不会影响生成代码的正确性。

10、(三)有益效果

11、本专利技术提出一种结合8114准则的同步数据流语言可信翻译方法,该方法至少具有以下有益效果:

12、(1)对ctemp中间语言代码的抽象语法树进行了修改,保证了生成的代码中不会包含隐式的类型转换,提升了onmodel建模平台生成代码的安全性。当前工具生成的c代码,对8114准则的违背项中,隐式类型转化占到了87%以上。消除隐式类型转化能够大幅度降低生成代码对8114安全代码准则的违背率。

13、(2)实现了在ctemp上的代码优化和形式化验证,保证了新的代码生成方法形式化验证链的完整性。

14、(3)在进行形式化验证工作的同时,为cltypes和ctemp中的语法和操作语义证明了若干实用引理,可以被其他代码优化过程的形式化验证所应用。

本文档来自技高网...

【技术保护点】

1.一种结合8114准则的同步数据流语言可信翻译方法,其特征在于,该方法包括如下步骤:

2.如权利要求1所述的结合8114准则的同步数据流语言可信翻译方法,其特征在于,所述S2具体包括:

3.如权利要求2所述的结合8114准则的同步数据流语言可信翻译方法,其特征在于,所述S21中,对于变量和常量表达式,直接从其类型标签获取其类型;对于其他类型的表达式,则需要根据操作语义进行推断。

4.如权利要求2所述的结合8114准则的同步数据流语言可信翻译方法,其特征在于,所述S22中,对于一个表达式e,其子表达式的定义为:作为e构造参数的表达式;如果trans_expr输入的表达式存在子表达式,则其子表达式也经由trans_expr进行翻译;子表达式的上下文类型由表达式操作语义进行推断。

5.如权利要求4所述的结合8114准则的同步数据流语言可信翻译方法,其特征在于,所述S22具体包括:

6.如权利要求2-5任一项所述的结合8114准则的同步数据流语言可信翻译方法,其特征在于,所述S3包括:

7.如权利要求6所述的结合8114准则的同步数据流语言可信翻译方法,其特征在于,所述S31具体包括:

8.如权利要求6所述的结合8114准则的同步数据流语言可信翻译方法,其特征在于,将S3中的算法编写为程序翻译函数,封装为AddCast翻译步骤,对接同步数据流语言翻译工具L2C。

9.如权利要求6所述的结合8114准则的同步数据流语言可信翻译方法,其特征在于,所述S5包括:

10.如权利要求9所述的结合8114准则的同步数据流语言可信翻译方法,其特征在于,所述S52中的重要引理包括:

...

【技术特征摘要】

1.一种结合8114准则的同步数据流语言可信翻译方法,其特征在于,该方法包括如下步骤:

2.如权利要求1所述的结合8114准则的同步数据流语言可信翻译方法,其特征在于,所述s2具体包括:

3.如权利要求2所述的结合8114准则的同步数据流语言可信翻译方法,其特征在于,所述s21中,对于变量和常量表达式,直接从其类型标签获取其类型;对于其他类型的表达式,则需要根据操作语义进行推断。

4.如权利要求2所述的结合8114准则的同步数据流语言可信翻译方法,其特征在于,所述s22中,对于一个表达式e,其子表达式的定义为:作为e构造参数的表达式;如果trans_expr输入的表达式存在子表达式,则其子表达式也经由trans_expr进行翻译;子表达式的上下文类型由表达式操作语义进行推断。

5.如权利要...

【专利技术属性】
技术研发人员:华岳桐张建伟贾张涛张霄霄李浩宇冯大成安恒李福川孟程昊陈莉王磊王云则张翠婷
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1