CN113485715A - 一种基于数据中台的代码提示方法、系统及数据计算平台 - Google Patents
一种基于数据中台的代码提示方法、系统及数据计算平台 Download PDFInfo
- Publication number
- CN113485715A CN113485715A CN202110872687.8A CN202110872687A CN113485715A CN 113485715 A CN113485715 A CN 113485715A CN 202110872687 A CN202110872687 A CN 202110872687A CN 113485715 A CN113485715 A CN 113485715A
- Authority
- CN
- China
- Prior art keywords
- metadata
- sentences
- statement
- error
- errors
- 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
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000011161 development Methods 0.000 claims abstract description 80
- 230000018109 developmental process Effects 0.000 claims description 79
- 238000004590 computer program Methods 0.000 claims description 29
- 238000012986 modification Methods 0.000 claims description 27
- 230000004048 modification Effects 0.000 claims description 27
- 238000004458 analytical method Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 14
- 239000008280 blood Substances 0.000 claims description 8
- 210000004369 blood Anatomy 0.000 claims description 8
- 230000011218 segmentation Effects 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims 1
- 230000037430 deletion Effects 0.000 claims 1
- 238000013461 design Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 238000012783 upstream development Methods 0.000 description 9
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000003062 neural network model Methods 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Machine Translation (AREA)
Abstract
本申请公开一种基于数据中台的代码提示方法、系统及数据计算平台,该方法包括:将当前开发节点文本进行切分,得到多个连续的单个语句,然后依次对单个语句的语法错误进行识别,生成并输出用于提示用户对当前节点文本进行语法错误修改的第一提示信息,接着对完成语法错误修改的单个语句进行逻辑错误识别,生成第二提示信息,并基于所述第二提示信息输出推荐项,用以引导用户进行逻辑错误修改。基于以上方法,可以实现在用户编写代码过程中,对用户编写的错误代码进行识别并生成提示信息。
Description
技术领域
本申请涉及大数据计算领域,特别是涉及一种基于数据中台的代码提示方法、系统及数据计算平台。
背景技术
在数据中台技术快速发展的今天,大量业务方案都会通过数据中台来实现,在实现这些业务方案的过程中,通常需要在数据中台上编写大量的代码,如SQL、Python、Java、Shell等。在编写代码的过程中如果没有代码错误提示,那么数据中台业务开发人员需要仔细核对编写的代码语法是否正确,同时还要核实使用的库、表、字段等信息是否存在,除此之外,还需要通过大量的测试运行来验证编写的代码的正确性,导致代码编写的效率不高。因此,在数据中台上编写代码的过程中进行代码提示非常重要。
现有技术通常以将写入的代码与预设提示集进行匹配的方式,来实现对即将输入的代码进行提示,所述预设提示集无论是通过将写入的代码输入经过训练的神经网络来得到,还是通过预设缓存来得到,通常无法实现在用户编写代码过程中,对用户编写的错误代码进行识别并生成提示信息。
发明内容
本申请提供了一种基于数据中台的代码提示方法、系统及数据计算平台,实现在用户编写代码过程中,对用户编写的错误代码进行识别并生成提示信息。
第一方面,本申请提供了一种基于数据中台的代码提示方法,所述方法包括:
对当前开发节点文本进行切分,得到N个单个语句,其中,N为大于0的正整数;
对所述N个单个语句的语法错误进行识别,输出第一提示信息,其中,所述第一提示信息用于提示用户对所述当前开发节点文本进行语法错误修改;
对完成语法修改的所述当前开发节点文本中的所述N个单个语句的逻辑错误进行识别,输出第二提示信息;
基于所述第二提示信息,向用户提供推荐项,引导用户进行修改。
通过上述基于数据中台的代码提示方法,可以实现在用户编写代码过程中,对用户编写的错误代码进行识别并生成提示信息。
在一种可能的设计中,所述对所述N个单个语句的语法错误进行识别,输出第一提示信息,包括;
通过解析器对N个单个语句进行语法分析,获取所述N个单个语句中存在语法错误的位置的第一错误位置信息;
生成并输出包含所述第一错误位置信息的所述第一提示信息。
通过上述方法,可以对所述N个单个语句中的语法错误进行识别,并将识别出的存在语法错误的位置第一错误位置信息反馈给用户,用以提示用户进行语法错误修改。
在一种可能的设计中,所述对所述N个单个语句的逻辑错误进行识别,输出第二提示信息,包括:
根据所述解析器,得到所述N个单个语句对应的抽象语法树,其中,所述抽象语法树指示单个语句的语法结构;
根据所述抽象语法树,通过血缘分析得到所述N个单个语句中的元数据的引用关系链,其中,所述元数据至少包括表、视图、函数中的任意一种;
根据所述引用关系链中的元数据的排列顺序,依次校验所述N个单个语句中引用的元数据是否引用正确;
若不存在元数据引用错误的单个语句,表明所述当前节点文本不存在逻辑错误,则不对所述当前节点文本做任何处理;
若存在元数据引用错误的单个语句,表明所述单个语句存在逻辑错误,则根据所述逻辑错误,生成第二提示信息。基于上述步骤,通过单个语句上下文数据校验所述单个语句中引用的元数是否引用正确,从而实现对所述单个语句的逻辑错误进行识别,不需要经过复杂的神经网络对代码的提示过程进行训练,也不局限于只对预设缓存的关键字进行错误提示。同时不会受到空白字符、注释、字面量、常量等影响,还能支持CTE、UDTF、子查询等语法。
在一种可能的设计中,所述基于所述第二提示信息,向用户提供推荐项,引导用户进行修改,包括:
基于所述第二提示信息中的逻辑错误,生成每个逻辑错误对应的修改方式;
根据所述修改方式,输出推荐项,引导用户进行修改。
在一种可能的设计中,所述依次校验所述N个单个语句中引用的元数据是否引用正确,包括:
获取当前开发节点上下文数据,其中,所述当前开发节点上下文数据指示当前开发节点及当前开发节点之前所有节点中的元数据;
根据所述当前开发节点上下文数据,依次获取N个单个语句上下文数据,其中,所述单个语句上下文数据指示所述单个语句及所述单个语句之前的所有语句中的元数据;
根据所述N个单个语句上下文数据,计算得到所述N个单个语句可使用的元数据;
根据所述N个单个语句可使用的元数据,依次将所述N个单个语句按照各自引用关系链中的元数据的排列顺序,校验所述N个单个语句中引用的元数据是否引用正确。
通过上述方法,计算得到当前开发节点中的N个单个语句可使用的元数据,所述单个语句可使用的元数据,用于校验所述单个语句中引用的元数据是否引用正确,当所述单个语句中引用的元数据引用不正确时,表明所述单个语句存在逻辑错误。
在一种可能的设计中,在所述根据所述逻辑错误,生成第二提示信息之后,还包括:
判断存在逻辑错误的单个语句中是否包含创建、修改或者删除元数据的指令;
若所述存在逻辑错误的单个语句中包含所述指令,则根据所述指令对所述单个语句上下文数据进行更新。
通过上述方法,可以实现对单个语句元数据进行更新。
第二方面,本申请提供了一种基于数据中台的代码提示系统,所述系统包括存储器和处理器,所述存储器用于存储计算机程序;
所述处理器,用于执行所述存储器上所存储的计算机程序时,对当前开发节点文本进行切分,得到N个单个语句,其中,N为大于0的正整数;对所述N个单个语句的语法错误进行识别,输出第一提示信息,其中,所述第一提示信息用于提示用户对所述当前开发节点文本进行语法错误修改;对完成语法修改的所述当前开发节点文本中的所述N个单个语句的逻辑错误进行识别,生成第二提示信息;基于所述第二提示信息,向用户提供推荐项,引导用户进行修改。
在一种可能的设计中,所述处理器,还用于执行所述存储器上所存储的计算机程序时,通过解析器对N个单个语句进行语法分析,获取所述N个单个语句中存在语法错误的位置的第一错误位置信息;生成并输出包含所述第一错误位置信息的所述第一提示信息。
在一种可能的设计中,所述处理器,还用于执行所述存储器上所存储的计算机程序时,根据所述解析器,得到所述N个单个语句对应的抽象语法树,其中,所述抽象语法树指示单个语句的语法结构;根据所述抽象语法树,通过血缘分析得到所述N个单个语句中的元数据的引用关系链,其中,所述元数据至少包括表、视图、函数新增、修改、删除信息;根据所述引用关系链中的元数据的排列顺序,依次校验所述N个单个语句中引用的元数据是否引用正确;若不存在元数据引用错误的单个语句,表明所述当前节点文本不存在逻辑错误,则不对所述当前节点文本做任何处理;若存在元数据引用错误的单个语句,表明所述单个语句存在逻辑错误,则根据所述逻辑错误,生成第二提示信息。
在一种可能的设计中,所述处理器,还用于执行所述存储器上所存储的计算机程序时,基于所述第二提示信息中的逻辑错误,生成每个逻辑错误对应的修改方式;根据所述修改方式,输出推荐项,引导用户进行修改。
在一种可能的设计中,所述处理器,还用于执行所述存储器上所存储的计算机程序时,获取当前开发节点上下文数据,其中,所述当前开发节点上下文数据指示当前开发节点及当前开发节点之前所有节点中的元数据;根据所述当前开发节点上下文数据,依次获取N个单个语句上下文数据,其中,所述单个语句上下文数据指示所述单个语句及所述单个语句之前的所有语句中的元数据;根据所述N个单个语句上下文数据,计算得到所述N个单个语句可使用的元数据;根据所述N个单个语句可使用的元数据,依次将所述N个单个语句按照各自引用关系链中的元数据的排列顺序,校验所述N个单个语句中引用的元数据是否引用正确。
在一种可能的设计中,所述处理器,还用于执行所述存储器上所存储的计算机程序时,判断存在逻辑错误的单个语句中是否包含创建、修改或者删除元数据的指令;若所述存在逻辑错误的单个语句中包含所述指令,则根据所述指令对所述单个语句上下文数据进行更新。
第三方面,本申请提供了一种数据计算平台,所述平台包括:
切分模块,用于对当前开发节点文本进行切分,得到N个单个语句,其中,N为大于0的正整数;
第一处理模块,用于对所述N个单个语句的语法错误进行识别,输出第一提示信息,其中,所述第一提示信息用于提示用户对所述当前开发节点文本进行语法错误修改;
第二处理模块,用于对完成语法修改的所述当前开发节点文本中的所述N个单个语句的逻辑错误进行识别,生成第二提示信息;
提示模块,用于基于所述第二提示信息,向用户提供推荐项,引导用户进行修改。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于数据中台的代码提示的方法步骤。
基于本申请所提供的方法,将当前开发节点文本进行切分,得到多个连续的单个语句,然后依次对单个语句的语法错误进行识别,生成并输出用于提示用户对当前节点文本进行语法错误修改的第一提示信息,接着对完成语法错误修改的单个语句进行逻辑错误识别,生成第二提示信息,并基于所述第二提示信息输出推荐项,引导用户进行修改,实现在用户编写代码过程中,对用户编写的错误代码进行识别并生成提示信息。
由于在对单个语句进行语法错误识别和逻辑错误识别的过程中,不需要在前期使用神经网络模型对代码进行分析训练,因此,对软件配置和硬件配置要求不高。同时,能够避免采用神经网络训练过程中的脏数据导致的代码提示不准确的问题。
另外,神经网络模型只能基于输入的完整的正确语句,生成提示集,对不完整的语句或者存在错误的语句无法生成提示信息,而本申请采用的代码提示方法,能够针对存在语法错误和逻辑错误的语句进行识别,并生成错误提示信息,并且不要求所述语句的完整性。
进一步,由于在本申请中对单个语句的逻辑错误进行识别,是将所述单个语句上下文中的元数据与所述单个语句中引用的元数据进行比较来实现的,相比于将单个语句中的元数据与预设关键字数据库进行比较而言,能避免预设的关键字不全及预设关键字使用场景考虑不周的问题。
上述第二方面至第四方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
图1为本申请提供的一种基于数据中台的代码提示方法流程图;
图2为本申请提供的一种开发节点文本切分方法流程图;
图3为本申请提供的一种生成逻辑错误提示信息的方法流程图;
图4为本申请提供的一种校验单个语句中引用的元数据是否引用正确的方法流程图;
图5为本申请提供的一种数据存储结构示意图;
图6为本申请提供的一种单个语句中的元数据引用关系链流程图;
图7为本申请提供的一种基于数据中台的代码提示系统的结构示意图;
图8为本申请提供的一种数据计算平台的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。需要说明的是,在本申请的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。A与B连接,可以表示:A与B直接连接和A与B通过C连接这两种情况。另外,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
下面结合附图,对本申请实施例进行详细描述。
本申请实施例提供的一种基于数据中台的代码提示方法,用以实现在用户编写代码过程中,对用户编写的错误代码进行识别并生成提示信息,引导用户进行修改。其中,本申请实施例所述方法和装置基于同一技术构思,由于方法及装置所解决问题的原理相似,因此装置与方法的实施例可以相互参见,重复之处不再赘述。
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请作进一步的详细描述。
如图1所述,为本申请提供的一种基于数据中台的代码提示方法,所述方法包括:
S11,对当前开发节点文本进行切分,得到N个单个语句;
在本申请实施例中,要实现对写入的节点文本进行切分,首先要找到所述文本的分隔符,然后根据分隔符的位置,将所述文本切分成连续的N段文本,这样每段文本就是单个语句,其中,N为大于或者等于2的正整数。得到所述N个单个语句的具体流程如图2所示:
S21,获取开发节点文本内容;
S22,根据所述文本内容,通过解析器获得文本的Token流;
在本申请实施例中,所述解析器可以对文本内容进行词法分析,将所述文本内容转化为多个Token,即Token流。
S23,依次判断所述Token流中的每个Token的类型是否为终结符;
在本申请实施例中,程序本身可以识别每个Token的类型,如果Token流中的任一Token为终结符,则结束切分,执行步骤S24;否则,继续判断所述Token是否为分隔符,执行步骤S25。
S24,如果任一Token类型为终结符,则结束切分;
S25,如果任一Token类型不是终结符,则判断所述Token类型是否为分隔符;
在本申请实施例中,如果任一Token类型不是终结符,则继续判断所述Token类型是否为分隔符,如果所述Token类型为分隔符,则执行步骤S26;否则,执行步骤S27。
S26,则按照所述分隔符的位置切分节点文本内容;
在本申请实施例中,如果所述Token类型为分隔符,则按照所述分隔符的位置切分节点文本内容,并执行步骤S27。
S27,继续处理下一个Token,直到所述下一个Token为终结符;
基于上述步骤,对开发节点文本内容进行切分,能够得到连续的N个单个语句,将整个开发节点文本内容以单个语句的形式逐一进行分析,分析过程便捷高效;同时所述单个语句中的数据被记录后,可以被后边的语句使用。
S12,对所述N个单个语句的语法错误进行识别,输出第一提示信息;
在本申请实施例中,所述第一提示信息用于提示用户对所述当前开发节点文本进行语法错误修改,而输出所述第一提示信息,是通过解析器来实现的,具体来讲可以是:
通过所述解析器依次对N个单个语句进行语法分析,获取所述N个单个语句中存在语法错误的位置的第一错误位置信息;
生成并输出包含所述第一错误位置信息的所述第一提示信息。
基于以上方式,可以依次对所述N个单个语句的语法错误进行识别,并将识别出的存在语法错误的位置第一错误位置信息反馈给用户,用以提示用户进行语法错误修改。
举例来说,参考图6中的语句,解析器可以同时识别到所述语句(4,0)和(6,7)两个坐标位置的代码有错误,即第4行第0列和第6行第7列两个位置存在语法错误,同时将所述坐标位置反馈给用户,用以提示用户对所述语句中存在语法错误的文本进行修改。根据反馈的坐标位置信息,用户将from、number两个单词之前多余的空白符进行修改,即可解决语法错误。
S13,对完成语法修改的所述当前开发节点文本中的所述N个单个语句的逻辑错误进行识别,输出第二提示信息;
在本申请实施例中,所述第二提示信息中包含单个语句的逻辑错误位置信息、错误内容及对应的修改方案。
S14,基于所述第二提示信息,向用户提供推荐项,引导用户进行修改。
在本申请实施例中,基于所述第二提示信息中的逻辑错误,生成每个逻辑错误对应的修改方式;根据所述修改方式,输出推荐项,用以引导用户对所述逻辑错误进行修改。
所述逻辑错误主要集中在表名、字段名、函数名、函数参数等拼写错误或使用不当,这些错误可分为两类:一种是表引用错误,如物理表、视图、派生表引用错误,此处派生表可以是子查询、CTE、UDTF、JOIN、UNION等;另一种是表达式引用错误,如对字段、函数及其参数的错误使用。
通过上述步骤可知,最后输出的引导用户进行逻辑错误修改的推荐项,主要是基于第二提示信息来实现的,而得到所述第二提示信息的具体流程如图3所示:
S31,根据所述解析器,得到所述N个单个语句对应的抽象语法树;
在本申请实施例中,所述抽象语法树指示单个语句的语法结构。
S32,根据所述抽象语法树,通过血缘分析得到所述N个单个语句中的元数据的引用关系链;
在本申请实施例中,所述血缘分析是一种技术手段,通过对单个语句对应的抽象语法树进行血缘分析,可以实现对所述单个语句中的元数据的来源进行全面追踪,得到所述元数据的引用关系链。其中,所述元数据为表、字段、视图、函数等。
S33,根据所述引用关系链中的元数据的排列顺序,依次校验所述N个单个语句中引用的元数据是否引用正确;
在本申请实施例中,所述引用正确分为两种情况:一种是引用指令本身是否正确,另一种是引用的元数据是否存在。
若不存在元数据引用错误的单个语句,表明所述当前节点文本不存在逻辑错误,执行步骤S34;若存在元数据引用错误的单个语句,表明所述单个语句存在逻辑错误,执行步骤S35。
S34,若不存在元数据引用错误的单个语句,表明所述当前节点文本不存在逻辑错误,则不对所述当前节点文本做任何处理;
S35,若存在元数据引用错误的单个语句,表明所述单个语句存在逻辑错误,根据所述逻辑错误,生成第二提示信息。
基于上述步骤,通过单个语句上下文数据校验所述单个语句中引用的元数是否引用正确,从而实现对所述单个语句的逻辑错误进行识别,生成并输出第二提示信息。在整个过程中,不需要经过复杂的神经网络对代码的提示过程进行训练,也不局限于只对预设缓存的关键字进行错误提示。同时不会受到空白字符、注释、字面量、常量等影响,还能支持CTE、UDTF、子查询等语法。
进一步,若存在逻辑错误的单个语句中包含创建、修改或者删除元数据的指令,则根据所述指令对所述存在逻辑错误的单个语句上下文数据进行更新。
为了详细解释步骤S33中所述依次校验所述N个单个语句中引用的元数据是否引用正确,参考图4,对具体的校验流程进行说明:
S41,获取当前开发节点上下文;
在本申请实施例中,所述当前开发节点上下文数据指示当前开发节点及当前开发节点之前所有节点中的元数据,获取当前开发节点上下文数据的具体流程可以是:
获取当前开发节点;
判断所述当前开发节点是否有上游节点;
若没有上游开发节点,则获取所述当前开发节点中的元数据作为当前节点上下文数据;
若有上游开发节点,则将上游开发节点上下文数据及当前节点中的元数据作为当前节点上下文数据;
在本申请实施例中,所述上游开发节点上下文数据指示所述上游开发节点及所述上游开发节点的所有上游开发节点中的元数据;
基于上述步骤,在当前开发节点存在上游开发节点的时候,得到的当前开发节点上下文数据中不仅包括当前开发节点中的元数据,也包括当前开发节点的所有上游开发节点中的元数据。
S42,根据所述当前开发节点上下文数据,依次获取N个单个语句上下文数据;
在本申请实施例中,单个语句上下文数据指示所述单个语句及所述单个语句之前的所有语句中的元数据,得到所述单个语句上下文数据的具体流程可以是:
在对当前节点文本内容进行切分的过程中,所述当前开发节点被切分成连续的N个单个语句;
依次判断所述N个单个语句是否为当前开发节点的第一个语句;
若存在单个语句为当前开发节点的第一个语句,获取所述当前节点上下文数据作为当所述单个语句上下文数据;
若存在单个语句不是当前开发节点的第一个语句,则将当前节点上下文数据及所述单个语句的前一条语句的上下文数据,作为所述单个语句上下文数据;
在本申请实施例中,所述单个语句的前一条语句的上下文数据指示所述单个语句的前一条语句及所述单个语句的前一条语句之前的所有语句中的元数据。
S43,根据所述N个单个语句上下文数据,计算得到所述N个单个语句可使用的元数据;
在本申请实施例中,根据单个语句上下文数据,计算得到所述单个语句可使用的元数据,可以是通过调用、生成等方式实现。
S44,根据所述N个单个语句可使用的元数据,依次校验所述N个单个语句中引用的元数据是否引用正确;
在本申请实施例中,校验单个语句中引用的元数据是否引用正确,是按照所述单个语句对应的引用关系链中的元数据的排列顺序来进行的,具体流程包括:
将所述单个数据可使用的元数据与所述单个语句中引用的元数据进行比对;
若一致,表明所述单个语句中引用的元数据引用正确;
若不一致,表明所述单个语句中引用的元数据引用不正确。
通过上述方法,计算得到当前开发节点中的N个单个语句可使用的元数据,所述单个语句可使用的元数据,用于校验所述单个语句中引用的元数据是否正确。
进一步,当所述单个语句中引用的元数据引用不正确时,表明所述单个语句存在逻辑错误。也就是说,对单个语句的逻辑错误进行识别,是基于将所述单个语句上下文数据与所述单个语句中引用的元数据进行比较来实现的。
为了详细阐述步骤S13中所述的依次对完成语法修改的所述当前开发节点文本中的所述N个单个语句的逻辑错误进行识别,下面通过具体的应用场景来说明。
举例来讲,当前语句为:
CREATE TABLE t(m,n,o)as SELECT x,y,z FROM(SELECT a AS x,foo(b,c)as y,33as z,d from tbl)s;
参考图5,当前单个语句中的元数据以表和字段的存储形式,其中表分为真实表和派生表,字段分为真实字段和派生字段,将所述当前语句输入解析器,得到抽象语法树,根据所述抽象语法树对当前语句进行血缘分析,得到所述当前语句中元数据的引用关系链,参考图6,可知目标表t中的数据来自于源表tbl,其中m字段的值由a字段生成,n字段的值由b、c字段生成,o字段的值由常量33生成。由于当前语句中使用了表tbl,因此,要判断所述当前语句是否存在逻辑错误,需要通过查询所述当前语句上下文数据,判断表tbl及其存储的数据a、b、c、d是否存在。如果所述表tbl或者数据a、b、c、d不存在,则表明对应的表名称、字段名或者函数名引用或者拼写有误,即所述当前语句存在逻辑错误,将这些逻辑错误的位置信息返给用户,即可提醒用户对这些逻辑错误进行修改。
在本申请中,先将当前开发节点文本进行切分,得到多个连续的单个语句,然后依次对单个语句的语法错误进行识别,生成并输出用于提示用户对当前节点文本进行语法错误修改的第一提示信息,接着对完成语法错误修改的单个语句进行逻辑错误识别,生成第二提示信息,并基于所述第二提示信息,输出推荐项,用于提示用户对当前节点文本进行逻辑错误进行修改,可以实现在用户编写代码过程中,对用户编写的错误代码进行识别并生成提示信息。
由于在对单个语句进行语法错误识别和逻辑错误识别的过程中,不需要在前期使用神经网络模型对代码进行分析训练,因此,对软件配置和硬件配置要求不高。同时,能够避免采用神经网络训练过程中的脏数据导致的代码提示不准确的问题。
另外,神经网络模型只能基于输入的完整的正确语句,生成提示集,对不完整的语句或者存在错误的语句无法生成提示信息;而本申请采用的基于数据中台的代码提示方法,能够针对存在语法错误和逻辑错误的语句进行识别,并生成错误提示信息,并且不要求所述语句是完整的。
进一步,由于在本申请中对单个语句的逻辑错误进行识别,是将所述单个语句上下文中的元数据与所述单个语句中引用的元数据进行比较来实现的,相比于将单个语句中的元数据与预设关键字数据库进行比较而言,能避免预设的关键字不全及预设关键字使用场景考虑不周的问题。
基于同一发明构思,本申请提供了一种基于数据中台的代码提示系统,如图7所示,为本申请提供的一种基于数据中台的代码提示系统的结构示意图,该系统包括:
至少一个处理器71,以及与至少一个处理器71连接的存储器72,本申请实施例中不限定处理器71与存储器72之间的具体连接介质,图7中是以处理器71和存储器72之间通过总线70连接为例。总线70在图7中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线70可以分为地址总线、数据总线、控制总线等,为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器111也可以称为控制器,对于名称不做限制。
在本申请实施例中,存储器72存储有可被至少一个处理器71执行的指令,至少一个处理器71通过执行存储器72存储的程序,所述处理器71,可以用于执行所述存储器72上所存储的计算机程序时,对当前开发节点文本进行切分,得到N个单个语句,其中,N为大于0的正整数;对所述N个单个语句的语法错误进行识别,输出第一提示信息,其中,所述第一提示信息用于提示用户对所述当前开发节点文本进行语法错误修改;对完成语法修改的所述当前开发节点文本中的所述N个单个语句的逻辑错误进行识别,生成第二提示信息;基于所述第二提示信息,向用户提供推荐项,引导用户进行修改。
在一种可能的设计中,所述处理器71,还用于执行所述存储器71上所存储的计算机程序时,通过解析器对N个单个语句进行语法分析,获取所述N个单个语句中存在语法错误的位置的第一错误位置信息;生成并输出包含所述第一错误位置信息的所述第一提示信息。
在一种可能的设计中,所述处理器71,还用于执行所述存储器72上所存储的计算机程序时,根据所述解析器,得到所述N个单个语句对应的抽象语法树,其中,所述抽象语法树指示单个语句的语法结构;根据所述抽象语法树,通过血缘分析得到所述N个单个语句中的元数据的引用关系链,其中,所述元数据至少包括表、视图、函数新增、修改、删除信息;根据所述引用关系链中的元数据的排列顺序,依次校验所述N个单个语句中引用的元数据是否引用正确;若不存在元数据引用错误的单个语句,表明所述当前节点文本不存在逻辑错误,则不对所述当前节点文本做任何处理;若存在元数据引用错误的单个语句,表明所述单个语句存在逻辑错误,则根据所述逻辑错误,生成第二提示信息。
在一种可能的设计中,所述处理器71,还用于执行所述存储器72上所存储的计算机程序时,基于所述第二提示信息中的逻辑错误,生成每个逻辑错误对应的修改方式;根据所述修改方式,输出推荐项,引导用户进行修改。
在一种可能的设计中,所述处理器71,还用于执行所述存储器72上所存储的计算机程序时,获取当前开发节点上下文数据,其中,所述当前开发节点上下文数据指示当前开发节点及当前开发节点之前所有节点中的元数据;根据所述当前开发节点上下文数据,依次获取N个单个语句上下文数据,其中,所述单个语句上下文数据指示所述单个语句及所述单个语句之前的所有语句中的元数据;根据所述N个单个语句上下文数据,计算得到所述N个单个语句可使用的元数据;根据所述N个单个语句可使用的元数据,依次将所述N个单个语句按照各自引用关系链中的元数据的排列顺序,校验所述N个单个语句中引用的元数据是否引用正确。
在一种可能的设计中,所述处理器71,还用于执行所述存储器72上所存储的计算机程序时,判断存在逻辑错误的单个语句中是否包含创建、修改或者删除元数据的指令;若所述存在逻辑错误的单个语句中包含所述指令,则根据所述指令对所述单个语句上下文数据进行更新。
此外,所述处理器71,执行所述存储器72上所存储的计算机程序时,还可以实现图8所示的平台中各个模块的功能。
其中,处理器71是该平台的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器72内的指令以及调用存储在存储器72内的数据,该平台的各种功能和处理数据,从而对该平台进行整体监控。
在一种可能的设计中,处理器71可包括一个或多个处理单元,处理器71可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器71中。在一些实施例中,处理器71和存储器72可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器71可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的基于数据中台的代码提示方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器72作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器72可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等。存储器72是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器72还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器71进行设计编程,可以将前述实施例中介绍的基于数据中台的代码提示方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图1所示的实施例的基于数据中台的代码提示方法的步骤。如何对处理器71进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
基于本申请所提供的系统,将当前开发节点文本进行切分,得到多个连续的单个语句,然后依次对单个语句的语法错误进行识别,生成并输出用于提示用户对当前节点文本进行语法错误修改的第一提示信息,接着对完成语法错误修改的单个语句进行逻辑错误识别,生成第一提示信息,并基于所述第一提示信息输出推荐项,用于提示用户对当前节点文本进行逻辑错误进行修改,实现在用户编写代码过程中,对用户编写的错误代码进行识别并生成提示信息。
由于在对单个语句进行语法错误识别和逻辑错误识别的过程中,不需要在前期使用神经网络模型对代码进行分析训练,因此,对软件配置和硬件配置要求不高。同时,能够避免采用神经网络训练过程中的脏数据导致的代码提示不准确的问题。
另外,神经网络模型只能基于输入的完整的正确语句,生成提示集,对不完整的语句或者存在错误的语句无法生成提示信息,而本申请采用的基于数据中台的代码提示方法,能够针对存在语法错误和逻辑错误的语句进行识别,并生成错误提示信息,并且不要求所述语句的完整性。
基于同一发明构思,如图8所示,本申请实施例还提供一种数据计算平台,所述平台包括:
切分模块81,用于对当前开发节点文本进行切分,得到N个单个语句,其中,N为大于0的正整数;
第一处理模块82,用于对所述N个单个语句的语法错误进行识别,输出第一提示信息,其中,所述第一提示信息用于提示用户对所述当前开发节点文本进行语法错误修改;
第二处理模块83,用于对完成语法修改的所述当前开发节点文本中的所述N个单个语句的逻辑错误进行识别,生成第二提示信息;
提示模块84,用于基于所述第二提示信息,向用户提供推荐项,引导用户进行修改。
基于同一发明构思,本申请实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述基于数据中台的代码提示方法。
在一些可能的实施方式中,本申请提供的代码提示方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本申请各种示例性实施方式的基于数据中台的代码提示方法中的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种基于数据中台的代码提示方法,其特征在于,所述方法包括:
对当前开发节点文本进行切分,得到N个单个语句,其中,N为大于0的正整数;
对所述N个单个语句的语法错误进行识别,输出第一提示信息,其中,所述第一提示信息用于提示用户对所述当前开发节点文本进行语法错误修改;
对完成语法修改的所述当前开发节点文本中的所述N个单个语句的逻辑错误进行识别,生成第二提示信息;
基于所述第二提示信息,向用户提供推荐项,引导用户进行修改。
2.如权利要求1所述的方法,其特征在于,所述对所述N个单个语句的语法错误进行识别,输出第一提示信息,包括;
通过解析器对N个单个语句进行语法分析,获取所述N个单个语句中存在语法错误的位置的第一错误位置信息;
生成并输出包含所述第一错误位置信息的所述第一提示信息。
3.如权利要求1所述的方法,其特征在于,所述对所述N个单个语句的逻辑错误进行识别,输出第二提示信息,包括:
根据所述解析器,得到所述N个单个语句对应的抽象语法树,其中,所述抽象语法树指示单个语句的语法结构;
根据所述抽象语法树,通过血缘分析得到所述N个单个语句中的元数据的引用关系链,其中,所述元数据至少包括表、视图、函数创建、修改、删除信息;
根据所述引用关系链中的元数据的排列顺序,依次校验所述N个单个语句中引用的元数据是否引用正确;
若不存在元数据引用错误的单个语句,表明所述当前节点文本不存在逻辑错误,则不对所述当前节点文本做任何处理;
若存在元数据引用错误的单个语句,表明所述单个语句存在逻辑错误,则根据所述逻辑错误,生成第二提示信息。
4.如权利要求1所述的方法,其特征在于,所述基于所述第二提示信息,向用户提供推荐项,引导用户进行修改,包括:
基于所述第二提示信息中的逻辑错误,生成每个逻辑错误对应的修改方式;
根据所述修改方式,输出推荐项,引导用户进行修改。
5.如权利要求3所述的方法,其特征在于,所述校验所述N个单个语句中引用的元数据是否引用正确,包括:
获取当前开发节点上下文数据,其中,所述当前开发节点上下文数据指示当前开发节点及当前开发节点之前所有节点中的元数据;
根据所述当前开发节点上下文数据,依次获取N个单个语句上下文数据,其中,所述单个语句上下文数据指示所述单个语句及所述单个语句之前的所有语句中的元数据;
根据所述N个单个语句上下文数据,计算得到所述N个单个语句可使用的元数据;
根据所述N个单个语句可使用的元数据,依次将所述N个单个语句按照各自引用关系链中的元数据的排列顺序,校验所述N个单个语句中引用的元数据是否引用正确。
6.如权利要求3所述的方法,其特征在于,在所述根据所述逻辑错误,生成第二提示信息之后,还包括:
判断存在逻辑错误的单个语句中是否包含创建、修改或者删除元数据的指令;
若所述存在逻辑错误的单个语句中包含所述指令,则根据所述指令对所述单个语句上下文数据进行更新。
7.一种基于数据中台的代码提示系统,其特征在于,所述系统包括存储器和处理器,所述存储器用于存储计算机程序;
所述处理器,用于执行所述存储器上所存储的计算机程序时,对当前开发节点文本进行切分,得到N个单个语句,其中,N为大于0的正整数;对所述N个单个语句的语法错误进行识别,输出第一提示信息,其中,所述第一提示信息用于提示用户对所述当前开发节点文本进行语法错误修改;对完成语法修改的所述当前开发节点文本中的所述N个单个语句的逻辑错误进行识别,生成第二提示信息;基于所述第二提示信息,向用户提供推荐项,引导用户进行修改。
8.如权利要求7所述的系统,其特征在于,所述处理器,还用于执行所述存储器上所存储的计算机程序时,根据所述解析器,得到所述N个单个语句对应的抽象语法树,其中,所述抽象语法树指示单个语句的语法结构;根据所述抽象语法树,通过血缘分析得到所述N个单个语句中的元数据的引用关系链,其中,所述元数据至少包括表、视图、函数新增、修改、删除信息;根据所述引用关系链中的元数据的排列顺序,依次校验所述N个单个语句中引用的元数据是否引用正确;若不存在元数据引用错误的单个语句,表明所述当前节点文本不存在逻辑错误,则不对所述当前节点文本做任何处理;若存在元数据引用错误的单个语句,表明所述单个语句存在逻辑错误,则根据所述逻辑错误,生成第二提示信息。
9.如权利要求7所述的系统,其特征在于,所述处理器,还用于所述存储器上所存储的计算机程序时,获取当前开发节点上下文数据,其中,所述当前开发节点上下文数据指示当前开发节点及当前开发节点之前所有节点中的元数据;根据所述当前开发节点上下文数据,依次获取N个单个语句上下文数据,其中,所述单个语句上下文数据指示所述单个语句及所述单个语句之前的所有语句中的元数据;根据所述N个单个语句上下文数据,计算得到所述N个单个语句可使用的元数据;根据所述N个单个语句可使用的元数据,依次将所述N个单个语句按照各自引用关系链中的元数据的排列顺序,校验所述N个单个语句中引用的元数据是否引用正确。
10.如权利要求7所述的系统,其特征在于,所述处理器还用于所述存储器上所存储的计算机程序时,判断存在逻辑错误的单个语句中是否包含创建、修改或者删除元数据的指令;若所述存在逻辑错误的单个语句中包含所述指令,则根据所述指令对所述单个语句上下文数据进行更新。
11.一种数据计算平台,其特征在于,所述平台包括:
切分模块,用于对当前开发节点文本进行切分,得到N个单个语句,其中,N为大于0的正整数;
第一处理模块,用于对所述N个单个语句的语法错误进行识别,输出第一提示信息,其中,所述第一提示信息用于提示用户对所述当前开发节点文本进行语法错误修改;
第二处理模块,用于对完成语法修改的所述当前开发节点文本中的所述N个单个语句的逻辑错误进行识别,生成第二提示信息;
提示模块,用于基于所述第二提示信息,向用户提供推荐项,引导用户进行修改。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110872687.8A CN113485715A (zh) | 2021-07-30 | 2021-07-30 | 一种基于数据中台的代码提示方法、系统及数据计算平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110872687.8A CN113485715A (zh) | 2021-07-30 | 2021-07-30 | 一种基于数据中台的代码提示方法、系统及数据计算平台 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113485715A true CN113485715A (zh) | 2021-10-08 |
Family
ID=77944778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110872687.8A Pending CN113485715A (zh) | 2021-07-30 | 2021-07-30 | 一种基于数据中台的代码提示方法、系统及数据计算平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113485715A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404584A (zh) * | 2015-11-25 | 2016-03-16 | 广州博冠信息科技有限公司 | Lpc静态代码检查方法、装置和系统 |
CN107015813A (zh) * | 2017-04-19 | 2017-08-04 | 网易(杭州)网络有限公司 | 代码修复的方法、装置及电子设备 |
CN108008947A (zh) * | 2017-12-25 | 2018-05-08 | 上海达梦数据库有限公司 | 一种编程语句的智能提示方法、装置、服务器及存储介质 |
CN108614707A (zh) * | 2018-04-27 | 2018-10-02 | 深圳市腾讯网络信息技术有限公司 | 静态代码检查方法、装置、存储介质和计算机设备 |
CN111240982A (zh) * | 2020-01-09 | 2020-06-05 | 华东师范大学 | 源代码静态分析方法 |
CN111538744A (zh) * | 2020-07-08 | 2020-08-14 | 浙江大华技术股份有限公司 | 数据血缘的处理方法及装置 |
CN111694858A (zh) * | 2020-04-28 | 2020-09-22 | 平安科技(深圳)有限公司 | 数据血缘分析方法、装置、设备及计算机可读存储介质 |
CN112052008A (zh) * | 2020-09-10 | 2020-12-08 | 腾讯科技(深圳)有限公司 | 代码检查方法、装置、计算机设备及计算机可读存储介质 |
CN112817876A (zh) * | 2021-04-19 | 2021-05-18 | 阿里云计算有限公司 | 一种代码诊断方法、装置、服务端、用户设备及存储介质 |
US20210165788A1 (en) * | 2019-12-03 | 2021-06-03 | Embarcadero Technologies, Inc. | Systems and methods for addressing errors in sql statements |
-
2021
- 2021-07-30 CN CN202110872687.8A patent/CN113485715A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404584A (zh) * | 2015-11-25 | 2016-03-16 | 广州博冠信息科技有限公司 | Lpc静态代码检查方法、装置和系统 |
CN107015813A (zh) * | 2017-04-19 | 2017-08-04 | 网易(杭州)网络有限公司 | 代码修复的方法、装置及电子设备 |
CN108008947A (zh) * | 2017-12-25 | 2018-05-08 | 上海达梦数据库有限公司 | 一种编程语句的智能提示方法、装置、服务器及存储介质 |
CN108614707A (zh) * | 2018-04-27 | 2018-10-02 | 深圳市腾讯网络信息技术有限公司 | 静态代码检查方法、装置、存储介质和计算机设备 |
US20210165788A1 (en) * | 2019-12-03 | 2021-06-03 | Embarcadero Technologies, Inc. | Systems and methods for addressing errors in sql statements |
CN111240982A (zh) * | 2020-01-09 | 2020-06-05 | 华东师范大学 | 源代码静态分析方法 |
CN111694858A (zh) * | 2020-04-28 | 2020-09-22 | 平安科技(深圳)有限公司 | 数据血缘分析方法、装置、设备及计算机可读存储介质 |
CN111538744A (zh) * | 2020-07-08 | 2020-08-14 | 浙江大华技术股份有限公司 | 数据血缘的处理方法及装置 |
CN112052008A (zh) * | 2020-09-10 | 2020-12-08 | 腾讯科技(深圳)有限公司 | 代码检查方法、装置、计算机设备及计算机可读存储介质 |
CN112817876A (zh) * | 2021-04-19 | 2021-05-18 | 阿里云计算有限公司 | 一种代码诊断方法、装置、服务端、用户设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
SIRIKUL, K ET AL.: "Automated detection of code smells caused by null checking conditions in Java programs", 《2016 13TH INTERNATIONAL JOINT CONFERENCE ON COMPUTER SCIENCE AND SOFTWARE ENGINEERING (JCSSE)》, 31 December 2016 (2016-12-31) * |
饶坤;彭四伟;: "C/C++源代码静态检测系统的设计和实现", 电子设计工程, no. 12, 20 June 2011 (2011-06-20) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110321432B (zh) | 文本事件信息提取方法、电子装置和非易失性存储介质 | |
US9251143B2 (en) | Converting data into natural language form | |
US11341116B2 (en) | Techniques for automated data analysis | |
US9934220B2 (en) | Content revision using question and answer generation | |
CN111176996A (zh) | 测试用例生成方法、装置、计算机设备及存储介质 | |
CN110276071B (zh) | 一种文本匹配方法、装置、计算机设备及存储介质 | |
US11609748B2 (en) | Semantic code search based on augmented programming language corpus | |
US7779049B1 (en) | Source level optimization of regular expressions | |
CN111159016A (zh) | 一种规范检测方法及装置 | |
CN112286814A (zh) | 一种测试用例脚本的自动化生成系统及方法 | |
Cahill et al. | Wide-coverage deep statistical parsing using automatic dependency structure annotation | |
CN110737469B (zh) | 一种功能粒度上基于语义信息的源代码相似度评估方法 | |
Ahmed et al. | Synfix: Automatically fixing syntax errors using compiler diagnostics | |
US10678514B2 (en) | Method and device for generating code assistance information | |
Alexandru et al. | Replicating parser behavior using neural machine translation | |
CN112948400A (zh) | 一种数据库管理方法、数据库管理装置及终端设备 | |
CN101727451A (zh) | 信息提取方法和装置 | |
CN116028626A (zh) | 文本匹配方法、装置、存储介质以及电子设备 | |
CN113485715A (zh) | 一种基于数据中台的代码提示方法、系统及数据计算平台 | |
CN109993190B (zh) | 一种本体匹配方法、装置和计算机存储介质 | |
CN114090722B (zh) | 查询内容自动补全的方法及装置 | |
CN112988996B (zh) | 知识库生成方法、装置、设备及存储介质 | |
CN113988057A (zh) | 基于概念抽取的标题生成方法、装置、设备及介质 | |
CN114676155A (zh) | 代码提示信息的确定方法、数据集的确定方法及电子设备 | |
CN114116773A (zh) | 一种结构化查询语言sql文本审核方法及装置 |
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 |