[发明专利]一种同步数据流程序的形式化编译方法有效
申请号: | 201610832046.9 | 申请日: | 2016-09-19 |
公开(公告)号: | CN106648813B | 公开(公告)日: | 2020-01-10 |
发明(设计)人: | 杨志斌;袁胜浩;屈有昊;王飞;谢健;王永孟;薛垒;周勇;黄志球 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 32249 南京瑞弘专利商标事务所(普通合伙) | 代理人: | 张耀文 |
地址: | 210016 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及到一个同步数据流语言SIGNAL自动生成串行C代码的编译器,该编译器对用户输入的SIGNAL程序,能自动将其生成相应的串行C代码。该编译器使用函数式程序设计语言CAML来编写程序,因为CAML语言使用强类型系统,具有较高的安全性,并且可以使用对应的定理证明方法来验证编译器的正确性。此外,该编译器使用模块化结构,一旦改进或优化编译器,仅需验证对应的模型即可,而非重新对整个编译器进行验证。 | ||
搜索关键词: | 一种 同步 数据流 程序 形式化 编译 方法 | ||
【主权项】:
1.一种应用SIGNAL自动生成串行C代码的形式化编译器的同步数据流程序编译的形式化方法,其特征在于:所述SIGNAL自动生成串行C代码的形式化编译器基于模块化结构设计技术,将编译过程分为用户程序的标准化、SIGNAL进程间的同步、时钟等式系统的消解、时钟等式的分层表示和代码自动生成五个模块,采用函数式程序设计语言CAML来编程,一旦编译器需要改进或优化,不需要验证整个编译器,只需要验证对应的模块即可;/n使用函数式程序设计语言CAML描述同步语言SIGNAL的编译过程的用户程序标准化;/n使用函数式程序设计语言CAML描述同步语言SIGNAL的编译过程的SIGNAL进程间的同步;/n使用函数式程序设计语言CAML描述同步语言SIGNAL的编译过程的时钟等式系统的消解;/n所述时钟等式系统的消解具体如下:/nCAML定义的消解时钟等式系统程序语法:/nnfs:表示一组标准化的时钟方程;/nunfs:表示一组非标准化的时钟方程;/nl:表示时钟变量是否在时钟方程的左侧;/nr:表示时钟变量是否在时钟方程的右侧;/nesmap:表示一个用以保存等价类和该等价类所包含的时钟变量的对应关系;/n具体采用的方法如下:/n步骤1:给定时钟方程系统的任意方程eq,用NFS与之对应的定义来替换eq两边的时钟变量;这样得到一个新公式eq’;/n步骤2:如果eq’的左侧是时钟的表达式,其右侧是一个时钟变量,那么颠倒eq’;/n步骤3:如果eq’的左侧是一个时钟变量,并且eq’的右侧存在,那么执行步骤5,否则执行步骤6;/n步骤4:如果eq’左侧和右侧都是时钟表达式,则被称为复杂的时钟关系,那么执行步骤5;/n步骤5:把eq’代入UNFS中,执行步骤8;/n步骤6:把eq’代入NFS中,执行步骤7;/n步骤7:用eq’来替换在UNFS中每个方程式ceq两侧的时钟变量,得到一个新的方程ceq’,如果ceq’左侧和右侧是等价的,那么就从UNFS中消除它,否则,将它添加到UNFS;/n步骤8:重复步骤1-7,直到在时钟等式系统中没有非标准的等式;/n步骤9:如果UNFS是空的,则返回NFS,否则返回一个出错信息;/n使用函数式程序设计语言CAML描述同步语言SIGNAL的编译过程的时钟等式系统的分层表示;/n使用函数式程序设计语言CAML描述同步语言SIGNAL的编译过程的代码自动生成。/n
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610832046.9/,转载请声明来源钻瓜专利网。
- 上一篇:自动编译的方法和系统
- 下一篇:代码的编译检查方法、装置及设备