买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:中国科学院软件研究所
摘要:本发明涉及一种从SIMSCRIPT语言到C语言的语法映射方法和装置。该方法包括:解析SIMSCRIPT源程序的声明文件,将SIMSCRIPT语言全局变量转换为C语言全局变量;解析SIMSCRIPT源程序的主程序文件,逐行判断语句类型,将主程序中的基本语句和仿真语句转换成对应的C代码;解析SIMSCRIPT源程序的例程文件,逐行判断语句类型,将例程文件中的基本语句和仿真语句转换成对应的C代码。本发明通过抽取总结SIMSCRIPT语言和C语言的语法规则,对两者的语法语义进行分析,建立两种语言的语法规则映射,为基于SIMSCRIPT语言编写的大型复杂仿真系统转换为C语言奠定了技术基础,能够有效提升基于SIMSCRIPT语言研发的复杂仿真程序的运行速率。
主权项:1.一种从SIMSCRIPT语言到C语言的语法映射方法,其特征在于,包括以下步骤:解析SIMSCRIPT源程序的声明文件,将SIMSCRIPT语言全局变量转换为C语言全局变量;解析SIMSCRIPT源程序的主程序文件,逐行判断语句类型,将主程序中的基本语句和仿真语句转换成对应的C代码;解析SIMSCRIPT源程序的例程文件,逐行判断语句类型,将例程文件中的基本语句和仿真语句转换成对应的C代码;所述基本语句为SIMSCRIPT代码中涵盖注释、变量、基础数据类型、复合数据类型、指针、运算符、控制语句、函数、输入输出流共9种语义的语句;将SIMSCRIPT语言的注释语句转换为C代码时,直接将两个单引号替换为C语言注释符号“”;将SIMSCRIPT语言的变量名称转换为C代码时,将“.”替换为“_”;将SIMSCRIPT语言的基础数据类型转换为C代码的步骤包括:将DEFINEVARASAINTVARIABLE转换为intvar;将DEFINEVARASAREALVARIABLE转换为floatvar;将DEFINEVARASADOUBLEVARIABLE转换为doublevar;将DEFINEVARASATEXTVARIABLE转换为char*var;将DEFINEVARASAALPHAVARIABLE转换为charvar;将SIMSCRIPT语言的复合数据类型转换为C代码的步骤包括:将实体和事件转换为C代码时,通过struct结构实现;将数组转换为C代码时,将SIMSCRIPT语言的DEFINEVARASAONE-DIMENSIONALINTEGERARRAY转换为C语言的int[]var;将集合转换为C代码时,通过struct结构定义,结构体中记录集合的首元素指针,尾元素指针和集合中元素个数;将SIMSCRIPT语言的指针转换为C代码时,将SIMSCRIPT语言的DEFINEVARASAPOINTERVARIABLE转换为C语言的void*var;将SIMSCRIPT语言的运算符转换为C代码时,将SIMSCRIPT语言的赋值语句、ADD语句、SUBTARCT语句、表达式计算语句分别转换为C代码;将SIMSCRIPT语言的控制语句转换为C代码时,将控制语句中的分支结构语句IF-ALWAYS和IF-ELSE-ALWAYS,以及循环语句FOR-DO-LOOP、UNTIL-DO-LOOP和WHILE-DO-LOOP,分别转换为C代码;将SIMSCRIPT语言的函数转换为C代码时,将主函数MAIN和例程ROUTINE分别转换为C代码;将SIMSCRIPT语言的输入输出流转换为C代码时,读取控制台输入参数时将READ转换为SCANF函数,读取文件内容时将READ转换为FSCANF函数,输出消息至控制台时将PRINT转换为PRINTF函数,输出消息到文件时将PRINT转换为FPRINTF函数;所述仿真语句为SIMSCRIPT代码中事件和时间的访问接口语句,共包含七类接口:离散事件支持事件调度、事件取消、事件重新调度三类接口;离散事件被存储在事件列表中,离散事件列表支持事件列表中事件个数查询和事件遍历两类接口;仿真时间支持当前系统仿真时间查询和单个事件仿真时间查询两类接口;七类接口均通过SIMSCRIPT关键字实现,转换为C代码时,将七类接口需转换为同等功能的C接口;所述将七类接口需转换为同等功能的C接口,包括:事件调度:将SIMSCRIPT语言的SCHEDULEAEVENT转换为C语言的ADD_EVENT;事件取消:将SIMSCRIPT语言的CANCELREMOVEEVENT转换为C语言的CANCEL_EVENT;事件重新调度:将SIMSCRIPT语言的RESCHEDULEEVENT转换为C语言的ADD_RESCHEDULE_EVENT;事件列表中事件个数查询:将SIMSCRIPT语言的N.EV.S转换为C语言的GET_EVENT_NUMBER;事件遍历:将SIMSCRIPT语言的FOREVERYEVENTINEV.S转换为C语言的GET_NEXT_EVENT;当前系统仿真时间查询:将SIMSCRIPT语言的TIME.V转换为C语言的GET_CURRENT_TIME;单个事件仿真时间查询:将SIMSCRIPT语言的TIME.A转换为C语言的GET_EVENT_TIME。
全文数据:
权利要求:
百度查询: 中国科学院软件研究所 一种从SIMSCRIPT语言到C语言的语法映射方法和装置
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。