CN102043657A - 物理建模语言Modelica的模型库文件序列化方法 - Google Patents
物理建模语言Modelica的模型库文件序列化方法 Download PDFInfo
- Publication number
- CN102043657A CN102043657A CN2011100344960A CN201110034496A CN102043657A CN 102043657 A CN102043657 A CN 102043657A CN 2011100344960 A CN2011100344960 A CN 2011100344960A CN 201110034496 A CN201110034496 A CN 201110034496A CN 102043657 A CN102043657 A CN 102043657A
- Authority
- CN
- China
- Prior art keywords
- data
- serializing
- modelica
- file
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种物理建模语言Modelica的模型库文件序列化方法,其特征在于:在第一次加载模型库时,对Modelica模型库的源文件进行词法/语法分析,创建文档对象模型抽象语法树,通过序列化技术将文档对象模型抽象语法树的数据保存至序列化结果文件。同时公开了相应的反序列化方法。本发明通过预处理过程,在第一次加载模型库时,生成序列化结果文件,因而在以后加载模型库时,只需要直接从读取结果文件即可,避免每次都模型库进行词法语法解析,大大加快了模型库的加载速度。以Modelica2.1标准库为例,未使用本发明的方法时,加载时间为300秒,使用本发明的方法后,加载时间仅为600毫秒。
Description
技术领域
本发明涉及一种数据的序列化和反序列化方法,尤其涉及一种多领域物理统一建模语言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抽象语法树。
由于上述技术方案运用,本发明与现有技术相比具有下列优点:
本发明通过预处理过程,在第一次加载模型库时,生成序列化结果文件,因而在以后加载模型库时,只需要直接从读取结果文件即可,避免每次都模型库进行词法语法解析,大大加快了模型库的加载速度。以Modelica 2.1标准库为例,未使用本发明的方法时,加载时间为300秒,使用本发明的方法后,加载时间仅为600毫秒。
附图说明
图1是Dom抽象语法树的类型体系结构图,Dom抽象语法树中的节点的类型都来自该类型体系。
图2是Modelica模型库加载方式对比图。
图3是实施例中成员变量为类对象时的数据标记示意图。
具体实施方式
实施例:对Modelica模型库进行序列化处理,包括:
1) 制定Dom序列化规则
规则1 以标志符标记需要处理的数据并区分数据类型
如图1,Dom类系类型众多,序列化内容包括Dom对象的类型名,Dom对象数据,以及对象所在文件的文件名等。本发明设计了一套标识机制,通过一系列的标志符来记录数据加以区分。
规则1.1对类进行标记
必须严格按照Modelica语言规范对Dom类型体系中各个类进行标记。 Dom类系结构是参照Modelica2.1规范设计的,保存Modelica的所有文法信息,但同时,为了方便操作和理解,将这些基本内容又做了细分和扩展并加入了和分析有关的辅助类和辅助属性。因为只对.mo文件的词法/语言分析结果进行序列化,所以调用序列化函数前应先滤除Dom类系中与之无关的类或类属性。
规则1.2 对类成员进行标记
对Dom类型体系中各个成员进行标记,即要确定哪些成员变量需要被序列化。这其中包括两方面内容,该成员是否被序列化,以及该成员在其所属类的所有成员变量中所处的位置,两者缺一不可,这样才能确保反序列化时能正确的重构一个类对象。
规则1.3 对类对象或结构体对象引用的成员进行特殊标记
类成员(即类对象的数据)与结果文件之间的数据传递是以标准输入输出流为载体的。标准输入输出流可以接受任何C++内置数据类型包括const char*、int等以及标准库string 和complex 类类型,并且可通过重载输入输出运算符支持用户自定义类型。
本发明已设计了重载的序列化函数,以类对象的引用为形参,对类成员分别进行序列化操作。若重载输入输出运算符以支持Dom类系类型,功能上会与重载的序列化函数构成重叠。因此,本发明在设计序列化机制时,底层的数据传递只使用标准输入输出流默认的参数类型,没有对输入输出运算符进行重载,即不支持自定义类型。
因此,序列化时,在遇到成员变量为类对象或结构体对象引用时,不能简单的与输入输出流绑定,而必须获取该对象的所有成员,依次序列化,并在此对象对应的数据段前后进行标记,以表明标记段内的数据的特殊性。这种将数据标记成块的方式可以有效的防止反序列化读取数据时的紊乱。附图3为成员变量为类对象时的数据标记示意图。
规则1.4 对源文件的文件名进行标记
在Modelica中,类除了按照Modelica语法规定的标准方式被定义以外,还有一种外部表示法,即通过操作系统的层次结构(文件系统或数据库)来表示本发明,所以源文件名与Modelica类定义之间有着重要关系,因此,对象序列化时,所处源文件的文件名必须被序列化。序列化时必须以标记表明此数据为源文件文件名。
至此,按规则1进行序列化,序列化内容(Dom对象的类型名,Dom对象数据,以及对象所在文件的文件名等)在反序列化时将可通过标志符进行区分,并且通过对标志符的判断可以获知哪些内容被执行了序列化操作。
规则2 以数据排列格式保存数据之间的关系
在序列化过程中,必须记录类成员被序列化的顺序,以确保单个对象反序列化的成功;必须记录对象被序列化的顺序,以确保正确的重构Dom抽象语法树。
反序列化时,如何获取这些信息之间的联系。.NET框架采用序列化引擎对数据之间的关系进行了记录。而本发明在设计序列化机制时,并未使用类似的辅助手段,而是依靠这些信息的排列顺序判断数据之间的关系,即,在序列化时,所有的数据是按某一顺序输出的,保存为具有结构化信息的结果文件,反序列化时,通过控制字长来读取每个数据,通过数据读取的先后顺序判断数据之间的关系。数据排序时,必须满足以下规则:
规则2.1 对象的类名称必须排列于对象数据之前
反序列化时,首先获得对象的类名称,即获知了对象的类型,通过类成员定义预判将要读取的下一数据的类型(由规则2可知,类型必为C++内置数据类型之一),根据预判结果控制字长以确保每次读取正确的数据。因此,序列化输出时,对象的类名称必须排列于对象之前。
规则2.2 对象的成员变量的数据必须按唯一顺序排列
即序列化输出时必须排列为成员1,成员2,…,成员n,或者逆序,若成员m未被序列化,则按规则1.2输出辅助字段“占位”。
参照规则1.2,获知对象类型后,需要通过类成员定义预判下一数据的类型。若序列化输出时成员变量排序混乱,则必须依靠辅助列表,否则无法预判。
本发明选择前一种排列方式,即正序排列,在实现时,其逻辑性强于逆序排列。
规则2.3 源文件的文件名必须排列于首位
源文件的文件信息是Modelica类定义在编译后所隐含的重要信息之一,必须通过类的源文件信息才能判断此类是否为顶层类,因此,源文件必须置于Modelica类定义之前,即所有序列化内容的首位。
规则2.4 数据结构的大小属性排列于其他内部数据之前
对于list、vector、map等具有size属性的数据结构,在序列化其包含的数据前,必须先序列化其size,这样才能保证反序列化时精确的按其原始大小进行重构。
至此,基于规则1和规则2,可以设计出一套的基于Dom的合理的序列化机制。
2) 设计Dom序列化和反序列化模块
首先,确定数据的存储格式。
序列化时,被序列化的类对象的数据绑定至标准输出流,由标注输出流确定其输出格式(二进制或文本格式)并保存至结果文件。因此可以选择的存储格式有二进制格式、文本格式,以及由文本格式演化的XML格式。
二进制格式存储与读取效率最高,因为数据本身在内存中就是以二进制的形式存在;文本格式效率次之,但作为明文存储方式,可以直观的显示数据的信息;XML格式效率较前两者低,因为XML格式要求数据转换为文本后,还需要按XML文法添加辅助字段。但以XML格式存储,不仅可以直观的显示数据内容,还可以显示数据之间的层次关系,并可作为数据交换的载体用于网页显示和基于web的仿真等。
本发明设计序列化机制时,效率问题始终置于首位,因此本发明采用二进制格式存储序列化文件结果,序列化时也只提供二进制这一种输出格式。
确定哪些类的对象需要被序列化时,设计方案有二:
a 利用列表记录所有需要被序列化的对象的类型。在对象被序列化前,先在列表中查找是否存在该对象对应的类型,查找成功才对该对象执行序列化操作。
b 重载序列化函数,以类对象的引用作为其输入参数,通过输入参数显式的指明,哪些类的对象是符合要求需要被序列化的。
方案a的优势在于其功能设计逻辑清晰。其不足在于序列化前需要预处理以记录对象类型,序列化与反序列化过程都需要查表。
方案b则通过输入参数的匹配可以判断对象是否为满足要求的类型,省去了建表和查表的过程。其不足在于重载序列化函数时,需要显式的指明其输入参数的类型,即在程序设计时,要求人为的统计得出需要被序列化的对象的类型总集。
考虑到序列化机制运行效率,本发明设计时采用方案b,以程序设计阶段的低效(人工统计比较繁琐)换取运行阶段的高效。
确定哪些类成员需要被序列化时,本发明同样设计了两套初始方案:
a 利用列表存储类成员的序列化状态,表中包括类成员的ID编号,以及该成员是否需要被序列化(用BOOL型数据表示)。在序列化时,首先对类成员统计得到列表,并保存,然后对成员进行序列化;在反序列化时,则对应的首先读取此表,并根据此表的内容判断需要重构哪些成员信息。此表也可演化为用二进制编码来表示,每一位所处的位置(从低位算起)表示成员的ID号,该位的0,1状态表示对应的成员是否被序列化。如0101表明只有第1,3个成员被序列化。需提供24位二进制编码才能满足需求(对上文得到的类型总集中的每个类分析其成员个数,得出类成员个数的最大值为24)。
b 假定默认所有成员都要被序列化,在序列化时,遇到不需要被序列化的成员时,输出辅助字段(如0xff)在序列化文件中“占位”,在反序列划时,读到此辅助字段,则说明对应位置的成员未被序列化,对该成员赋默认值即可。
方案a更为完善,表或二进制编码集中记录了类成员的序列化状况,充当了成员序列化引擎,即序列化和反序列化时可通过表或二进制编码跟踪类成员,并可给出统计信息。方案b则将各个成员的序列化状况分散至序列化结果信息中,亦满足设计需求且实现相对容易。这两种方案执行效率、资源占用率都很接近。本发明选择相对容易实现的方案b。
序列化源文件文件名时,只保存顶层模型(实体)的源文件文件名。
如下伪代码所示,A1,…,An是package_1.mo中的顶层模型,A1中包含嵌套模型B,映射至Dom体系则为Class* a1,…,Class* an,a1中包含成员变量b。a1,…,an序列化时,必须先序列化其源文件文件名package_1.mo,b非顶层模型,则不要序列化其所处的源文件信息(b的序列化参照规则1.3)。
从面向对象的设计角度而言,应当在Dom类系中以虚函数的方式来实现,可以充分利用多态性,并且接口维护简单。这种方式对于序列化过程非常适用,但实现反序列化时则存在的一个很大问题,即需要先创建一个对象,再通过对象调用序列化函数,来重构对象的成员数据,这形成了一个悖论,因为Dom类系中大多数类对象需要通过其成员来构造。因此,若通过虚拟函数实现序列化机制,将涉及到修改Dom类系中某些类的构造函数或接口函数。这种方式是不合适的。本发明设计时,所有序列化函数独立存在于Dom类系之外,并且按照规则1.1通过重载实现其多态性。输入参数为Dom类系类型对象的引用,并参照Modelica语法规范,将与Modelica语法要点(如表达式、变形、类定义、方程等)对应的类型的序列化函数分块进行设计。这种设计具有良好的执行效率(其多态性是编译期的多态,不涉及运行期动态绑定问题),同时从代码层面上能较好的体现出逻辑关系,方便了后期的管理和维护。
最后给出了完整的序列化和反序列化算法。
图2是Modelica模型库加载方式对比图。
左边所示为传统的库加载流程,由于词法/语法解析的缘故导致加载效率不高;右边所示为改进的库加载流程,引入了库预处理技术,而序列化是其关键所在。
3) 编码测试
根据设计,进行编码,编码完成后,进行测试。测试结果表明,模块功能正确,能够对.mo文件进行序列化和反序列化,且加载速度有了极大的提高,以Modelica 2.1标准库为例,未使用该模块时,加载时间为300秒,使用该模块化后,加载时间仅为600毫秒。
Claims (3)
1.一种物理建模语言Modelica的模型库文件序列化方法,其特征在于:在第一次加载模型库时,对Modelica模型库的源文件进行词法/语法分析,创建文档对象模型抽象语法树,通过序列化技术将文档对象模型抽象语法树的数据保存至序列化结果文件。
2.根据权利要求1所述的物理建模语言Modelica的模型库文件序列化方法,其特征在于:所述通过序列化技术将文档对象模型抽象语法树的数据保存至序列化结果文件包括下列步骤:
(1)根据文档对象模型抽象语法树中数据的数据类型,用预先定义的标志符标记所需保存的数据;
(2) 根据Modelica文档对象模型类系图制定对象映射表;
(3) 根据对象映射表将所需序列化的数据进行分类标记,标记时需区分类、类成员以及对象所在实体文件;
(4) 依据Modelica编译结果进行序列化输出,序列化依照对象数据排列规则进行,每个Modelica对象数据输出前,首先输出其分类标记, 其次为数据块大小,最后为数据内容; 当指定数据不存在时,以占位符进行数据虚拟填充。
3.一种物理建模语言Modelica的模型库文件的反序列化方法,其特征在于:读取序列化结果文件,包括如下步骤,
(1) 根据Modelica文档对象模型类系图制定的对象映射表预先创建所需反序列化的对象,并进行对象初始化,初始对象数据为空;
(2) 从序列化文件中读入数据,根据读取的分类标记确定向何种对象填充数据,根据读取的数据块大小值确定对象数据的大小,最终实现读入单个的完整对象,如果读入数据为占位符,则该对象的指定数据设置为空;
(3) 依据Modelica模型序列化文件中的对象结果顺序依次在内存中创建新的对象,对象的层次关系按照序列化文件中的分类标记进行组织,从而实现在内存中重构Modelica模型编译结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100344960A CN102043657A (zh) | 2011-02-01 | 2011-02-01 | 物理建模语言Modelica的模型库文件序列化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100344960A CN102043657A (zh) | 2011-02-01 | 2011-02-01 | 物理建模语言Modelica的模型库文件序列化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102043657A true CN102043657A (zh) | 2011-05-04 |
Family
ID=43909814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100344960A Pending CN102043657A (zh) | 2011-02-01 | 2011-02-01 | 物理建模语言Modelica的模型库文件序列化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102043657A (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508985A (zh) * | 2011-12-01 | 2012-06-20 | 北京联合大学 | 一种基于多领域统一建模语言的电路仿真优化方法 |
CN103336441A (zh) * | 2013-06-21 | 2013-10-02 | 苏州同元软控信息技术有限公司 | 飞机液压起落架半物理实时仿真系统 |
CN103514406A (zh) * | 2013-07-25 | 2014-01-15 | 北京网秦天下科技有限公司 | 解析多引擎检测结果的方法和装置 |
CN103746866A (zh) * | 2013-12-20 | 2014-04-23 | 苏州同元软控信息技术有限公司 | 基于can通信协议的仿真测试系统 |
CN103778248A (zh) * | 2014-02-18 | 2014-05-07 | 成都致云科技有限公司 | 高效自描述的复杂数据对象序列化方法 |
CN105095319A (zh) * | 2014-05-23 | 2015-11-25 | 邓寅生 | 基于时间序列化的文档的标识、关联、搜索及展现的系统 |
CN105243223A (zh) * | 2015-10-28 | 2016-01-13 | 苏州同元软控信息技术有限公司 | 基于Modelica的程序快速构建方法 |
CN105445581A (zh) * | 2015-11-27 | 2016-03-30 | 苏州同元软控信息技术有限公司 | 一种基于Modelica模型的故障检测系统及其方法 |
CN106202681A (zh) * | 2016-07-04 | 2016-12-07 | 北京空间飞行器总体设计部 | 可重用的卫星电源能量平衡仿真系统及其建模方法 |
CN106445804A (zh) * | 2016-08-24 | 2017-02-22 | 北京奇虎测腾安全技术有限公司 | 一种基于序列化中间表示的源代码云检测系统及方法 |
WO2017092580A1 (zh) * | 2015-11-30 | 2017-06-08 | 阿里巴巴集团控股有限公司 | 一种结构化数据的序列化、反序列化方法及装置 |
CN106844009A (zh) * | 2017-01-17 | 2017-06-13 | 苏州同元软控信息技术有限公司 | 一种基于Modelica的数字化仪表创建方法 |
CN107357740A (zh) * | 2017-07-05 | 2017-11-17 | 腾讯科技(深圳)有限公司 | 一种序列化器自动配置方法、装置及分布式缓存系统 |
CN109710307A (zh) * | 2018-12-29 | 2019-05-03 | 深圳点猫科技有限公司 | 基于Python代码重建抽象语法树的方法、电子设备 |
CN111506513A (zh) * | 2020-06-04 | 2020-08-07 | 南京大学 | 一种基于层次化模型的文件系统测试方法 |
CN112579207A (zh) * | 2020-12-24 | 2021-03-30 | 深圳市优必选科技股份有限公司 | 一种数据加载的方法、装置及设备 |
CN114527966A (zh) * | 2022-02-24 | 2022-05-24 | 中国人民解放军火箭军工程大学 | 一种文件输入输出流高效通用化算法库实现方法 |
CN114840196A (zh) * | 2022-07-06 | 2022-08-02 | 中国汽车技术研究中心有限公司 | Modelica语言模型处理方法、设备和存储介质 |
CN116126429A (zh) * | 2022-12-06 | 2023-05-16 | 谷斗科技(上海)有限公司 | 一种非数据类型对象的引用持久化及其恢复的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1380941A2 (en) * | 2000-05-09 | 2004-01-14 | Sun Microsystems, Inc. | Tranformation of objects between a computer programming language and data representation language |
CN101794225A (zh) * | 2010-02-26 | 2010-08-04 | 南京师范大学 | 一种基于gdom及其持久化的gml解析方法 |
-
2011
- 2011-02-01 CN CN2011100344960A patent/CN102043657A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1380941A2 (en) * | 2000-05-09 | 2004-01-14 | Sun Microsystems, Inc. | Tranformation of objects between a computer programming language and data representation language |
CN101794225A (zh) * | 2010-02-26 | 2010-08-04 | 南京师范大学 | 一种基于gdom及其持久化的gml解析方法 |
Non-Patent Citations (1)
Title |
---|
唐俊杰: "多领域建模与仿真编译器前端交互若干关键技术研究", 《中国优秀硕士学位论文全文数据库》, no. 05, 15 May 2009 (2009-05-15), pages 1 - 55 * |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508985A (zh) * | 2011-12-01 | 2012-06-20 | 北京联合大学 | 一种基于多领域统一建模语言的电路仿真优化方法 |
CN102508985B (zh) * | 2011-12-01 | 2013-10-09 | 北京联合大学 | 一种基于多领域统一建模语言的电路仿真优化方法 |
CN103336441A (zh) * | 2013-06-21 | 2013-10-02 | 苏州同元软控信息技术有限公司 | 飞机液压起落架半物理实时仿真系统 |
CN103514406A (zh) * | 2013-07-25 | 2014-01-15 | 北京网秦天下科技有限公司 | 解析多引擎检测结果的方法和装置 |
CN103514406B (zh) * | 2013-07-25 | 2017-03-01 | 北京网秦天下科技有限公司 | 解析多引擎检测结果的方法和装置 |
CN103746866A (zh) * | 2013-12-20 | 2014-04-23 | 苏州同元软控信息技术有限公司 | 基于can通信协议的仿真测试系统 |
CN103778248A (zh) * | 2014-02-18 | 2014-05-07 | 成都致云科技有限公司 | 高效自描述的复杂数据对象序列化方法 |
CN103778248B (zh) * | 2014-02-18 | 2017-07-11 | 成都致云科技有限公司 | 高效自描述的复杂数据对象序列化方法 |
CN105095319A (zh) * | 2014-05-23 | 2015-11-25 | 邓寅生 | 基于时间序列化的文档的标识、关联、搜索及展现的系统 |
CN105095319B (zh) * | 2014-05-23 | 2019-04-19 | 邓寅生 | 基于时间序列化的文档的标识、关联、搜索及展现的系统 |
CN105243223A (zh) * | 2015-10-28 | 2016-01-13 | 苏州同元软控信息技术有限公司 | 基于Modelica的程序快速构建方法 |
CN105243223B (zh) * | 2015-10-28 | 2018-11-02 | 苏州同元软控信息技术有限公司 | 基于Modelica的程序快速构建方法 |
CN105445581A (zh) * | 2015-11-27 | 2016-03-30 | 苏州同元软控信息技术有限公司 | 一种基于Modelica模型的故障检测系统及其方法 |
CN105445581B (zh) * | 2015-11-27 | 2018-05-22 | 苏州同元软控信息技术有限公司 | 一种基于Modelica模型的故障检测系统及其方法 |
CN106815238B (zh) * | 2015-11-30 | 2020-10-20 | 阿里巴巴集团控股有限公司 | 一种结构化数据的序列化、反序列化方法及装置 |
CN106815238A (zh) * | 2015-11-30 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 一种结构化数据的序列化、反序列化方法及装置 |
WO2017092580A1 (zh) * | 2015-11-30 | 2017-06-08 | 阿里巴巴集团控股有限公司 | 一种结构化数据的序列化、反序列化方法及装置 |
CN106202681A (zh) * | 2016-07-04 | 2016-12-07 | 北京空间飞行器总体设计部 | 可重用的卫星电源能量平衡仿真系统及其建模方法 |
CN106445804B (zh) * | 2016-08-24 | 2019-04-05 | 北京奇虎测腾安全技术有限公司 | 一种基于序列化中间表示的源代码云检测系统及方法 |
CN106445804A (zh) * | 2016-08-24 | 2017-02-22 | 北京奇虎测腾安全技术有限公司 | 一种基于序列化中间表示的源代码云检测系统及方法 |
CN106844009B (zh) * | 2017-01-17 | 2020-10-30 | 苏州同元软控信息技术有限公司 | 一种基于Modelica的数字化仪表创建方法 |
CN106844009A (zh) * | 2017-01-17 | 2017-06-13 | 苏州同元软控信息技术有限公司 | 一种基于Modelica的数字化仪表创建方法 |
CN107357740A (zh) * | 2017-07-05 | 2017-11-17 | 腾讯科技(深圳)有限公司 | 一种序列化器自动配置方法、装置及分布式缓存系统 |
CN107357740B (zh) * | 2017-07-05 | 2018-08-03 | 腾讯科技(深圳)有限公司 | 一种序列化器自动配置方法、装置及分布式缓存系统 |
CN109710307B (zh) * | 2018-12-29 | 2022-03-11 | 深圳点猫科技有限公司 | 基于Python代码重建抽象语法树的方法、电子设备 |
CN109710307A (zh) * | 2018-12-29 | 2019-05-03 | 深圳点猫科技有限公司 | 基于Python代码重建抽象语法树的方法、电子设备 |
CN111506513A (zh) * | 2020-06-04 | 2020-08-07 | 南京大学 | 一种基于层次化模型的文件系统测试方法 |
CN112579207A (zh) * | 2020-12-24 | 2021-03-30 | 深圳市优必选科技股份有限公司 | 一种数据加载的方法、装置及设备 |
CN112579207B (zh) * | 2020-12-24 | 2023-12-15 | 深圳市优必选科技股份有限公司 | 一种数据加载的方法、装置及设备 |
CN114527966A (zh) * | 2022-02-24 | 2022-05-24 | 中国人民解放军火箭军工程大学 | 一种文件输入输出流高效通用化算法库实现方法 |
CN114527966B (zh) * | 2022-02-24 | 2024-06-04 | 中国人民解放军火箭军工程大学 | 一种文件输入输出流高效通用化算法库实现方法 |
CN114840196A (zh) * | 2022-07-06 | 2022-08-02 | 中国汽车技术研究中心有限公司 | Modelica语言模型处理方法、设备和存储介质 |
CN114840196B (zh) * | 2022-07-06 | 2022-10-14 | 中国汽车技术研究中心有限公司 | Modelica语言模型处理方法、设备和存储介质 |
CN116126429A (zh) * | 2022-12-06 | 2023-05-16 | 谷斗科技(上海)有限公司 | 一种非数据类型对象的引用持久化及其恢复的方法 |
CN116126429B (zh) * | 2022-12-06 | 2023-11-17 | 谷斗科技(上海)有限公司 | 一种非数据类型对象的引用持久化及其恢复的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102043657A (zh) | 物理建模语言Modelica的模型库文件序列化方法 | |
Marwedel et al. | Code generation for embedded processors | |
Buckley | PySLHA: a pythonic interface to SUSY Les Houches accord data | |
CN102201009B (zh) | 一种表单生成方法和装置 | |
CN111078702B (zh) | 一种sql语句分类管理及统一查询方法和装置 | |
CN102646125B (zh) | 一种结构化数字内容析取与重组方法 | |
CN103559321B (zh) | 文档格式转换系统 | |
US20080155519A1 (en) | Code translator | |
US20110023022A1 (en) | Method for application authoring employing an application template stored in a database | |
CN103593457B (zh) | 文档格式转换方法 | |
US20050108684A1 (en) | Method and system for generating an application object repository from application framework metadata | |
CN101604241A (zh) | 一种嵌入式系统的代码生成方法 | |
CN110955714B (zh) | 一种将非结构化文本转化为结构化文本的方法及装置 | |
CN101146281A (zh) | 一种面向移动终端的创建图形用户界面模型 | |
CN100517222C (zh) | 支持转换引擎与映射规则相分离的模型转换装置及其方法 | |
CN103226488A (zh) | 一种形式化代码生成中的效率控制方法及装置 | |
CN101901265A (zh) | 一种虚拟试验数据对象化管理系统 | |
CN105468793A (zh) | 一种仿真模型数据的自动化管理方法 | |
CN103927777A (zh) | 基于Mealy有限状态自动机的三维动画流程的组织与控制方法 | |
CN101770367A (zh) | .net文件压缩方法和装置 | |
CN101165682A (zh) | 一种文档文件的处理方法及系统 | |
CN104281604B (zh) | 生成Targetlink数据字典分层树的方法和系统 | |
CN104331288B (zh) | 一种配置化展现动态页面的方法及系统 | |
CN101388034A (zh) | 用于处理数据库的设备和方法 | |
CN109324838A (zh) | 单片机程序的执行方法、执行装置及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110504 |