CN109918082A - 软件开发的编译系统及方法 - Google Patents
软件开发的编译系统及方法 Download PDFInfo
- Publication number
- CN109918082A CN109918082A CN201910166046.3A CN201910166046A CN109918082A CN 109918082 A CN109918082 A CN 109918082A CN 201910166046 A CN201910166046 A CN 201910166046A CN 109918082 A CN109918082 A CN 109918082A
- Authority
- CN
- China
- Prior art keywords
- unit
- source program
- storage unit
- compiling
- compilation
- 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
Abstract
本发明公开了软件开发的编译系统及方法,涉及计算机技术领域,解决了源代码在编译出现一个错后将会返回源代码错误区域,再开发者修改源代码后再次重新编译源代码,导致编译器重复对没有错误编译的源代码进行编译,浪费了大量的资源,降低了源代码编译的工作效率的问题,其技术方案要点是:包括数据库模块和与数据库模块通信连接的编译服务器;所述数据库模块包括第一存储单元、第一发送单元和第一接收单元;所述编译服务器包括第二接收单元、第二存储单元、编译单元、查询单元、截取单元、第三存储单元、修改单元、第二发送单元和识别单元,具有避免编译器重复对没有错误编译的源代码进行编译,节约资源,提高源代码编译的工作效率的效果。
Description
技术领域
本发明涉及计算机技术领域,更具体地说,它涉及软件开发的编译系统及方法。
背景技术
随着计算机技术的快速发展,各种功能的软件相继被开发出来,用户对软件的需求越来越高。在开发软件时,采用的通常方法为:源代码撰写、编译、测试、审查等过程。
源代码的编译是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。在编译分析过程中发现有语法错误,给出提示信息。目前,源代码在编译出现一个错后将会返回源代码错误区域,再开发者修改源代码后再次重新编译源代码,导致编译器重复对没有错误编译的源代码进行编译,浪费了大量的资源,降低了源代码编译的工作效率。
因此,如何设计一种软件开发的编译系统及方法是我们目前迫切需要解决的问题。
发明内容
本发明的目的是提供软件开发的编译系统及方法,具有避免编译器重复对没有错误编译的源代码进行编译,节约资源,提高源代码编译的工作效率的效果。
本发明的上述技术目的是通过以下技术方案得以实现的:软件开发的编译系统,包括数据库模块和与数据库模块通信连接的编译服务器;
所述数据库模块包括第一存储单元、第一发送单元和第一接收单元;所述编译服务器包括第二接收单元、第二存储单元、编译单元、查询单元、截取单元、第三存储单元、修改单元、第二发送单元和识别单元;
所述第一存储单元,存储有源程序和编译参数;
所述第一发送单元,用于将所述源程序和编译参数传送至第二接收单元;
所述第二接收单元,用于将接收到的所述源程序和编译参数传送至所述第二存储单元和编译单元;
所述编译单元,用于根据所述编译参数对所述源程序进行编译,并得到编译数据;
所述查询单元,用于对所述编译数据进行错误查询后生成相应的报错命令,并将所述报错命令传送至所述截取单元和修改单元;
所述截取单元,用于根据所述报错命令截取已编译源程序,并将所截取的已编译源程序传送至第三存储单元;
所述修改单元,用于根据所述报错命令生成相应的修改窗口以供开发者修改,并将修改后的源程序传送至所述第二存储单元;
所述第二存储单元,用于将原有的源程序替换成修改后的源程序;
所述识别单元,在所述编译单元继续执行编译任务时,判断所述第二存储单元内是否存在与所述第三存储单元内存储的已编译源程序相匹配的源程序;若判断为是,则控制所述编译单元从上一次截止终点开始执行编译任务;若判断为否,则控制所述编译单元重新开始执行编译任务;
所述第二发送单元,用于将所述第二存储单元内修改后的完整源程序传送至所述第一接收单元;
所述第一接收单元,用于将接收到的完整源程序传送至第一存储单元以供第一存储单元更新源程序。
通过采用上述技术方案,在对源代码编译的过程中,在修改出错的源代码后,使识别单元对修改前和修改后的源代码进行判断,若存在相匹配的源程序段,则控制编译单元对源代码出错的区域开始重新编译,避免编译器重复对没有错误编译的源代码进行编译,节约资源,提高源代码编译的工作效率。
本发明进一步设置为:所述数据库模块还包括与第二接收单元通信连接的第三发送单元;所述第三发送单元将所述第一存储单元内更新后的源程序传送至第二接收单元,以供编译单元对更新后的源程序进行完整编译。
通过采用上述技术方案,利用第三发送单元,便于将更新后的源程序传送至第二接收单元,使得编译单元对更新后的源程序进行完整编译,提高了源代码编译的准确度。
本发明的另一目的是提供软件开发的编译系统及方法,具有避免编译器重复对没有错误编译的源代码进行编译,节约资源,提高源代码编译的工作效率的效果。
本发明的上述技术目的是通过以下技术方案得以实现的:软件开发的编译方法,包括以下步骤:
S1:获取有源程序和编译参数;
S2:将所述源程序和编译参数传送至第二接收单元;
S3:将接收到的所述源程序和编译参数传送至所述第二存储单元和编译单元;
S4:根据所述编译参数对所述源程序进行编译,并得到编译数据;
S5:对所述编译数据进行错误查询后生成相应的报错命令,并将所述报错命令传送至所述截取单元和修改单元;
S6:根据所述报错命令截取已编译源程序,并将所截取的已编译源程序传送至第三存储单元;
S7:根据所述报错命令生成相应的修改窗口以供开发者修改,并将修改后的源程序传送至所述第二存储单元;
S8:将原有的源程序替换成修改后的源程序;
S9:在所述编译单元继续执行编译任务时,判断所述第二存储单元内是否存在与所述第三存储单元内存储的已编译源程序相匹配的源程序;若判断为是,则控制所述编译单元从上一次截止终点开始执行编译任务;若判断为否,则控制所述编译单元重新开始执行编译任务;
S10:将所述第二存储单元内修改后的完整源程序传送至所述第一接收单元;
S11:将接收到的完整源程序传送至第一存储单元以供第一存储单元更新源程序。
通过采用上述技术方案,避免编译器重复对没有错误编译的源代码进行编译,节约资源,提高源代码编译的工作效率。
本发明进一步设置为:在S6中,已编译源程序的截取步骤具体为:在接收到所述报错命令后,对已编译源程序的两端点代码段进行标定以及获取两端点代码段之间的源代码数据,并将两端点代码段和两端点代码段之间的源代码数据传送至所述识别单元。
通过采用上述技术方案,使得已编译源程序的截取更加精准。
本发明进一步设置为:在S6中,所述第三存储单元在接收到新的修改后的源程序时将自动清除原有的修改后的源程序。
通过采用上述技术方案,使得第三存储单元保持足够的存储空间。
综上所述,本发明具有以下有益效果:在对源代码编译的过程中,在修改出错的源代码后,使识别单元对修改前和修改后的源代码进行判断,若存在相匹配的源程序段,则控制编译单元对源代码出错的区域开始重新编译,避免编译器重复对没有错误编译的源代码进行编译,节约资源,提高源代码编译的工作效率;对已编译源程序的两端点代码段进行标定以及获取两端点代码段之间的源代码数据,使得已编译源程序的截取更加精准。
附图说明
图1是本发明实施例1中的架构框图;
图2是本发明实施例2中的流程图。
图中:1、数据库模块;11、第一发送单元;12、第一存储单元;13、第一接收单元;14、第三发送单元;2、编译服务器;21、第二发送单元;22、识别单元;23、第二接收单元;24、第二存储单元;25、编译单元;26、查询单元;27、截取单元;28、修改单元;29、第三存储单元。
具体实施方式
以下结合附图1-2对本发明作进一步详细说明。
实施例1:软件开发的编译系统,如图1所示,包括数据库模块1和与数据库模块1通信连接的编译服务器2。数据库模块1包括第一存储单元12、第一发送单元11和第一接收单元13。编译服务器2包括第二接收单元23、第二存储单元24、编译单元25、查询单元26、截取单元27、第三存储单元29、修改单元28、第二发送单元21和识别单元22。第一存储单元12存储有源程序和编译参数。第一发送单元11将源程序和编译参数传送至第二接收单元23。第二接收单元23将接收到的源程序和编译参数传送至第二存储单元24和编译单元25。编译单元25根据编译参数对源程序进行编译,并得到编译数据。查询单元26对编译数据进行错误查询后生成相应的报错命令,并将报错命令传送至截取单元27和修改单元28。截取单元27根据报错命令截取已编译源程序,并将所截取的已编译源程序传送至第三存储单元29。修改单元28,根据报错命令生成相应的修改窗口以供开发者修改,并将修改后的源程序传送至第二存储单元24。第二存储单元24将原有的源程序替换成修改后的源程序。识别单元22在编译单元25继续执行编译任务时,判断第二存储单元24内是否存在与第三存储单元29内存储的已编译源程序相匹配的源程序;若判断为是,则控制编译单元25从上一次截止终点开始执行编译任务;若判断为否,则控制编译单元25重新开始执行编译任务。第二发送单元21将第二存储单元24内修改后的完整源程序传送至第一接收单元13。第一接收单元13将接收到的完整源程序传送至第一存储单元12以供第一存储单元12更新源程序。避免编译器重复对没有错误编译的源代码进行编译,节约资源,提高源代码编译的工作效率。
数据库模块1还包括与第二接收单元23通信连接的第三发送单元14;第三发送单元14将第一存储单元12内更新后的源程序传送至第二接收单元23,以供编译单元25对更新后的源程序进行完整编译。利用第三发送单元14,便于将更新后的源程序传送至第二接收单元23,使得编译单元25对更新后的源程序进行完整编译,提高了源代码编译的准确度。
实施例2:软件开发的编译方法,如图1与图2所示,包括以下步骤:
步骤一,获取有源程序和编译参数。
步骤二,将源程序和编译参数传送至第二接收单元23。
步骤三,将接收到的源程序和编译参数传送至第二存储单元24和编译单元25。
步骤四,根据编译参数对源程序进行编译,并得到编译数据。
步骤五,对编译数据进行错误查询后生成相应的报错命令,并将报错命令传送至截取单元27和修改单元28。
步骤六,根据报错命令截取已编译源程序,并将所截取的已编译源程序传送至第三存储单元29。
步骤七,根据报错命令生成相应的修改窗口以供开发者修改,并将修改后的源程序传送至第二存储单元24。
步骤八,将原有的源程序替换成修改后的源程序。
步骤九,在编译单元25继续执行编译任务时,判断第二存储单元24内是否存在与第三存储单元29内存储的已编译源程序相匹配的源程序;若判断为是,则控制编译单元25从上一次截止终点开始执行编译任务;若判断为否,则控制编译单元25重新开始执行编译任务。
步骤十,将第二存储单元24内修改后的完整源程序传送至第一接收单元13。
步骤十一,将接收到的完整源程序传送至第一存储单元12以供第一存储单元12更新源程序。
在步骤六中,已编译源程序的截取步骤具体为:在接收到报错命令后,对已编译源程序的两端点代码段进行标定以及获取两端点代码段之间的源代码数据,并将两端点代码段和两端点代码段之间的源代码数据传送至识别单元22,使得已编译源程序的截取更加精准。
在步骤六中,第三存储单元29在接收到新的修改后的源程序时将自动清除原有的修改后的源程序,使得第三存储单元29保持足够的存储空间。
工作原理:在对源代码编译的过程中,在修改出错的源代码后,使识别单元22对修改前和修改后的源代码进行判断,若存在相匹配的源程序段,则控制编译单元25对源代码出错的区域开始重新编译,避免编译器重复对没有错误编译的源代码进行编译,节约资源,提高源代码编译的工作效率。
本具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。
Claims (5)
1.软件开发的编译系统,其特征是:包括数据库模块(1)和与数据库模块(1)通信连接的编译服务器(2);
所述数据库模块(1)包括第一存储单元(12)、第一发送单元(11)和第一接收单元(13);所述编译服务器(2)包括第二接收单元(23)、第二存储单元(24)、编译单元(25)、查询单元(26)、截取单元(27)、第三存储单元(29)、修改单元(28)、第二发送单元(21)和识别单元(22);
所述第一存储单元(12),存储有源程序和编译参数;
所述第一发送单元(11),用于将所述源程序和编译参数传送至第二接收单元(23);
所述第二接收单元(23),用于将接收到的所述源程序和编译参数传送至所述第二存储单元(24)和编译单元(25);
所述编译单元(25),用于根据所述编译参数对所述源程序进行编译,并得到编译数据;
所述查询单元(26),用于对所述编译数据进行错误查询后生成相应的报错命令,并将所述报错命令传送至所述截取单元(27)和修改单元(28);
所述截取单元(27),用于根据所述报错命令截取已编译源程序,并将所截取的已编译源程序传送至第三存储单元(29);
所述修改单元(28),用于根据所述报错命令生成相应的修改窗口以供开发者修改,并将修改后的源程序传送至所述第二存储单元(24);
所述第二存储单元(24),用于将原有的源程序替换成修改后的源程序;
所述识别单元(22),在所述编译单元(25)继续执行编译任务时,判断所述第二存储单元(24)内是否存在与所述第三存储单元(29)内存储的已编译源程序相匹配的源程序;若判断为是,则控制所述编译单元(25)从上一次截止终点开始执行编译任务;若判断为否,则控制所述编译单元(25)重新开始执行编译任务;
所述第二发送单元(21),用于将所述第二存储单元(24)内修改后的完整源程序传送至所述第一接收单元(13);
所述第一接收单元(13),用于将接收到的完整源程序传送至第一存储单元(12)以供第一存储单元(12)更新源程序。
2.根据权利要求1所述的软件开发的编译系统,其特征是:所述数据库模块(1)还包括与第二接收单元(23)通信连接的第三发送单元(14);所述第三发送单元(14)将所述第一存储单元(12)内更新后的源程序传送至第二接收单元(23),以供编译单元(25)对更新后的源程序进行完整编译。
3.软件开发的编译方法,其特征是:该方法基于权利要求书1或2所述的软件开发的编译系统,包括以下步骤:
S1:获取有源程序和编译参数;
S2:将所述源程序和编译参数传送至第二接收单元(23);
S3:将接收到的所述源程序和编译参数传送至所述第二存储单元(24)和编译单元(25);
S4:根据所述编译参数对所述源程序进行编译,并得到编译数据;
S5:对所述编译数据进行错误查询后生成相应的报错命令,并将所述报错命令传送至所述截取单元(27)和修改单元(28);
S6:根据所述报错命令截取已编译源程序,并将所截取的已编译源程序传送至第三存储单元(29);
S7:根据所述报错命令生成相应的修改窗口以供开发者修改,并将修改后的源程序传送至所述第二存储单元(24);
S8:将原有的源程序替换成修改后的源程序;
S9:在所述编译单元(25)继续执行编译任务时,判断所述第二存储单元(24)内是否存在与所述第三存储单元(29)内存储的已编译源程序相匹配的源程序;若判断为是,则控制所述编译单元(25)从上一次截止终点开始执行编译任务;若判断为否,则控制所述编译单元(25)重新开始执行编译任务;
S10:将所述第二存储单元(24)内修改后的完整源程序传送至所述第一接收单元(13);
S11:将接收到的完整源程序传送至第一存储单元(12)以供第一存储单元(12)更新源程序。
4.根据权利要求3所述的软件开发的编译方法,其特征是:在S6中,已编译源程序的截取步骤具体为:在接收到所述报错命令后,对已编译源程序的两端点代码段进行标定以及获取两端点代码段之间的源代码数据,并将两端点代码段和两端点代码段之间的源代码数据传送至所述识别单元(22)。
5.根据权利要求3所述的软件开发的编译方法,其特征是:在S6中,所述第三存储单元(29)在接收到新的修改后的源程序时将自动清除原有的修改后的源程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910166046.3A CN109918082B (zh) | 2019-03-06 | 2019-03-06 | 软件开发的编译系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910166046.3A CN109918082B (zh) | 2019-03-06 | 2019-03-06 | 软件开发的编译系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109918082A true CN109918082A (zh) | 2019-06-21 |
CN109918082B CN109918082B (zh) | 2022-02-22 |
Family
ID=66963329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910166046.3A Active CN109918082B (zh) | 2019-03-06 | 2019-03-06 | 软件开发的编译系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109918082B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968324A (zh) * | 2019-12-11 | 2020-04-07 | 深圳航空有限责任公司 | 从arinc429数据字中提取飞机数据的方法 |
WO2021142763A1 (zh) * | 2020-01-17 | 2021-07-22 | 上海渠杰信息科技有限公司 | 一种自动识别编译失败原因并重启编译的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5230050A (en) * | 1989-02-06 | 1993-07-20 | Hitachi, Ltd. | Method of recompiling a program by using result of previous compilation |
US5694540A (en) * | 1994-12-15 | 1997-12-02 | Lucent Technologies Inc. | Automated software regression test and compilation system |
CN105808214A (zh) * | 2014-12-29 | 2016-07-27 | 高德软件有限公司 | 一种数据编译方法和地图编译器 |
CN105843662A (zh) * | 2016-03-28 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种软件产品编译方法及设备 |
CN107678748A (zh) * | 2017-09-21 | 2018-02-09 | 杭州迪普科技股份有限公司 | 一种源代码文件编译方法及装置 |
CN108279904A (zh) * | 2017-12-26 | 2018-07-13 | 努比亚技术有限公司 | 代码编译方法及终端 |
CN108897545A (zh) * | 2018-06-29 | 2018-11-27 | 南昌华勤电子科技有限公司 | 代码编译方法及装置 |
-
2019
- 2019-03-06 CN CN201910166046.3A patent/CN109918082B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5230050A (en) * | 1989-02-06 | 1993-07-20 | Hitachi, Ltd. | Method of recompiling a program by using result of previous compilation |
US5694540A (en) * | 1994-12-15 | 1997-12-02 | Lucent Technologies Inc. | Automated software regression test and compilation system |
CN105808214A (zh) * | 2014-12-29 | 2016-07-27 | 高德软件有限公司 | 一种数据编译方法和地图编译器 |
CN105843662A (zh) * | 2016-03-28 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种软件产品编译方法及设备 |
CN107678748A (zh) * | 2017-09-21 | 2018-02-09 | 杭州迪普科技股份有限公司 | 一种源代码文件编译方法及装置 |
CN108279904A (zh) * | 2017-12-26 | 2018-07-13 | 努比亚技术有限公司 | 代码编译方法及终端 |
CN108897545A (zh) * | 2018-06-29 | 2018-11-27 | 南昌华勤电子科技有限公司 | 代码编译方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968324A (zh) * | 2019-12-11 | 2020-04-07 | 深圳航空有限责任公司 | 从arinc429数据字中提取飞机数据的方法 |
WO2021142763A1 (zh) * | 2020-01-17 | 2021-07-22 | 上海渠杰信息科技有限公司 | 一种自动识别编译失败原因并重启编译的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109918082B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106909510B (zh) | 一种获取测试用例的方法以及服务器 | |
CN102495744B (zh) | 基于can总线的电动汽车电控设备控制软件升级方法 | |
CN102637214B (zh) | 基于数据库服务间的通用数据同步方法及其系统 | |
CN101739012B (zh) | 汽车电子控制单元及其控制方法和上位机 | |
CN109240730B (zh) | 一种单片机在线升级方法和系统 | |
CN108196878B (zh) | 应用程序安装包的生成方法、装置、电子设备及存储介质 | |
US7614042B1 (en) | System and method for selecting applicable tests in an automation testing system | |
CN109491916B (zh) | 一种操作系统的测试方法、装置、设备、系统和介质 | |
CN109739523B (zh) | 应用程序打包方法、装置、存储介质及终端 | |
CN104978191A (zh) | 应用部署方法和服务器 | |
CN104156314A (zh) | 一种应用于测试系统的代码重用方法 | |
CN101268620A (zh) | 用于管理设备管理对象的设备管理系统和方法 | |
CN104679500B (zh) | 实体类自动生成实现方法及装置 | |
CN109918082A (zh) | 软件开发的编译系统及方法 | |
CN103530225A (zh) | 自动化编译测试方法及实现该方法的自动化编译测试平台 | |
CN109032631A (zh) | 应用程序补丁包获取方法、装置、计算机设备及存储介质 | |
CN105549959A (zh) | 编译检查方法及装置 | |
CN102880493B (zh) | 一种构件间动态依赖关系的自动分析方法 | |
CN105117345A (zh) | 一种应用程序的接口测试方法及装置 | |
CN109635028A (zh) | 数据查询方法及装置、服务器及计算机可读存储介质 | |
CN104133699A (zh) | 设备系统软件升级方法与系统 | |
CN106327143B (zh) | 用于流程中的节点的方法和装置 | |
CN105550342A (zh) | 一种全透明的分布式数据库的数据处理方法 | |
CN100359485C (zh) | 嵌入式系统的测试装置及测试方法 | |
US11301246B2 (en) | Automatically generating continuous integration pipelines |
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 |