[发明专利]物理建模语言Modelica的模型库文件序列化方法无效
申请号: | 201110034496.0 | 申请日: | 2011-02-01 |
公开(公告)号: | CN102043657A | 公开(公告)日: | 2011-05-04 |
发明(设计)人: | 周凡利;唐俊杰;郭俊峰;田显钊;张和华;陈立平 | 申请(专利权)人: | 苏州同元软控信息技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 陶海锋 |
地址: | 215123 江苏省苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 物理 建模 语言 modelica 模型库 文件 序列 方法 | ||
技术领域
本发明涉及一种数据的序列化和反序列化方法,尤其涉及一种多领域物理统一建模语言Modelica模型库文件的序列化和反序列化方法。
背景技术
Modelica是一种面向对象、基于方程、采用层次化组件模型并具有模型重用性的物理建模语言。Modelica模型库技术是Modelica的基本特征之一,是实现模型重用的直接手段。因此,Modelica仿真平台启动后,必须首先加载Modelica模型库以供用户建模使用。对Modelica编译器而言,传统的库加载过程依次分为读取.mo文件(即Modelica源文件),对.mo文件进行词法/语法分析,创建Dom(文档对象模型)抽象语法树三个阶段。对.mo文件进行词法/语法分析的工作需要消耗大量的时间,以Modelica标准模型库2.1为例,该库共包括144个源文件,3141个类,所有语法元素总和近50万个,利用词法/语法分析工具Antlr 2.0分析需耗时约300秒。若每次加载模型库都如此耗时,对系统而言是低效的。
由于模型库中的模型都具备高的置信度,即其词法/语法是完全正确的,而且库模型具有只读性,不可被用户更改,这些因素导致每次对模型库进行的词法/语法分析都会得到完全相同的结果。因此,可以考虑通过对模型库文件的数据进行序列化和反序列化来缩短加载模型库的时间,由于现有技术中需要对模型库文本进行词法/语法分析,目前还没有对Modelica的模型库文件进行序列化和反序列化的方法报道。
发明内容
本发明的目的是提供一种对Modelica模型库的文件数据进行序列化和反序列化的方法,以缩短Modelica模型库的加载时间。
为达上述目的,本发明采用的技术方案是:一种物理建模语言Modelica的模型库文件序列化方法,在第一次加载模型库时,对Modelica模型库的源文件进行词法/语法分析,创建文档对象模型抽象语法树,通过序列化技术将文档对象模型抽象语法树的数据保存至序列化结果文件。
所述通过序列化技术将文档对象模型抽象语法树的数据保存至序列化结果文件包括下列步骤:
(1)根据文档对象模型抽象语法树中数据的数据类型,用预先定义的标志符标记所需保存的数据;
(2) 根据Modelica文档对象模型类系图制定对象映射表;
(3) 根据对象映射表将所需序列化的数据进行分类标记,标记时需区分类、类成员以及对象所在实体文件;
(4) 依据Modelica编译结果进行序列化输出,序列化依照对象数据排列规则进行,每个Modelica对象数据输出前,首先输出其分类标记, 其次为数据块大小,最后为数据内容; 当指定数据不存在时,以占位符进行数据虚拟填充。
上述技术方案中,所述占位符为预先设定的数据,一般,应选择不易发生冲突的数据作为占位符使用。
一种物理建模语言Modelica的模型库文件的反序列化方法,读取序列化结果文件,包括如下步骤,
(1) 根据Modelica文档对象模型类系图制定的对象映射表预先创建所需反序列化的对象,并进行对象初始化,初始对象数据为空;
(2) 从序列化文件中读入数据,根据读取的分类标记确定向何种对象填充数据,根据读取的数据块大小值确定对象数据的大小,最终实现读入单个的完整对象,如果读入数据为占位符,则该对象的指定数据设置为空;
(3) 依据Modelica模型序列化文件中的对象结果顺序依次在内存中创建新的对象,对象的层次关系按照序列化文件中的分类标记进行组织,从而实现在内存中重构Modelica模型编译结果。
上述技术方案中,第一次加载模型库时,将模型库文件的词法/语法分析结果,通过序列化技术保存至结果文件,以后每次都通过直接读取结果文件来完成模型库的加载。
模型库文件的词法/语法分析结果为Dom抽象语法树,为了将它保存到结果文件,并且以后能通过读取结果文件还原该Dom抽象语法书对象,本发明制定了一套设计规则,概括地说这套规则有两条:
1)以标志符标记需要处理的数据并区分数据类型;
2)以数据排列格式保存数据之间的关系。
根据这套规则,本发明可以构建软件模块,该模块又分为两个子模块,分别负责将内存中的Dom抽象语法树序列化为结果文件和将结果文件反系列化为内存中的Dom抽象语法树。
由于上述技术方案运用,本发明与现有技术相比具有下列优点:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州同元软控信息技术有限公司,未经苏州同元软控信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110034496.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:半导体器件上的钨塞制造方法
- 下一篇:具切换输入/输出部的可携式电子装置