一种程序代码的处理方法和装置与流程

文档序号:18101655发布日期:2019-07-06 11:23阅读:174来源:国知局
一种程序代码的处理方法和装置与流程

本发明涉及计算机技术领域,具体涉及一种程序代码的处理方法、装置、电子设备和计算机可读存储介质。



背景技术:

在一个应用程序或者一个系统的程序代码开发阶段,为了程序代码的正常运行,会将实现指定功能的一个代码块添加到开发中的程序代码中,以便进行调用。但是,一个程序代码的开发可能会经手多个开发人员,又因为程序代码的行数较多,当需要实现指定功能时,每个开发人员无法遍历已完成的程序代码的全部,而是自己再编写一个代码块以便实现相应的功能。这样,在一个程序代码中,实现同一个功能的代码块可能会有多个,造成了程序代码的冗余。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的程序代码的处理方法、装置、电子设备和计算机可读存储介质。

根据本发明的一个方面,提供了一种程序代码的处理方法,其中,该方法包括:

获取程序代码的抽象语法树;

根据所述抽象语法树,分离出所述程序代码中指定类的代码数据块;

将分离出的各代码数据块分别进行命名后保存;

对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对,确定所述程序代码中该指定类的内容相同的代码数据块。

可选地,所述将分离出的各代码数据块分别进行命名包括:

将分离出的各代码数据块以类、方法名和参数信息进行命名。

可选地,所述对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对包括:

使用karp-rabin字符串匹配算法,对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对。

可选地,

所述指定类的代码数据块是指方法类的代码数据块。

可选地,该方法进一步包括:

为所述程序代码中的各代码数据块分别设置一标识码;

所述程序代码运行时,根据所述程序代码的运行进度,将各代码数据块的标识码输出到所述程序代码运行日志中;

当所述程序代码运行出错时,根据所述程序代码运行日志中的所述标识码,确定所述程序代码运行出错的位置。

可选地,该方法进一步包括:

设置一标识开关;

所述程序代码运行时,根据所述程序代码的运行进度,将各代码数据块的标识码输出到所述程序代码运行日志中包括:

所述程序代码运行时,判断所述标识开关当前所处的状态;

当所述标识开关当前处于开的状态时,根据所述程序代码的运行进度,将各代码数据块的标识码输出到所述程序代码运行日志中。

可选地,该方法进一步包括:

提供网页编辑接口;

根据所述网页编辑接口接收网页样式编辑参数,根据接收的所述网页样式编辑参数生成网页的样式程序代码。

可选地,所述网页样式编辑参数包括以下一种或多种:

文字的字体、字体大小、字体颜色、页面元素的大小、页面元素的位置、页面元素的形状。

根据本发明的另一方面,提供了一种程序代码的处理装置,其中,该装置包括:

获取单元,适于获取程序代码的抽象语法树;

分离单元,适于根据所述抽象语法树,分离出所述程序代码中指定类的代码数据块;

保存单元,适于将分离出的各代码数据块分别进行命名后保存;

比对单元,适于对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对,确定所述程序代码中该指定类的内容相同的代码数据块。

可选地,

所述保存单元,适于将分离出的各代码数据块以类、方法名和参数信息进行命名。

可选地,

所述比对单元,适于使用karp-rabin字符串匹配算法,对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对。

可选地,

所述指定类的代码数据块是指方法类的代码数据块。

可选地,该装置进一步包括:

设置单元,适于为所述程序代码中的各代码数据块分别设置一标识码;

输出单元,适于所述程序代码运行时,根据所述程序代码的运行进度,将各代码数据块的标识码输出到所述程序代码运行日志中;

出错位置确定单元,适于当所述程序代码运行出错时,根据所述程序代码运行日志中的所述标识码,确定所述程序代码运行出错的位置。

可选地,

所述设置单元,适于设置一标识开关;

所述输出单元,适于所述程序代码运行时,判断所述标识开关当前所处的状态;当所述标识开关当前处于开的状态时,根据所述程序代码的运行进度,将各代码数据块的标识码输出到所述程序代码运行日志中。

可选地,该装置进一步包括:

接口提供单元,适于提供网页编辑接口;

代码生成单元,适于根据所述网页编辑接口接收网页样式编辑参数,根据接收的所述网页样式编辑参数生成网页的样式程序代码。

可选地,所述网页样式编辑参数包括以下一种或多种:

文字的字体、字体大小、字体颜色、页面元素的大小、页面元素的位置、页面元素的形状。

根据本发明的又一方面,提供了一种电子设备,其中,该电子设备包括:

处理器;以及,

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据前述的方法。

根据本发明的再一方面,提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现前述的方法。

根据本发明的技术方案,获取程序代码的抽象语法树;根据抽象语法树,分离出程序代码中指定类的代码数据块;将分离出的各代码数据块分别进行命名后保存;对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对,确定程序代码中该指定类的内容相同的代码数据块。通过本技术方案,可以确定程序代码中的内容相同的代码数据块,以便消除程序代码中的冗余,降低程序代码运行的出错率,增强用户体验。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的程序代码的处理方法的流程示意图;

图2示出了根据本发明一个实施例的程序代码的处理装置的结构示意图;

图3示出了根据本发明一个实施例的电子设备的结构示意图;

图4示出了根据本发明一个实施例的计算机可读存储介质的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的程序代码的处理方法的流程示意图。如图1所示,该方法包括:

步骤s110,获取程序代码的抽象语法树。

在本实施例中,该程序代码是指定的一段代码,该程序代码可以是某一应用程序的全部程序代码或者实现特定功能的程序代码,也可以是某一个系统的程序代码,在这里不做具体的限定。

在本实施例中,获取程序代码的抽象语法树可以通过调用抽象语法树的应用程序编程接口(applicationprogramminginterface,简称api)进行获取。这里的抽象语法树就是对该段程序代码的解析后的解析树,该解析树中可将该程序代码的各代码数据块进行解析。

步骤s120,根据抽象语法树,分离出程序代码中指定类的代码数据块。

这里的类则是程序代码中具有同种属性的对象,只有具有同种属性的对象,实现的功能才可能是相同的,才可能会出现冗余代码的情况,因此为了消除程序代码的冗余,需要将指定类中的内容相同的程序代码确定出来。例如,指程序代码中实现特定功能的方法函数类的代码数据块。

步骤s130,将分离出的各代码数据块分别进行命名后保存。

该程序代码中包含的指定类的代码数据块并非只要一个,为了将各代码数据块进行区别,需要对分离出的各代码数据块进行命名,作为各代码数据块的文件名进行保存,这里的命令需要是唯一标识的,才能进行各代码数据块的区分。

例如,将各代码数据块进行编号,每个编号代表一个代码数据块;或者根据各代码数据块的哈希值进行命名。

步骤s140,对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对,确定程序代码中该指定类的内容相同的代码数据块。

在本实施例中,将所保存的各代码数据块的内容进行两两比对,例如,可以通过字符串比对的方式。内容相同,则确定比对的两者是该指令类的内容相同的代码数据块。如果需要消除该程序代码的冗余,则可以将该内容相同的代码数据块保留一个,其他的适应性删除即可。

例如,保存的代码数据块的数量是100,进行比对时,将第1个代码数据块的内容与其他99个代码数据块的内容进行比对,将第2个代码数据块的内容与其他98个代码数据块的内容进行比对,以此类推。

可见,通过本技术方案,可以确定程序代码中的内容相同的代码数据块,以便消除程序代码中的冗余,降低程序代码运行的出错率,增强用户体验。

在本发明的一个实施例中,步骤s130中的将分离出的各代码数据块分别进行命名包括:将分离出的各代码数据块以类、方法名和参数信息进行命名。

简单来说,这里的代码数据块的类是具有同种属性的对象,方法名则是对一类中的一个对象进行的操作,参数信息是对一个对象具体进行了什么样的操作。在本实施例中,将各代码数据块的类+方法名+参数信息的形式作为各代码数据块的文件的名称。

在本发明的一个实施例中,步骤s140中的对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对包括:使用karp-rabin字符串匹配算法,对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对。

为了提高比对的效率,本实施例中采用karp-rabin字符串匹配算法来实施。karp-rabin字符串匹配算法是对应每一个字符进行比较,把字符进行预处理,也就是对每个字符进行对应进制数并取模运算,类似于通过某种函数计算其函数值,比较的是每个字符的函数值。

在本发明的一个实施例中,上述各实施例中的指定类的代码数据块是指方法类的代码数据块。

这里的方法类的代码数据块即是方法函数类的代码数据块。

当程序代码开发完成后,需要运行该程序代码,如果运行出错,则还需要进行修复,因此,确定运行出错的位置很重要。

通常情况下,为了避免他人将开发的程序代码进行反编译,需要将程序代码进行混淆,但是混淆后的程序代码在运行出错时,运行日志中并不能将出错的位置显示出来。在本发明的一个实施例中,图1所示的方法进一步包括:为程序代码中的各代码数据块分别设置一标识码;程序代码运行时,根据程序代码的运行进度,将各代码数据块的标识码输出到程序代码运行日志中;当程序代码运行出错时,根据程序代码运行日志中的标识码,确定程序代码运行出错的位置。

该标识码可以是debug标识码,当给程序代码中的各代码数据块设置debug标识后,在程序运行时,将各代码数据块的标识码输出到程序代码运行日志中;一旦程序代码运行出错时,根据程序代码运行日志中的出错处的标识码,确定程序代码运行出错的位置。

例如,给程序代码中的五个代码数据块分别标识为1、2、3、4、5,当程勋运行到第一个代码数据块时,会在程序代码运行日志中输出1,当运行到第二个代码数据块时,会在程序代码运行日志中输出2,如果代码运行到第4个代码数据块出错后,根据运行日志中,该出错的位置是字输出的标识4和标识5之间,这样就可以确定程序代码出错的位置就是在标识4和标识5之间的代码数据块中。

进一步地,图1所示的方法进一步包括:设置一标识开关;程序代码运行时,根据程序代码的运行进度,将各代码数据块的标识码输出到程序代码运行日志中包括:程序代码运行时,判断标识开关当前所处的状态;当标识开关当前处于开的状态时,根据程序代码的运行进度,将各代码数据块的标识码输出到程序代码运行日志中。

在本实施例中,为了不影响程序代码运行的效率和整体性,设置一标识开关,例如debug开关,只有在debug开关处于开的状态时,才在程序代码运行时输出各代码数据块的标识,如果在debug开关处于关的状态,则不输出。例如,程序代码运行时,可以将标识开关设置为关,当发现程序代码运行出错时,为了便于确定出错的位置,可以再将表示开关设置为开,快读定位到出错的位置。

在本发明的一个实施例中,图1所示的方法进一步包括:提供网页编辑接口;根据网页编辑接口接收网页样式编辑参数,根据接收的网页样式编辑参数生成网页的样式程序代码。

在本实施例中,上述的程序代码可以是用户进行的网页编辑的程序代码,但是对于不经常编辑网页的用户来说,进行网页编辑时,对网页的样式的编辑参数的设定是比较困难的。在本实施例中,提供一个网页编辑的接口,用户可以通过该接口对网页样式的参数进行设定,自动生成相应的样式程序代码,例如css程序代码。极大的方便了用户,增强了用户的使用体验。

具体地,上述的网页样式编辑参数包括以下一种或多种:文字的字体、字体大小、字体颜色、页面元素的大小、页面元素的位置、页面元素的形状。

在本实施例中,提供字体样式的编辑接口,以便用户对文字的字体、字体大小、字体颜色的编辑。本实施例中,用户可以通过拖动设定网页元素的位置,改变页面元素的边框的大小设定页面元素的大小,以及根据提供的接口选择页面元素的形状。这里的页面元素可以理解为页面中的各个部分,例如,放置视频的部分,放置广告的部分等。

图2示出了根据本发明一个实施例的程序代码的处理装置的结构示意图。如图2所示,该程序代码的处理装置200包括:

获取单元210,适于获取程序代码的抽象语法树。

在本实施例中,该程序代码是指定的一段代码,该程序代码可以是某一应用程序的全部程序代码或者实现特定功能的程序代码,也可以是某一个系统的程序代码,在这里不做具体的限定。

在本实施例中,获取程序代码的抽象语法树可以通过调用抽象语法树的应用程序编程接口(applicationprogramminginterface,简称api)进行获取。这里的抽象语法树就是对该段程序代码的解析后的解析树,该解析树中可将该程序代码的各代码数据块进行解析。

分离单元220,适于根据抽象语法树,分离出程序代码中指定类的代码数据块。

这里的类则是程序代码中具有同种属性的对象,只有具有同种属性的对象,实现的功能才可能是相同的,才可能会出现冗余代码的情况,因此为了消除程序代码的冗余,需要将指定类中的内容相同的程序代码确定出来。例如,指程序代码中实现特定功能的方法函数类的代码数据块。

保存单元230,适于将分离出的各代码数据块分别进行命名后保存。

该程序代码中包含的指定类的代码数据块并非只要一个,为了将各代码数据块进行区别,需要对分离出的各代码数据块进行命名,作为各代码数据块的文件名进行保存,这里的命令需要是唯一标识的,才能进行各代码数据块的区分。

例如,将各代码数据块进行编号,每个编号代表一个代码数据块;或者根据各代码数据块的哈希值进行命名。

比对单元240,适于对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对,确定程序代码中该指定类的内容相同的代码数据块。

在本实施例中,将所保存的各代码数据块的内容进行两两比对,例如,可以通过字符串比对的方式。内容相同,则确定比对的两者是该指令类的内容相同的代码数据块。如果需要消除该程序代码的冗余,则可以将该内容相同的代码数据块保留一个,其他的适应性删除即可。

例如,保存的代码数据块的数量是100,进行比对时,将第1个代码数据块的内容与其他99个代码数据块的内容进行比对,将第2个代码数据块的内容与其他98个代码数据块的内容进行比对,以此类推。

可见,通过本技术方案,可以确定程序代码中的内容相同的代码数据块,以便消除程序代码中的冗余,降低程序代码运行的出错率,增强用户体验。

在本发明的一个实施例中,保存单元230,适于将分离出的各代码数据块以类、方法名和参数信息进行命名。

简单来说,这里的代码数据块的类是具有同种属性的对象,方法名则是对一类中的一个对象进行的操作,参数信息是对一个对象具体进行了什么样的操作。在本实施例中,将各代码数据块的类+方法名+参数信息的形式作为各代码数据块的文件的名称。

在本发明的一个实施例中,比对单元240,适于使用karp-rabin字符串匹配算法,对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对。

为了提高比对的效率,本实施例中采用karp-rabin字符串匹配算法来实施。karp-rabin字符串匹配算法是对应每一个字符进行比较,把字符进行预处理,也就是对每个字符进行对应进制数并取模运算,类似于通过某种函数计算其函数值,比较的是每个字符的函数值。

在本发明的一个实施例中,上述各实施例中的指定类的代码数据块是指方法类的代码数据块。

这里的方法类的代码数据块即是方法函数类的代码数据块。

当程序代码开发完成后,需要运行该程序代码,如果运行出错,则还需要进行修复,因此,确定运行出错的位置很重要。

通常情况下,为了避免他人将开发的程序代码进行反编译,需要将程序代码进行混淆,但是混淆后的程序代码在运行出错时,运行日志中并不能将出错的位置显示出来。在本发明的一个实施例中,图2所示的装置进一步包括:

设置单元,适于为程序代码中的各代码数据块分别设置一标识码。

输出单元,适于程序代码运行时,根据程序代码的运行进度,将各代码数据块的标识码输出到程序代码运行日志中。

出错位置确定单元,适于当程序代码运行出错时,根据程序代码运行日志中的标识码,确定程序代码运行出错的位置。

该标识码可以是debug标识码,当给程序代码中的各代码数据块设置debug标识后,在程序运行时,将各代码数据块的标识码输出到程序代码运行日志中;一旦程序代码运行出错时,根据程序代码运行日志中的出错处的标识码,确定程序代码运行出错的位置。

例如,给程序代码中的五个代码数据块分别标识为1、2、3、4、5,当程勋运行到第一个代码数据块时,会在程序代码运行日志中输出1,当运行到第二个代码数据块时,会在程序代码运行日志中输出2,如果代码运行到第4个代码数据块出错后,根据运行日志中,该出错的位置是字输出的标识4和标识5之间,这样就可以确定程序代码出错的位置就是在标识4和标识5之间的代码数据块中。

进一步地,上述的设置单元,适于设置一标识开关。

上述的输出单元,适于程序代码运行时,判断标识开关当前所处的状态;当标识开关当前处于开的状态时,根据程序代码的运行进度,将各代码数据块的标识码输出到程序代码运行日志中。

在本实施例中,为了不影响程序代码运行的效率和整体性,设置一标识开关,例如debug开关,只有在debug开关处于开的状态时,才在程序代码运行时输出各代码数据块的标识,如果在debug开关处于关的状态,则不输出。例如,程序代码运行时,可以将标识开关设置为关,当发现程序代码运行出错时,为了便于确定出错的位置,可以再将表示开关设置为开,快读定位到出错的位置。

在本发明的一个实施例中,图2所示的装置进一步包括:

接口提供单元,适于提供网页编辑接口。

代码生成单元,适于根据网页编辑接口接收网页样式编辑参数,根据接收的网页样式编辑参数生成网页的样式程序代码。

在本实施例中,上述的程序代码可以是用户进行的网页编辑的程序代码,但是对于不经常编辑网页的用户来说,进行网页编辑时,对网页的样式的编辑参数的设定是比较困难的。在本实施例中,提供一个网页编辑的接口,用户可以通过该接口对网页样式的参数进行设定,自动生成相应的样式程序代码,例如css程序代码。极大的方便了用户,增强了用户的使用体验。

具体地,上述的网页样式编辑参数包括以下一种或多种:文字的字体、字体大小、字体颜色、页面元素的大小、页面元素的位置、页面元素的形状。

在本实施例中,提供字体样式的编辑接口,以便用户对文字的字体、字体大小、字体颜色的编辑。本实施例中,用户可以通过拖动设定网页元素的位置,改变页面元素的边框的大小设定页面元素的大小,以及根据提供的接口选择页面元素的形状。这里的页面元素可以理解为页面中的各个部分,例如,放置视频的部分,放置广告的部分等。

本发明还提供了一种电子设备,其中,该电子设备包括:

处理器;以及,

被安排成存储计算机可执行指令的存储器,可执行指令在被执行时使处理器执行根据图1所示的及其各实施例中的程序代码的处理方法。

图3示出了根据本发明一个实施例的电子设备的功能结构示意图。如图3所示,该电子设备300包括:

处理器310;以及被安排成存储计算机可执行指令(程序代码)的存储器320,在存储器320中,有存储程序代码的存储空间330,用于执行根据本发明的方法步骤的程序代码340存储在存储空间330中,该程序代码在被执行时使处理器310执行根据图1所示的及其各实施例中的程序代码的处理方法。

图4示出了根据本发明一个实施例的一种计算机可读存储介质的结构示意图。如图4所示,该计算机可读存储介质400存储一个或多个程序(程序代码)410,一个或多个程序(程序代码)410当被处理器执行时,实现图1所示的及其各实施例中的程序代码的处理方法。

需要说明的是,图3所示的电子设备和图4所示的计算机可读存储介质的各实施例与图1所示的方法的各实施例对应相同,上文已有详细说明,在此不再赘述。

综上所述,根据本发明的技术方案,获取程序代码的抽象语法树;根据抽象语法树,分离出程序代码中指定类的代码数据块;将分离出的各代码数据块分别进行命名后保存;对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对,确定程序代码中该指定类的内容相同的代码数据块。通过本技术方案,可以确定程序代码中的内容相同的代码数据块,以便消除程序代码中的冗余,降低程序代码运行的出错率,增强用户体验。

需要说明的是:

在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的程序代码的处理装置、电子设备和计算机可读存储介质中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

例如,图3示出了根据本发明一个实施例的电子设备的结构示意图。该电子设备300传统上包括处理器310和被安排成存储计算机可执行指令(程序代码)的存储器320。存储器320可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。存储器320具有存储用于执行图1所示的以及各实施例中的任何方法步骤的程序代码340的存储空间330。例如,用于程序代码的存储空间330可以包括分别用于实现上面的方法中的各种步骤的各个程序代码340。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(cd)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图4的计算机可读存储介质400。该计算机可读存储介质400可以具有与图3的电子设备中的存储器320类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元存储有用于执行根据本发明的方法步骤的程序代码410,即可以由诸如310之类的处理器读取的程序代码,当这些程序代码由电子设备运行时,导致该电子设备执行上面所描述的方法中的各个步骤。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了a1、一种程序代码的处理方法,其中,该方法包括:

获取程序代码的抽象语法树;

根据所述抽象语法树,分离出所述程序代码中指定类的代码数据块;

将分离出的各代码数据块分别进行命名后保存;

对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对,确定所述程序代码中该指定类的内容相同的代码数据块。

a2、如a1所述的方法,其中,所述将分离出的各代码数据块分别进行命名包括:

将分离出的各代码数据块以类、方法名和参数信息进行命名。

a3、如a1所述的方法,其中,所述对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对包括:

使用karp-rabin字符串匹配算法,对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对。

a4、如a1所述的方法,其中,

所述指定类的代码数据块是指方法类的代码数据块。

a5、如a1所述的方法,其中,该方法进一步包括:

为所述程序代码中的各代码数据块分别设置一标识码;

所述程序代码运行时,根据所述程序代码的运行进度,将各代码数据块的标识码输出到所述程序代码运行日志中;

当所述程序代码运行出错时,根据所述程序代码运行日志中的所述标识码,确定所述程序代码运行出错的位置。

a6、如a5所述的方法,其中,该方法进一步包括:

设置一标识开关;

所述程序代码运行时,根据所述程序代码的运行进度,将各代码数据块的标识码输出到所述程序代码运行日志中包括:

所述程序代码运行时,判断所述标识开关当前所处的状态;

当所述标识开关当前处于开的状态时,根据所述程序代码的运行进度,将各代码数据块的标识码输出到所述程序代码运行日志中。

a7、如a1所述的方法,其中,该方法进一步包括:

提供网页编辑接口;

根据所述网页编辑接口接收网页样式编辑参数,根据接收的所述网页样式编辑参数生成网页的样式程序代码。

a8、如a7所述的方法,其中,所述网页样式编辑参数包括以下一种或多种:

文字的字体、字体大小、字体颜色、页面元素的大小、页面元素的位置、页面元素的形状。

本发明还公开了b9、一种程序代码的处理装置,其中,该装置包括:

获取单元,适于获取程序代码的抽象语法树;

分离单元,适于根据所述抽象语法树,分离出所述程序代码中指定类的代码数据块;

保存单元,适于将分离出的各代码数据块分别进行命名后保存;

比对单元,适于对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对,确定所述程序代码中该指定类的内容相同的代码数据块。

b10、如b9所述的装置,其中,

所述保存单元,适于将分离出的各代码数据块以类、方法名和参数信息进行命名。

b11、如b9所述的装置,其中,

所述比对单元,适于使用karp-rabin字符串匹配算法,对所保存的各代码数据块,将其与所保存的一个或多个代码数据块进行比对。

b12、如b9所述的装置,其中,

所述指定类的代码数据块是指方法类的代码数据块。

b13、如b9所述的装置,其中,该装置进一步包括:

设置单元,适于为所述程序代码中的各代码数据块分别设置一标识码;

输出单元,适于所述程序代码运行时,根据所述程序代码的运行进度,将各代码数据块的标识码输出到所述程序代码运行日志中;

出错位置确定单元,适于当所述程序代码运行出错时,根据所述程序代码运行日志中的所述标识码,确定所述程序代码运行出错的位置。

b14、如b13所述的装置,其中,

所述设置单元,适于设置一标识开关;

所述输出单元,适于所述程序代码运行时,判断所述标识开关当前所处的状态;当所述标识开关当前处于开的状态时,根据所述程序代码的运行进度,将各代码数据块的标识码输出到所述程序代码运行日志中。

b15、如b9所述的装置,其中,该装置进一步包括:

接口提供单元,适于提供网页编辑接口;

代码生成单元,适于根据所述网页编辑接口接收网页样式编辑参数,根据接收的所述网页样式编辑参数生成网页的样式程序代码。

b16、如b15所述的装置,其中,所述网页样式编辑参数包括以下一种或多种:

文字的字体、字体大小、字体颜色、页面元素的大小、页面元素的位置、页面元素的形状。

本发明还公开了c17、一种电子设备,其中,该电子设备包括:

处理器;以及,

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据a1~a8中任一项所述的方法。

本发明还公开了d18、一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现a1~a8中任一项所述的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1