CN106095470A - 基于压扁控制流认知优先度驱动的程序理解方法及系统 - Google Patents

基于压扁控制流认知优先度驱动的程序理解方法及系统 Download PDF

Info

Publication number
CN106095470A
CN106095470A CN201610680665.0A CN201610680665A CN106095470A CN 106095470 A CN106095470 A CN 106095470A CN 201610680665 A CN201610680665 A CN 201610680665A CN 106095470 A CN106095470 A CN 106095470A
Authority
CN
China
Prior art keywords
program
understanding
cognitive
nodes
unintelligible
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
Application number
CN201610680665.0A
Other languages
English (en)
Other versions
CN106095470B (zh
Inventor
李泽熊
吴伟民
吴汪洋
李宗妮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong University of Technology
Original Assignee
Guangdong University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong University of Technology filed Critical Guangdong University of Technology
Priority to CN201610680665.0A priority Critical patent/CN106095470B/zh
Publication of CN106095470A publication Critical patent/CN106095470A/zh
Application granted granted Critical
Publication of CN106095470B publication Critical patent/CN106095470B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于压扁控制流认知优先度驱动的程序理解方法及系统,包括:利用压扁控制流将残缺版本的目标程序的代码划分成具有索引引导的顺序执行基本块;获取与所述目标程序对应的完整版程序;通过所述完整版程序与所述目标程序的映射对比,将所述基本块按照预定规则转化为以二叉树形式表示的理解依赖模型;计算所述理解依赖模型中未理解节点的认知优先度;利用未理解节点的认知优先度,通过多层感知器的神经网络深度学习分析未理解节点的程序的理解;可见,在本实施例中,能实现在程序出现功能代码部分空白残缺的情况下理解程序。

Description

基于压扁控制流认知优先度驱动的程序理解方法及系统
技术领域
本发明涉及软件逆向工程领域,更具体地说,涉及一种基于压扁控制流认知优先度驱动的程序理解方法及系统。
背景技术
程序理解在软件逆向工程领域中是一个重要的分支。它是一个从计算机程序中通过对程序的分析、抽象和推理来获取知识信息并映射到人脑中,形成关于程序结构和功能思维模型的过程。其目的是在一定规则下提取并分析程序中各种实体之间的关系,形成系统的不同形式和层次的抽象表示,逐步构建所需的理解。目前程序理解的研究主要在程序认知过程的研究和半自动化工具的研究这两个方面。
在程序认知过程的研究中,M.A.D.Storey等人从支持不同的理解策略和减轻维护人员认知负担这两方面中提出了可以帮助构造心理模型的14个认知设计元素,从而指导辅助理解的工具的开发设计;M.P.Robillard等人通过分析程序观察行为和成功修改工作的关系,发现系统地采用方法地观察代码比随机的浏览更为有效。在半自动化工具的研究中,早期的Rigi工具支持逆向工程理解,生成了系统的抽象信息和子系统层次关系;RationalRose工具将需求和系统的体系架构转换成代码,对需求和系统的体系架构进行可视化,理解和精练;SHriMP使用了超文本DA4Java工具提供了递增组合图的功能,可以过滤掉不相关的节点和边简化程序理解可视化图形。EXTRAVIS工具使用大量的顺序视图和环形束视图可视化执行轨迹,来展示父元素和子元素之间隐含的调用关系。在国内北大青鸟程序理解系统JBPAS(Jade Bird Program Analysis System)利用增量分析技术静态分析程序源代码,支持多种理解策略;东南大学提出了一种认知容易度驱动的程序理解过程方法。
然而,目前现有技术只考虑了程序可执行情况下进行相关的程序理解,获取相应的程序信息,尚未涉及程序出现功能代码部分空白残缺的情况,因此,如何在程序出现功能代码部分空白残缺的情况下理解程序,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种基于压扁控制流认知优先度驱动的程序理解方法及系统,以实现在程序出现功能代码部分空白残缺的情况下理解程序。
为实现上述目的,本发明实施例提供了如下技术方案:
一种基于压扁控制流认知优先度驱动的程序理解方法,包括:
利用压扁控制流将残缺版本的目标程序的代码划分成具有索引引导的顺序执行基本块;
获取与所述目标程序对应的完整版程序;
通过所述完整版程序与所述目标程序的映射对比,将所述基本块按照预定规则转化为以二叉树形式表示的理解依赖模型;
计算所述理解依赖模型中未理解节点的认知优先度;
利用未理解节点的认知优先度,通过多层感知器的神经网络深度学习分析未理解节点的程序的理解。
其中,所述获取与所述目标程序对应的完整版程序,包括:
从标准正确代码模板获取与所述目标程序对应的完整版程序;或者,
从经过云计算互联网数据挖掘所得的代码模板中获取与所述目标程序对应的完整版程序。
其中,利用未理解节点的认知优先度,通过多层感知器的神经网络深度学习分析未理解节点的程序的理解,包括:
利用未理解节点的认知优先度,将所有未理解节点进行降序排序;
根据所述排序,利用多层感知器的神经网络深度学习分析每个未理解节点的理解。
其中,所述计算所述理解依赖模型中未理解节点的认知优先度,包括:
将待计算认知优先度的未理解节点作为目标未理解节点;
获取在所述理解依赖模型中,已理解节点与所述目标未理解节点的最短路径距离的距离集合;
获取在所述理解依赖模型中,与所述目标未理解节点距离所述距离集合中不同距离所对应的已理解节点的数量集合;
获取在所述理解依赖模型中,与所述目标未理解节点距离所述距离集合中不同距离所对应的已理解节点的权重值集合;
利用所述距离集合、所述数量集合和所述权重值集合,计算每个未理解节点的认知优先度。
一种基于压扁控制流认知优先度驱动的程序理解系统,包括:
基本块划分模块,用于利用压扁控制流将残缺版本的目标程序的代码划分成具有索引引导的顺序执行基本块;
获取模块,用于获取与所述目标程序对应的完整版程序;
理解依赖模型建立模块,用于通过所述完整版程序与所述目标程序的映射对比,将所述基本块按照预定规则转化为以二叉树形式表示的理解依赖模型;
认知优先度计算模块,用于计算所述理解依赖模型中未理解节点的认知优先度;
理解模块,用于利用未理解节点的认知优先度,通过多层感知器的神经网络深度学习分析未理解节点的程序的理解。
其中,所述获取模块,包括:
第一获取单元,用于从标准正确代码模板获取与所述目标程序对应的完整版程序;或者,
第二获取单元,用于从经过云计算互联网数据挖掘所得的代码模板中获取与所述目标程序对应的完整版程序。
其中,所述理解模块包括:
排序单元,用于利用未理解节点的认知优先度,将所有未理解节点进行降序排序;
理解单元,用于根据所述排序,利用多层感知器的神经网络深度学习分析每个未理解节点的理解。
其中,所述认知优先度计算模块包括:
目标未理解节点选取单元,用于将待计算认知优先度的未理解节点作为目标未理解节点;
距离集合获取单元,用于获取在所述理解依赖模型中,已理解节点与所述目标未理解节点的最短路径距离的距离集合;
数量集合获取单元,用于获取在所述理解依赖模型中,与所述目标未理解节点距离所述距离集合中不同距离所对应的已理解节点的数量集合;
权重值集合获取单元,用于获取在所述理解依赖模型中,与所述目标未理解节点距离所述距离集合中不同距离所对应的已理解节点的权重值集合;
认知优先度计算单元,用于利用所述距离集合、所述数量集合和所述权重值集合,计算每个未理解节点的认知优先度。
通过以上方案可知,本发明实施例提供的一种基于压扁控制流认知优先度驱动的程序理解方法及系统,包括:利用压扁控制流将残缺版本的目标程序的代码划分成具有索引引导的顺序执行基本块;获取与所述目标程序对应的完整版程序;通过所述完整版程序与所述目标程序的映射对比,将所述基本块按照预定规则转化为以二叉树形式表示的理解依赖模型;计算所述理解依赖模型中未理解节点的认知优先度;利用未理解节点的认知优先度,通过多层感知器的神经网络深度学习分析未理解节点的程序的理解;可见,在本实施例中,能实现在程序出现功能代码部分空白残缺的情况下理解程序。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种基于压扁控制流认知优先度驱动的程序理解方法流程示意图;
图2为本发明实施例公开的循环结构控制流压扁模型及其相关算法描述示意图;
图3为本发明实施例公开的全局代码控制流压扁模型及其相关算法描述示意图;
图4为本发明实施例公开的压扁控制流树状理解依赖模型的构造示意图;
图5为本发明实施例公开的理解依赖模型示意图;
图6为本发明实施例公开的程序分析模型示意图;
图7为本发明实施例公开的一种基于压扁控制流认知优先度驱动的程序理解系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于压扁控制流认知优先度驱动的程序理解方法及系统,以实现在程序出现功能代码部分空白残缺的情况下理解程序。
参见图1,本发明实施例提供的一种基于压扁控制流认知优先度驱动的程序理解方法,包括:
S101、利用压扁控制流将残缺版本的目标程序的代码划分成具有索引引导的顺序执行基本块;
具体的,在本方案中压扁流程序思想为按层次分析处理,该算法是将程序中所有划分成顺序执行的基本块压扁化处理变成具有前驱和后继的集合,使得每个基本块在实际的代码执行的控制流中,通过对调度变量next赋值来指示接下来要执行的基本块。
根据算法在程序中的作用范围,压扁控制流算法可以分为基于循环或选择结构控制流压扁、函数体内控制流压扁和全局代码控制流压扁这三类。鉴于分支结构控制流压扁是循环结构控制流压扁的特殊形式,而全局代码控制流压扁与函数体内控制流压扁的实现方法相同,所以下面给出循环结构控制流压扁和全局代码控制流压扁的模型以及相关的算法描述,如图2和图3所示。
S102、获取与所述目标程序对应的完整版程序;
其中,所述获取与所述目标程序对应的完整版程序,包括:
从标准正确代码模板获取与所述目标程序对应的完整版程序;或者,
从经过云计算互联网数据挖掘所得的代码模板中获取与所述目标程序对应的完整版程序。
具体的,在本方案中利用云技术在网上爬虫正确程序代码,并进行数据挖掘分类处理,为残缺程序的匹配提供多样化模板,让匹配程序能够感知学习到各种各样的程序算法思想,提高匹配的准确性和精确度。
S103、通过所述完整版程序与所述目标程序的映射对比,将所述基本块按照预定规则转化为以二叉树形式表示的理解依赖模型;
具体的,将划分成具有索引引导的顺序执行基本块的相关程序代码,按一定的规则转化为二叉树形式表示的程序模型,如图4所示。
其中,在划分好层次的理解依赖模型中的每个节点具有以下特性:(I,F,W,U,T)。I(Index)表示该程序基本块对应的压扁控制流调度变量next的索引值;F(Function)表示该程序基本块的功能特性;W(Weight)表示该程序基本块功能重要程度的权重值,;U(Understand)表示该开发者对该程序基本块的理解程度,即不理解和理解;T(Thread)表示接下来要执行的程序基本块对应数据集V中的索引值I(Index)。
S104、计算所述理解依赖模型中未理解节点的认知优先度;
其中,所述计算所述理解依赖模型中未理解节点的认知优先度,包括:
将待计算认知优先度的未理解节点作为目标未理解节点;
获取在所述理解依赖模型中,已理解节点与所述目标未理解节点的最短路径距离的距离集合;
获取在所述理解依赖模型中,与所述目标未理解节点距离所述距离集合中不同距离所对应的已理解节点的数量集合;
获取在所述理解依赖模型中,与所述目标未理解节点距离所述距离集合中不同距离所对应的已理解节点的权重值集合;
利用所述距离集合、所述数量集合和所述权重值集合,计算每个未理解节点的认知优先度。
具体的,认知优先程度的计算,即在当前的理解依赖模型中,结合未理解部分和已理解部分的关系,后续应对哪一个未理解部分进行认知工作的优先程度。通过图5可以发现在理解依赖图中,在程序完整版本树状模型Tb上,如果一个尚未被理解的结点v相连的已理解的结点越多,即尚未理解结点与已理解结点间路径的边数越少,那么这个结点v应该越优先被理解。认知优先度CP的计算公式:
C P ( v ) = Σ d = 1 D Σ i = 1 n d W d i * 10 1 - d n d
其中,d为理解依赖模型Tb中一个已理解结点va到未理解结点vb的距离,即两结点间最短路径的边的个数,如果va与vb存在直接的索引导向关系,那么d=1;D为d的最大取值,即在Tb中,距离未理解结点vb最远的已理解结点va的距离d;nd为Tb中到未理解结点vb距离为d的已理解结点总个数,Wdi为Tb中到未理解结点vb距离为d的已理解结点vb的W属性权重值。
具体的,在图5理解依赖模型中,计算Tb中未理解结点vE的认知优先度CP。对于vE来讲,距离为1的已理解结点有vA这1个,其权值为WA,距离为3的已理解结点有2个,vB、vC的权值分别为WB、WC,因此未理解结点vE的认知优先度:
C P ( v E ) = W A + W A + W B 2 × 10 - 1 .
S105、利用未理解节点的认知优先度,通过多层感知器的神经网络深度学习分析未理解节点的程序的理解。
其中,利用未理解节点的认知优先度,通过多层感知器的神经网络深度学习分析未理解节点的程序的理解,包括:
利用未理解节点的认知优先度,将所有未理解节点进行降序排序;
根据所述排序,利用多层感知器的神经网络深度学习分析每个未理解节点的理解。
具体的,在本方案中通过程序神经网络深度学习进行分析匹配,通过多层感知器的神经网络深度学习,不断对利用压扁流驱动的程序的程序进行学习理解分析,具体的分析过程如图6所示。
可见,在本方案中利用压扁控制流将程序的代码划分成具有索引引导的顺序执行基本块,通过程序完整版本与残缺版本的映射对比建立理解依赖关系,计算相关认知优先度,并结合控制流中switch语句里next变量的“使用-定值链”常量传播,进行神经网络深度学习分析来驱动功能代码部分残缺无法运行版本程序的理解。其中完整版本的代码的来源除了标准正确代码模板外,还来自经过云计算互联网数据挖掘所得的代码模板,这样本发明能够对残缺未能通过编译的代码进行理解,而且结合云计算海量数据的挖掘可以识别多种编程算法思路。
下面对本发明实施例提供的程序理解系统进行介绍,下文描述的程序理解系统与上文描述的程序理解方法可以相互参照。
参见图7,本发明实施例提供的一种基于压扁控制流认知优先度驱动的程序理解系统,包括:
基本块划分模块100,用于利用压扁控制流将残缺版本的目标程序的代码划分成具有索引引导的顺序执行基本块;
获取模块200,用于获取与所述目标程序对应的完整版程序;
理解依赖模型建立模块300,用于通过所述完整版程序与所述目标程序的映射对比,将所述基本块按照预定规则转化为以二叉树形式表示的理解依赖模型;
认知优先度计算模块400,用于计算所述理解依赖模型中未理解节点的认知优先度;
理解模块500,用于利用未理解节点的认知优先度,通过多层感知器的神经网络深度学习分析未理解节点的程序的理解。
基于上述技术方案,所述获取模块,包括:
第一获取单元,用于从标准正确代码模板获取与所述目标程序对应的完整版程序;或者,
第二获取单元,用于从经过云计算互联网数据挖掘所得的代码模板中获取与所述目标程序对应的完整版程序。
基于上述技术方案,所述理解模块包括:
排序单元,用于利用未理解节点的认知优先度,将所有未理解节点进行降序排序;
理解单元,用于根据所述排序,利用多层感知器的神经网络深度学习分析每个未理解节点的理解。
基于上述技术方案,所述认知优先度计算模块包括:
目标未理解节点选取单元,用于将待计算认知优先度的未理解节点作为目标未理解节点;
距离集合获取单元,用于获取在所述理解依赖模型中,已理解节点与所述目标未理解节点的最短路径距离的距离集合;
数量集合获取单元,用于获取在所述理解依赖模型中,与所述目标未理解节点距离所述距离集合中不同距离所对应的已理解节点的数量集合;
权重值集合获取单元,用于获取在所述理解依赖模型中,与所述目标未理解节点距离所述距离集合中不同距离所对应的已理解节点的权重值集合;
认知优先度计算单元,用于利用所述距离集合、所述数量集合和所述权重值集合,计算每个未理解节点的认知优先度。
本发明实施例提供的一种基于压扁控制流认知优先度驱动的程序理解方法及系统,包括:利用压扁控制流将残缺版本的目标程序的代码划分成具有索引引导的顺序执行基本块;获取与所述目标程序对应的完整版程序;通过所述完整版程序与所述目标程序的映射对比,将所述基本块按照预定规则转化为以二叉树形式表示的理解依赖模型;计算所述理解依赖模型中未理解节点的认知优先度;利用未理解节点的认知优先度,通过多层感知器的神经网络深度学习分析未理解节点的程序的理解;可见,在本实施例中,能够解决现有技术对代码残缺无法通过编译的程序进行理解的问题,且通过云计算海量数据的挖掘解决了现有技术理解程序算法思想单一的问题。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (8)

1.一种基于压扁控制流认知优先度驱动的程序理解方法,其特征在于,包括:
利用压扁控制流将残缺版本的目标程序的代码划分成具有索引引导的顺序执行基本块;
获取与所述目标程序对应的完整版程序;
通过所述完整版程序与所述目标程序的映射对比,将所述基本块按照预定规则转化为以二叉树形式表示的理解依赖模型;
计算所述理解依赖模型中未理解节点的认知优先度;
利用未理解节点的认知优先度,通过多层感知器的神经网络深度学习分析未理解节点的程序的理解。
2.根据权利要求1所述的程序理解方法,其特征在于,所述获取与所述目标程序对应的完整版程序,包括:
从标准正确代码模板获取与所述目标程序对应的完整版程序;或者,
从经过云计算互联网数据挖掘所得的代码模板中获取与所述目标程序对应的完整版程序。
3.根据权利要求2所述的程序理解方法,其特征在于,利用未理解节点的认知优先度,通过多层感知器的神经网络深度学习分析未理解节点的程序的理解,包括:
利用未理解节点的认知优先度,将所有未理解节点进行降序排序;
根据所述排序,利用多层感知器的神经网络深度学习分析每个未理解节点的理解。
4.根据权利要求1-3中任意一项所述的程序理解方法,其特征在于,所述计算所述理解依赖模型中未理解节点的认知优先度,包括:
将待计算认知优先度的未理解节点作为目标未理解节点;
获取在所述理解依赖模型中,已理解节点与所述目标未理解节点的最短路径距离的距离集合;
获取在所述理解依赖模型中,与所述目标未理解节点距离所述距离集合中不同距离所对应的已理解节点的数量集合;
获取在所述理解依赖模型中,与所述目标未理解节点距离所述距离集合中不同距离所对应的已理解节点的权重值集合;
利用所述距离集合、所述数量集合和所述权重值集合,计算每个未理解节点的认知优先度。
5.一种基于压扁控制流认知优先度驱动的程序理解系统,其特征在于,包括:
基本块划分模块,用于利用压扁控制流将残缺版本的目标程序的代码划分成具有索引引导的顺序执行基本块;
获取模块,用于获取与所述目标程序对应的完整版程序;
理解依赖模型建立模块,用于通过所述完整版程序与所述目标程序的映射对比,将所述基本块按照预定规则转化为以二叉树形式表示的理解依赖模型;
认知优先度计算模块,用于计算所述理解依赖模型中未理解节点的认知优先度;
理解模块,用于利用未理解节点的认知优先度,通过多层感知器的神经网络深度学习分析未理解节点的程序的理解。
6.根据权利要求5所述的程序理解系统,其特征在于,所述获取模块,包括:
第一获取单元,用于从标准正确代码模板获取与所述目标程序对应的完整版程序;或者,
第二获取单元,用于从经过云计算互联网数据挖掘所得的代码模板中获取与所述目标程序对应的完整版程序。
7.根据权利要求6所述的程序理解系统,其特征在于,所述理解模块包括:
排序单元,用于利用未理解节点的认知优先度,将所有未理解节点进行降序排序;
理解单元,用于根据所述排序,利用多层感知器的神经网络深度学习分析每个未理解节点的理解。
8.根据权利要求5-7中任意一项所述的程序理解系统,其特征在于,所述认知优先度计算模块包括:
目标未理解节点选取单元,用于将待计算认知优先度的未理解节点作为目标未理解节点;
距离集合获取单元,用于获取在所述理解依赖模型中,已理解节点与所述目标未理解节点的最短路径距离的距离集合;
数量集合获取单元,用于获取在所述理解依赖模型中,与所述目标未理解节点距离所述距离集合中不同距离所对应的已理解节点的数量集合;
权重值集合获取单元,用于获取在所述理解依赖模型中,与所述目标未理解节点距离所述距离集合中不同距离所对应的已理解节点的权重值集合;
认知优先度计算单元,用于利用所述距离集合、所述数量集合和所述权重值集合,计算每个未理解节点的认知优先度。
CN201610680665.0A 2016-08-17 2016-08-17 基于压扁控制流认知优先度驱动的程序理解方法及系统 Expired - Fee Related CN106095470B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610680665.0A CN106095470B (zh) 2016-08-17 2016-08-17 基于压扁控制流认知优先度驱动的程序理解方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610680665.0A CN106095470B (zh) 2016-08-17 2016-08-17 基于压扁控制流认知优先度驱动的程序理解方法及系统

Publications (2)

Publication Number Publication Date
CN106095470A true CN106095470A (zh) 2016-11-09
CN106095470B CN106095470B (zh) 2019-08-09

Family

ID=58069492

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610680665.0A Expired - Fee Related CN106095470B (zh) 2016-08-17 2016-08-17 基于压扁控制流认知优先度驱动的程序理解方法及系统

Country Status (1)

Country Link
CN (1) CN106095470B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908648A (zh) * 2018-09-17 2020-03-24 北京龙码科技有限公司 一种人工智能辅助图形化编程教学方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214097A (zh) * 2011-06-09 2011-10-12 浙江工业大学 一种基于函数ns图的程序理解的结果可视化方法
CN102713839A (zh) * 2009-10-08 2012-10-03 埃德图加拿大公司 用于动态函数调用系统中的积极自我修改的系统和方法
US20120291004A1 (en) * 2011-05-10 2012-11-15 Tata Consultancy Services Limited System and method for analysis of a large code base using partitioning
CN103440122A (zh) * 2013-07-12 2013-12-11 哈尔滨工业大学 一种新的使用逆向扩展控制流图的静态函数识别方法
EP2937803A1 (en) * 2014-04-23 2015-10-28 Nxp B.V. Control flow flattening for code obfuscation where the next block calculation needs run-time information
CN105117621A (zh) * 2014-04-23 2015-12-02 恩智浦有限公司 代码混淆的控制流平展化

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102713839A (zh) * 2009-10-08 2012-10-03 埃德图加拿大公司 用于动态函数调用系统中的积极自我修改的系统和方法
US20120291004A1 (en) * 2011-05-10 2012-11-15 Tata Consultancy Services Limited System and method for analysis of a large code base using partitioning
CN102214097A (zh) * 2011-06-09 2011-10-12 浙江工业大学 一种基于函数ns图的程序理解的结果可视化方法
CN103440122A (zh) * 2013-07-12 2013-12-11 哈尔滨工业大学 一种新的使用逆向扩展控制流图的静态函数识别方法
EP2937803A1 (en) * 2014-04-23 2015-10-28 Nxp B.V. Control flow flattening for code obfuscation where the next block calculation needs run-time information
CN105117621A (zh) * 2014-04-23 2015-12-02 恩智浦有限公司 代码混淆的控制流平展化

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
殷曼曼: "认知容易度驱动的程序理解过程", 《万方学位论文数据库》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908648A (zh) * 2018-09-17 2020-03-24 北京龙码科技有限公司 一种人工智能辅助图形化编程教学方法及系统

Also Published As

Publication number Publication date
CN106095470B (zh) 2019-08-09

Similar Documents

Publication Publication Date Title
Pourmohamadi et al. LINKOgrapher: An analysis tool to study design protocols based on FBS coding scheme
CN112598121A (zh) 一种面向深度学习编译器的高效算子优化方法
Lucentini et al. A comparison among cognitive architectures: A theoretical analysis
Belacel et al. A Binary Integer Programming Model for Global Optimization of Learning Path Discovery.
CN106095470B (zh) 基于压扁控制流认知优先度驱动的程序理解方法及系统
Titov et al. Resplit: Improving the structure of Jupyter notebooks by re-splitting their cells
CN114444777B (zh) 用于车辆碳排量识别的人工智能模型应用系统
Hofmann et al. Applying inductive program synthesis to induction of number series a case study with IGOR2
Trabelsi New structure learning algorithms and evaluation methods for large dynamic Bayesian networks
CN111820922B (zh) 一种面向幼儿计算思维的测评方法
Lill et al. Model-based testing of autonomous systems based on coloured petri nets
Wijendra et al. Automated tool for the calculation of cognitive complexity of a software
CN103853554A (zh) 一种软件重构位置确定方法及装置
Dwivedi et al. Applying software metrics for the mining of design pattern
Arora et al. A Review on Learning Planning Action Models for Socio-Communicative HRI
Dai et al. The construction of learning diagnosis and resources recommendation system based on knowledge graph
Langley Computational discovery of scientific models: guiding search with knowledge and data
Monsalve et al. Think Aloud Protocol and Decision Tree for Driver Behavior Modeling at Roundabouts
CN105678320A (zh) 一种贝叶斯网络中基于矩阵分解的数据状态化方法
Zjavka Generalization of patterns by identification with polynomial neural network
Darwiche A differential approach to inference in Bayesian networks
Smith et al. Mathematical psychology.
CN116127050B (zh) 意见挖掘方法、电子设备及计算机可读存储介质
Saxena et al. Decisively: Application of quantitative analysis and decision science in agile requirements engineering
Bila et al. Knowledge discoveries and emergent synthesis in conceptual ReDesign process

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190809