CN107908394A - 一种数据交换格式化源代码生成方法及工具 - Google Patents
一种数据交换格式化源代码生成方法及工具 Download PDFInfo
- Publication number
- CN107908394A CN107908394A CN201711164445.3A CN201711164445A CN107908394A CN 107908394 A CN107908394 A CN 107908394A CN 201711164445 A CN201711164445 A CN 201711164445A CN 107908394 A CN107908394 A CN 107908394A
- Authority
- CN
- China
- Prior art keywords
- code
- protocol
- rule
- template
- interchange format
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种数据交换格式化源代码生成方法及工具,属于代码生成技术领域。其由协议解析模块读取协议原型定义文件并生成协议规则,并由协议检测模块测试通过后,根据引擎规则模板和操作系统抽象层,生成基于C语言的数据交换格式化代码。本发明能够实现代码的格式化自动生成,便于代码风格的统一与交换。
Description
技术领域
本发明涉及代码生成技术领域,特别是指一种数据交换格式化源代码生成方法及工具。
背景技术
软件开发过程中,用户需求的多变以及软件开发规模的加大,使得软件开发周期变长,成本增加,软件质量降低。大型软件都是在一定的时间周期内完成的,因此很多人只注重代码的编写速度,忽略了鲁棒性与可维护性,加上大型软件开发通常由很多人共同参与,编码风格及水平迥异,容易造成严重的差异性。尤其是在数据交换,即协议的编写和参数边界检查过程中,容易出现问题。
发明内容
有鉴于此,本发明提出一种数据交换格式化源代码生成方法及工具,其能够实现代码的格式化自动生成,便于代码风格的统一与交换。
基于上述目的,本发明提供的技术方案是:
一种数据交换格式化源代码生成方法,其根据预设的协议原型定义文件生成协议规则,对协议规则进行测试,测试通过后,根据预先确定的引擎规则模板和操作系统抽象层,生成基于C语言的数据交换格式化代码。
可选的,上述方法包括以下步骤:
(1)读取协议原型定义文件,识别出字段类型、字段声明、字段标签和注释的信息;
(2)根据字段类型、字段声明、字段标签的信息展开嵌套消息流并生成协议规则;
(3)根据协议规则验证参数是否合法,判定协议规则优先级并依据优先级对协议规则进行排序;
(4)根据预设的设计模式,将协议规则按顺序与引擎规则模板中的结构相匹配;
(5)根据引擎规则模板,并结合操作系统抽象层匹配及优化结果生成C语言代码。
此外,本发明还提供一种数据交换格式化源代码生成工具,其包含以下模块:
(1)协议解析模块,用于按照预设模式读取协议原型定义文件,生成并展开嵌套协议规则;
(2)协议检测模块,用于验证参数是否合法,判定协议序列优先级,以及生成用于检测代码生成模块生成代码质量的验证代码;
(3)模板引擎模块,用于存储预先确定的引擎规则模板;
(4)操作系统抽象层,用于增强模板引擎的功能,封装跨平台的代码接口并进行平台相关的代码优化;
(5)代码生成模块,用于调用模板引擎模块并结合操作系统抽象层生成C语言代码。
从上面的叙述可以看出,本发明技术方案的有益效果在于:
1、本发明具有标准的代码风格,输出源码为标准C语言。
2、本发明具有良好的跨平台特性,能够兼容linux/windows/Vxworks等多种平台。
3、本发明具有严格的协议检测,能够支持参数范围查询/判断,日志打印以及生成代码质量检测和验证。
4、本发明具有双向格式转换,支持“序列化数据->结构体”以及“结构体->序列化数据”的双向过程。
6、本发明能够实现大小端转换,支持网络字节序/主机字节序转换。
7、本发明使用轻便,高效,兼容性好。
目前的软件项目普遍需要自定义协议,并且项目中不同的程序员编码风格不同,水平良莠不齐,容易出现各种各样的问题,导致项目进展缓慢,联试状况百出,人工编码在编码风格,手工编码错误,边界检查漏检等方面存在很大的风险。而代码自动生成方法能够在零点几秒的时间内完成几千甚至上万行代码的生成,完成包括代码生成结构化数据,大小端转换,边界检查,日志打印等函数的封装,极大的方便了程序员后继工作的开展。
总之,本发明提供了一种用来序列化结构化数据的代码生成方法及工具,能够生成基于ANSI C语言的协议序列化/反序列化、日志输出以及边界检查等代码,生成的基于C语言的数据交换格式化源代码,具备跨平台、参数边界检查等特点,能够提高了软件开发的速度和效率,达到简化开发人员开发的代码工作量、快速响应开发需求的作用,并可以使用该技术来将格式化协议序列化/反序列化成需要传输的数据流。本发明后向兼容性好,依靠已经部署的“旧”数据格式的程序就可以对新的数据结构进行升级。这样程序就不会因为消息结构的改变而造成的大规模的代码重构或者迁移的问题。因为添加新的消息中的字段标签并不会引起已经发布的程序的任何改变。生成的代码在进行序列化时采用紧凑结构,把所有字段在内存中的映像平铺且无填充空间,达到节省空间的目的。相比较其他的协议代码生成技术而言,本发明具备跨平台特性(操作系统抽象层支持),节省空间(以二进制流存储)、检测严格、轻便高效以及良好的兼容性。
附图说明
为了更加清楚地描述本专利,下面提供一幅或多幅附图,这些附图旨在对本专利的背景技术、技术原理和/或某些具体实施方案做出辅助说明。需要注意的是,这些附图可以给出也可以不给出一些在本专利文字部分已有描述且属于本领域普通技术人员公知常识的具体细节;并且,因为本领域的普通技术人员完全可以结合本专利已公开的文字内容和/或附图内容,在不付出任何创造性劳动的情况下设计出更多的附图,因此下面这些附图可以涵盖也可以不涵盖本专利文字部分所叙述的所有技术方案。此外,这些附图的具体内涵需要结合本专利的文字内容予以确定,当本专利的文字内容与这些附图中的某个明显结构不相符时,需要结合本领域的公知常识以及本专利其他部分的叙述来综合判断到底是本专利的文字部分存在笔误,还是附图中存在绘制错误。特别地,以下附图均为示例性质的图片,并非旨在暗示本专利的保护范围,本领域的普通技术人员通过参考本专利所公开的文字内容和/或附图内容,可以在不付出任何创造性劳动的情况下设计出更多的附图,这些新附图所代表的技术方案依然在本专利的保护范围之内。
图1是本发明实施例中代码生成器规则模型图;
图2是本发明实施例中代码生成方法的流程图。
具体实施方式
为了便于本领域技术人员对本专利技术方案的理解,同时,为了使本专利的技术目的、技术方案和有益效果更加清楚,并使权利要求书的保护范围得到充分支持,下面以具体案例的形式对本专利的技术方案做出进一步的、更详细的说明。
一种数据交换格式化源代码生成工具,其包含以下模块:
(1)协议解析模块,用于按照预设模式读取协议原型定义文件,生成并展开嵌套协议规则;
(2)协议检测模块,用于验证参数是否合法,判定协议序列优先级,以及生成用于检测代码生成模块生成代码质量的验证代码;
(3)模板引擎模块,用于存储预先确定的引擎规则模板;
(4)操作系统抽象层,用于增强模板引擎的功能,封装跨平台的代码接口并进行平台相关的代码优化;
(5)代码生成模块,用于调用模板引擎模块并结合操作系统抽象层生成C语言代码。
如图2所示,一种数据交换格式化源代码生成方法,包括以下步骤:
1、按照预设模式读取协议原型定义文件
在协议原型定义文件中,可以通过使用描述性语言,来良好地定义程序中需要用到数据格式。为了让代码生成方法用起来简单,使用的协议格式定义尽可能的简化。
对应协议原型文件,一个数据流称之为一个“message”,一个“message”对应一个C程序中的结构体,“message”之间可以嵌套;“message”中的每一行称之为一个字段,一个字段描述一个程序中的数据类型。
2、生成并展开嵌套协议规则
对于每个字段而言,组成部分有:字段类型;字段声明;字段标签(可选);注释(可选)。因为数据流之间可以嵌套,必须展开嵌套的字段,提取出父数据流和子数据流,对每个字段的组成部分进行解析。
字段类型标明该字段在程序中的数据类型。协议中出现的数组通过字段标签中的“count”标签能够实现。对于字段而言,每个标签都不是必需的。默认字段初始值default都被初始化为0。
3、判断参数是否合法,判定协议序列优先级
每个字段的字段标签描述了字段的特征,通过定义default/min/max标签规范数据的有效范围,从而能够在协议中判断该字段是否有效。通过count标签能够说明该字段是否为数组。再根据嵌套数据流之间的关系判定每个字段的优先级和嵌套关系。最后组合上述规则针对每个字段进行判断,判断其是否正确合法。
4、匹配预先确定的引擎模板
针对数据交换格式化需求,生成的代码需要跨平台运行,并且需要能够方便快捷的生成WINDOWS链接库以及LINUX下的动态链接库等等。根据这些要求,预先确定引擎规则模板,并利用代码生成模块进行调用。首先将数据流转换为结构体的形式,然后根据优先级标签分别将序列化/反序列化,日志,边界检查,最大值/最小值/默认值查询函数一一实现。
5、操作系统抽象层
为提高生成代码的跨平台特性,本发明具有宏指令代码处理功能。即用户可以在模板中使用宏指令申明变量、处理实例数据等。宏指令包括变量声明、赋值、算术运算、逻辑运算、条件判断、循环等等。通过对数据类型、声明、打印函数和各类接口的封装,实现跨平台功能。
本发明还具备代码优化功能,通过调用_bulitin_expect()以及__attribute__等指令的运用,优化编译器,改变汇编指令的执行顺序,来充分利用处理器的流水线,从而加速程序的执行速度。
6、编译协议原型定义文件
通过以上步骤,就可以将相关定义以及协议规则作为代码生成器的输入,编译产生基于C语言的数据定义代码文件。使用编译器后生成的是.h与.c的代码文件。当下载了对应的编译器二进制文件后,就可以使用命令来完成编译过程。通过查看头文件,可以发现针对每个消息都会生成如下几种函数,包括范围检查,获取边界值等函数。另外,为了验证生成代码的正确性以及鲁棒性,协议检测模块会在代码生成完成后,生成用于检测生成代码的测试代码,方便用户进行代码检测和验证。
因为C语言中没有C++提供的类的概念,所以,这里参考Linux内核的编写方式,将各个参数的范围检查相关的函数以函数指针的形式放在结构体中,方便用户使用。对于每个字段会生成一个check函数(范围检查)、get_max_value函数(获取最大值)、get_min_value函数(获取最小值)、get_default_value函数(获取默认值)。需要注意check函数中针对数组的检查方法,对于字段标签count大于1的变量的check函数而言,通过check每一个字段的范围值,如果其中一个不满足参数的范围检查条件,就返回对应错误码。
图1所示是一种代码生成器规则。其中,设计模式负责控制输出代码的格式以及内容。元数据则负责将协议规范为代码生成器能够读懂的数据原型定义文件。由此可见,代码生成过程实际上是把和软件平台无关的业务数据翻译成软件平台相关的具体代码的过程,优点在于能够一定程度上减少冗繁的重复代码编写工作,使软件开发人员可以集中精力于更富有创造性的工作上去。
编译并生成代码文件后,就可以使用生成的API来编写应用程序,编写一个应用很简单,分为序列化数据、反序列化数据两个基本应用。
序列化数据主要分为以下四步:
•利用生成代码提供的API初始化协议结构体和参数范围检查结构体。
•获取来自文件/内存/标准输入的数据源,利用利用代码生成器生成代码提供的API做参数范围检查。
•使用检查合法的数据源填充数据结构。
• 利用代码生成器生成代码提供的序列化接口将数据结构序列化,然后存储在内存或者磁盘上。
类似的,反序列化数据主要分为以下五步:
•利用代码生成器生成代码提供的API初始化协议结构体和参数范围检查结构体。
•将获取的数据载入内存或者输入流 。
•利用代码生成器生成代码提供的反序列化接口将数据流反序列化,然后存储在内存或者磁盘上。
•利用利用代码生成器生成代码提供的API做参数范围检查。
•利用利用代码生成器生成代码提供的API打印协议结构体(debug需要)
下面分别以Linux和Windows系统为例简述数据交换格式化源代码生成工具的编译和使用方法:
(1)编译:
对于Linux系统:
转到本工具源代码目录src下,在命令行中输入“make -f makefile.Linux”命令生成二进制可执行文件miniPackage。
对于Windows系统:
利用Visual Studio 20xx/VC6.0或Eclipse等编译工具,新建工程并添加src目录下的源码,编译生成可执行文件miniPackage.exe。
(2)依照协议原型定义规范,根据相关协议定义协议原型定义文件,以mpp作为后缀名。
(3)使用生成的可执行文件miniPackage生成代码:
Windows:miniPackage.exe -f SRC/*.mpp -log -order
Linux:./miniPackage -f SRC/*.mpp -log –order
(4)根据对应的接口函数,调用生成的代码,编写应用程序。
本发明能够解决项目中需要序列化/反序列化协议的问题,目前项目都需要自定义协议,并且项目中不同的程序员编码风格不同,容易出现各种各样的问题,导致项目进展缓慢,人工编码在编码风格,手工编码错误,边界检查漏检等方面存在很大的风险。
该代码生成方法能够在零点几秒的时间内完成几千甚至上万行代码的生成,完成包括代码生成结构化数据,大小端转换,边界检查,日志打印等函数的封装,极大的方便了程序员后继工作的开展。
需要理解的是,上述对于本专利具体实施方式的叙述仅仅是为了便于本领域普通技术人员理解本专利方案而列举的示例性描述,并非暗示本专利的保护范围仅仅被限制在这些个例中,本领域普通技术人员完全可以在对本专利技术方案做出充分理解的前提下,以不付出任何创造性劳动的形式,通过对本专利所列举的各个例采取组合技术特征、替换部分技术特征、加入更多技术特征等等方式,得到更多的具体实施方式,所有这些具体实施方式均在本专利权利要求书的涵盖范围之内,因此,这些新的具体实施方式也应在本专利的保护范围之内。
此外,出于简化叙述的目的,本专利也可能没有列举一些寻常的具体实施方案,这些方案是本领域普通技术人员在理解了本专利技术方案后能够自然而然想到的,显然,这些方案也应包含在本专利的保护范围之内。
出于简化叙述的目的,上述各具体实施方式对于技术细节的公开程度可能仅仅达到本领域技术人员可以自行决断的程度,即,对于上述具体实施方式没有公开的技术细节,本领域普通技术人员完全可以在不付出任何创造性劳动的情况下,在本专利技术方案的充分提示下,借助于教科书、工具书、论文、专利、音像制品等等已公开文献予以完成,或者,这些细节是在本领域普通技术人员的通常理解下,可以根据实际情况自行作出决定的内容。可见,即使不公开这些技术细节,也不会对本专利技术方案的公开充分性造成影响。
总之,在结合了本专利说明书对权利要求书保护范围的解释作用的基础上,任何落入本专利权利要求书涵盖范围的具体实施方案,均在本专利的保护范围之内。
Claims (3)
1.一种数据交换格式化源代码生成方法,其特征在于,根据预设的协议原型定义文件生成协议规则,对协议规则进行测试,测试通过后,根据预先确定的引擎规则模板和操作系统抽象层,生成基于C语言的数据交换格式化代码。
2.根据权利要求1所述的数据交换格式化源代码生成方法,其特征在于,包括以下步骤:
(1)读取协议原型定义文件,识别出字段类型、字段声明、字段标签和注释的信息;
(2)根据字段类型、字段声明、字段标签的信息展开嵌套消息流并生成协议规则;
(3)根据协议规则验证参数是否合法,判定协议规则优先级并依据优先级对协议规则进行排序;
(4)根据预设的设计模式,将协议规则按顺序与引擎规则模板中的结构相匹配;
(5)根据引擎规则模板,并结合操作系统抽象层匹配及优化结果生成C语言代码。
3.一种数据交换格式化源代码生成工具,其特征在于,包含以下模块:
(1)协议解析模块,用于按照预设模式读取协议原型定义文件,生成并展开嵌套协议规则;
(2)协议检测模块,用于验证参数是否合法,判定协议序列优先级,以及生成用于检测代码生成模块生成代码质量的验证代码;
(3)模板引擎模块,用于存储预先确定的引擎规则模板;
(4)操作系统抽象层,用于增强模板引擎的功能,封装跨平台的代码接口并进行平台相关的代码优化;
(5)代码生成模块,用于调用模板引擎模块并结合操作系统抽象层生成C语言代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711164445.3A CN107908394B (zh) | 2017-11-21 | 2017-11-21 | 一种数据交换格式化源代码生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711164445.3A CN107908394B (zh) | 2017-11-21 | 2017-11-21 | 一种数据交换格式化源代码生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107908394A true CN107908394A (zh) | 2018-04-13 |
CN107908394B CN107908394B (zh) | 2020-03-10 |
Family
ID=61846890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711164445.3A Active CN107908394B (zh) | 2017-11-21 | 2017-11-21 | 一种数据交换格式化源代码生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107908394B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984728A (zh) * | 2018-07-11 | 2018-12-11 | 北京奇艺世纪科技有限公司 | 一种代理类生成方法及装置 |
CN110069250A (zh) * | 2019-04-30 | 2019-07-30 | 联陆智能交通科技(上海)有限公司 | Lte-v2x标准应用层数据编解码方法、系统及介质 |
CN110162480A (zh) * | 2019-05-31 | 2019-08-23 | 苏州简约纳电子有限公司 | 一种结构化诊断对象的自动化解析方法 |
CN111125064A (zh) * | 2019-12-24 | 2020-05-08 | 中国建设银行股份有限公司 | 一种生成数据库模式定义语句的方法和装置 |
CN112202745A (zh) * | 2020-09-23 | 2021-01-08 | 深圳力维智联技术有限公司 | 流式协议开发方法、装置、设备及存储介质 |
CN112256253A (zh) * | 2020-11-12 | 2021-01-22 | 北斗星通智联科技有限责任公司 | 代码生成方法、装置、电子设备和计算机可读存储介质 |
CN112256279A (zh) * | 2020-09-29 | 2021-01-22 | 深圳市广和通无线股份有限公司 | 源码转换方法、装置、计算机设备及可读存储介质 |
CN112631569A (zh) * | 2020-12-30 | 2021-04-09 | 上海中通吉网络技术有限公司 | 基于gRPC的自动生成与补全前后端代码的方法、装置及设备 |
CN115150483A (zh) * | 2022-05-17 | 2022-10-04 | 浙江木链物联网科技有限公司 | 一种网络数据包解析方法、系统及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101841515A (zh) * | 2009-03-19 | 2010-09-22 | 北京理工大学 | 可变目标的协议数据单元编解码代码自动生成的实现方法 |
CN102055770A (zh) * | 2011-01-17 | 2011-05-11 | 西安电子科技大学 | 一种基于xml描述的安全协议代码自动实现系统 |
CN102591654A (zh) * | 2011-12-28 | 2012-07-18 | 方正国际软件有限公司 | 一种基于ssh架构的代码生成器及方法 |
US8631385B2 (en) * | 2009-02-26 | 2014-01-14 | International Business Machines Corporation | Optimizing code generation system with input data integration |
JP2017091134A (ja) * | 2015-11-09 | 2017-05-25 | 日本電気株式会社 | ソースコード生成装置、ソースコード生成方法、及びソースコード生成プログラム |
CN107273117A (zh) * | 2017-05-25 | 2017-10-20 | 深圳市彬讯科技有限公司 | 一种编程友好型的敏捷代码自动生成系统 |
-
2017
- 2017-11-21 CN CN201711164445.3A patent/CN107908394B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8631385B2 (en) * | 2009-02-26 | 2014-01-14 | International Business Machines Corporation | Optimizing code generation system with input data integration |
CN101841515A (zh) * | 2009-03-19 | 2010-09-22 | 北京理工大学 | 可变目标的协议数据单元编解码代码自动生成的实现方法 |
CN102055770A (zh) * | 2011-01-17 | 2011-05-11 | 西安电子科技大学 | 一种基于xml描述的安全协议代码自动实现系统 |
CN102591654A (zh) * | 2011-12-28 | 2012-07-18 | 方正国际软件有限公司 | 一种基于ssh架构的代码生成器及方法 |
JP2017091134A (ja) * | 2015-11-09 | 2017-05-25 | 日本電気株式会社 | ソースコード生成装置、ソースコード生成方法、及びソースコード生成プログラム |
CN107273117A (zh) * | 2017-05-25 | 2017-10-20 | 深圳市彬讯科技有限公司 | 一种编程友好型的敏捷代码自动生成系统 |
Non-Patent Citations (1)
Title |
---|
何炎祥等: "基于Esterel的代码自动生成方法", 《北京航空航天大学学报》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984728A (zh) * | 2018-07-11 | 2018-12-11 | 北京奇艺世纪科技有限公司 | 一种代理类生成方法及装置 |
CN110069250A (zh) * | 2019-04-30 | 2019-07-30 | 联陆智能交通科技(上海)有限公司 | Lte-v2x标准应用层数据编解码方法、系统及介质 |
CN110162480A (zh) * | 2019-05-31 | 2019-08-23 | 苏州简约纳电子有限公司 | 一种结构化诊断对象的自动化解析方法 |
CN110162480B (zh) * | 2019-05-31 | 2023-02-24 | 泛升云微电子(苏州)有限公司 | 一种结构化诊断对象的自动化解析方法 |
CN111125064A (zh) * | 2019-12-24 | 2020-05-08 | 中国建设银行股份有限公司 | 一种生成数据库模式定义语句的方法和装置 |
CN111125064B (zh) * | 2019-12-24 | 2023-08-29 | 中国建设银行股份有限公司 | 一种生成数据库模式定义语句的方法和装置 |
CN112202745B (zh) * | 2020-09-23 | 2023-01-31 | 深圳力维智联技术有限公司 | 流式协议开发方法、装置、设备及存储介质 |
CN112202745A (zh) * | 2020-09-23 | 2021-01-08 | 深圳力维智联技术有限公司 | 流式协议开发方法、装置、设备及存储介质 |
CN112256279A (zh) * | 2020-09-29 | 2021-01-22 | 深圳市广和通无线股份有限公司 | 源码转换方法、装置、计算机设备及可读存储介质 |
CN112256279B (zh) * | 2020-09-29 | 2024-05-14 | 深圳市广和通无线股份有限公司 | 源码转换方法、装置、计算机设备及可读存储介质 |
CN112256253A (zh) * | 2020-11-12 | 2021-01-22 | 北斗星通智联科技有限责任公司 | 代码生成方法、装置、电子设备和计算机可读存储介质 |
CN112256253B (zh) * | 2020-11-12 | 2023-09-01 | 北斗星通智联科技有限责任公司 | 代码生成方法、装置、电子设备和计算机可读存储介质 |
CN112631569A (zh) * | 2020-12-30 | 2021-04-09 | 上海中通吉网络技术有限公司 | 基于gRPC的自动生成与补全前后端代码的方法、装置及设备 |
CN115150483A (zh) * | 2022-05-17 | 2022-10-04 | 浙江木链物联网科技有限公司 | 一种网络数据包解析方法、系统及可读存储介质 |
CN115150483B (zh) * | 2022-05-17 | 2023-08-29 | 浙江木链物联网科技有限公司 | 一种网络数据包解析方法、系统及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107908394B (zh) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107908394A (zh) | 一种数据交换格式化源代码生成方法及工具 | |
Kollmann et al. | A study on the current state of the art in tool-supported UML-based static reverse engineering | |
US9043759B1 (en) | System and method for generating software unit tests simultaneously with API documentation | |
US20060075305A1 (en) | Method and system for source-code model-based testing | |
AU2012203071A1 (en) | Computer-implemented method, system and computer program product for displaying a user interface component | |
Rose et al. | A comparison of model migration tools | |
US20080276221A1 (en) | Method and apparatus for relations planning and validation | |
CN105117210A (zh) | 一种面向wscn的图形化编程系统 | |
Pinto et al. | Aspect composition for multiple target languages using LARA | |
Hanly et al. | Problem solving and program design in C | |
Bolin | Closure: The definitive guide: Google tools to add power to your JavaScript | |
CN108399086A (zh) | 一种微件管理方法、服务器和计算机可读存储介质 | |
Hussmann et al. | Modular architecture for a toolset supporting OCL | |
CN101211262A (zh) | 一种软件体系结构描述语言的快速构建和支持的方法 | |
Křikava et al. | SIGMA: Scala internal domain-specific languages for model manipulations | |
CN113138755A (zh) | 一种json序列化和反序列化的优化方法及系统 | |
CN115878097B (zh) | 一种创建定时任务的方法及系统 | |
CN101055521B (zh) | 映射规则的可视化生成方法及系统 | |
Cosentino et al. | A model-driven approach to generate external dsls from object-oriented apis | |
Chodarev et al. | Development of custom notation for XML-based language: A model-driven approach | |
Stoffel | Comparing language workbenches | |
Thomson | Linking Dataflow Algebra with the CaDiZ Tool | |
Fritzson et al. | OpenModelica System Documentation | |
Sandven | Metamodel based Code Generation in DPF Editor | |
Van Der Storm et al. | Gradual grammars: Syntax in levels and locales |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |