题名 编译基础设施中多目标编译技术探讨
被引量:6
1
作者
戴桂兰
张素琴
田金兰
蒋维杜
机构
清华大学计算机科学与技术系
出处
《计算机研究与发展》
EI
CSCD
北大核心
2003年第2期312-317,共6页
基金
国家自然科学基金 (60 0 83 0 0 4)
文摘
从编译基础设施的基本概念出发 ,着重讨论了编译器后端构造所涉及的关键技术 ;比较全面地总结并评述了具有代表性的公共编译设施及其采用的中间表示技术、后端构造技术和相关工具 ;
关键词
编译基础设施
多目标编译
嵌入式系统
机器描述
代码生成
中间表示
编译器
编译程序
Keywords
embedded systems
compiler infrastructure
machine description
code generation
intermediate representation
分类号
TP314
[自动化与计算机技术—计算机软件与理论]
题名 基于图神经网络的代码漏洞检测方法
被引量:7
2
作者
陈皓
易平
机构
上海交通大学网络空间安全学院
出处
《网络与信息安全学报》
2021年第3期37-45,共9页
基金
国家重点研发计划(2019YFB1405000,2017YFB0802900)。
文摘
使用神经网络进行漏洞检测的方案大多基于传统自然语言处理的思路,将源代码当作序列样本处理,忽视了代码中所具有的结构性特征,从而遗漏了可能存在的漏洞。提出了一种基于图神经网络的代码漏洞检测方法,通过中间语言的控制流图特征,实现了函数级别的智能化代码漏洞检测。首先,将源代码编译为中间表示,进而提取其包含结构信息的控制流图,同时使用词向量嵌入算法初始化基本块向量提取代码语义信息;然后,完成拼接生成图结构样本数据,使用多层图神经网络对图结构数据特征进行模型训练和测试。采用开源漏洞样本数据集生成测试数据对所提方法进行了评估,结果显示该方法有效提高了漏洞检测能力。
关键词
漏洞检测
图神经网络
控制流图
中间表示
Keywords
vulnerability detection
graph neural network
control flow graph
intermediate representation
分类号
TP309
[自动化与计算机技术—计算机系统结构]
题名 带类型恢复的编译器源源翻译技术
被引量:7
3
作者
米伟
李玉祥
陈莉
冯晓兵
张兆庆
机构
中国科学院计算技术研究所系统结构重点实验室
中国科学院研究生院
出处
《计算机研究与发展》
EI
CSCD
北大核心
2010年第7期1145-1155,共11页
基金
自然科学基金重点项目(60633040)
国家"九七三"重点基础研究发展计划基金项目(2005CB321600)
文摘
源源翻译是使编译器的分析和优化可重定向的一种重要方式.它被广泛用来支持并行语言扩展或者各种体系结构无关的优化,并且可以帮助程序员进行正确性或者性能的调试.在多核/众核时代,程序分析和优化倾向于让用户更多地参与,这种平台无关而且用户友好的代码生成方式也越来越受到欢迎.在简单的编译器中添加源源翻译的支持很容易,但在实现了复杂的程序分析和激进的优化的编译器中,却很少有编译器提供健壮的源源翻译支持.优化对程序结构的改变是造成翻译困难的首要原因.结合大量出错实例对优化给源源翻译带来的困难进行分析,提出了一套基于类型恢复的翻译技术,并在Open64编译器中实现了这种方法.通过supertest和spec2000测试集的测试,验证了这种方法对源源翻译的健壮性有很大改善.该方法的实现模块集成在源源翻译器内,与编译器各种分析优化模块独立,所以该方法容易移植到其他编译器中.
关键词
编译器
源源翻译
可重定向
中间表示
类型不一致
类型恢复
Keywords
compiler source-to-source
retargetable
intermediate representation
type Inconsistency
type restoration
分类号
TP314
[自动化与计算机技术—计算机软件与理论]
题名 基于控制流和数据流分析的内存拷贝类函数识别技术
被引量:2
4
作者
尹小康
芦斌
蔡瑞杰
朱肖雅
杨启超
刘胜利
机构
数学工程与先进计算国家重点实验室(信息工程大学)
出处
《计算机研究与发展》
EI
CSCD
北大核心
2023年第2期326-340,共15页
基金
科技委基础加强重点项目(2019-JCJQ-ZD-113)。
文摘
内存错误漏洞仍是当前网络攻击中造成危害最严重的漏洞之一.内存错误漏洞的产生往往与对内存拷贝类函数的误用有关.目前针对内存拷贝类函数的识别主要借助于符号表和代码特征模式匹配,具有较高的误报率和漏报率,并且适用性较差.提出了一种内存拷贝类函数识别技术CPYFinder(copy function finder).该技术在内存拷贝类函数控制流特征的基础上,将二进制代码转换为中间语言表示VEX IR(intermediate representation)进行数据流的构建和分析,根据内存拷贝类函数在数据流上的特征进行识别.该技术能够在较低的运行时间下对多种指令集架构(x86,ARM,MIPS,PowerPC)的二进制程序中的内存拷贝类函数进行识别.实验结果表明,相比于最新的工作BootStomp和SaTC,CPYFinder在对内存拷贝类函数识别上具有更好的表现,在精准率和召回率上得到更好的平衡,并且运行时间与SaTC几乎相等,仅相当于BootStomp耗时的19%.此外,CPYFinder在漏洞函数识别上也具有更好的表现.
关键词
静态分析
数据流分析
中间表示
内存拷贝函数
函数识别
Keywords
static analysis
data flow analysis
intermediate representation
memory copy function
function identification
分类号
TP309
[自动化与计算机技术—计算机系统结构]
题名 二进制程序安全缺陷静态分析方法的研究综述
被引量:4
5
作者
田硕
梁洪亮
机构
中国科学院软件研究所
出处
《计算机科学》
CSCD
北大核心
2009年第7期8-14,共7页
基金
863计划重点项目(2007AA010601)
国家自然科学基金(60673022)
北京市科委项目(Z08000102000801)资助
文摘
对现有二进制程序安全缺陷静态分析方法进行了综述和分析,提出了整个程序分析过程中的关键问题以及二进制程序安全分析的主要研究方向。通过对二进制程序缺陷静态分析流程的总结,发现二进制程序信息恢复是整个分析过程的关键,构造内容丰富的、通用的中间表示是二进制程序缺陷分析的重要研究方向。
关键词
二进制程序
静态分析
安全缺陷
中间表示
反汇编
Keywords
Binary code, Static analysis, Security vulnerability, intermediate representation , Disassemble
分类号
TP312
[自动化与计算机技术—计算机软件与理论]
题名 面向多源异构数据库的SQL解析与转换方法研究
被引量:1
6
作者
练金栋
陈志
岳文静
赵培
吕伟初
机构
南京邮电大学计算机学院
南京邮电大学通信与信息工程学院
金篆信科有限责任公司
出处
《软件导刊》
2023年第12期124-131,共8页
基金
江苏省重点研发计划(社会发展)项目(BE2019739)
中兴通讯产学研合作基金项目(2021H2ZTE05-01)。
文摘
传统的单一数据库模式难以适应如今多样化的数据管理需求。如何将多个异构独立的数据库进行集成,对数据库系统进行整体控制和协同操作成为研究热点。针对此问题进行面向多源异构数据库的SQL解析与转换方法研究,通过建立通用的中间表示模型,对异构数据库请求进行语法树解析、语义分析与模型转换,实现了不同数据库之间的互操作。在基于TPC-H基准测试数据集的功能测试中,测试系统对数据类型和语法操作的支持度达到100%。在性能测试中,测试系统在跨平台的增删改查操作时间上,较官方工具分别快了13.1 ms、8.8 ms、22.5 ms与2.3ms。实验验证了该方法的正确性与可行性。
关键词
异构数据库
中间表示
语法解析
语法转换
Keywords
heterogeneous database
intermediate representation
syntax parsing
grammar transformation
分类号
TP391
[自动化与计算机技术—计算机应用技术]
题名 异构计算并行编程模型综述
被引量:5
7
作者
邬江兴
祁晓峰
高彦钊
机构
中国人民解放军战略支援部队信息工程大学信息技术研究所
出处
《上海航天(中英文)》
CSCD
2021年第4期1-11,共11页
基金
国家核高基重大专项基金项目(2017ZX01030301)。
文摘
异构计算架构是目前高性能计算研究的重要领域。在异构计算架构中,不同种类的计算器件协同工作需要解决如任务调度、数据通信、存储、同步优化等问题。这些问题会对异构计算架构系统的运行性能、功耗、可靠性等指标产生重要影响。为解决异构系统的应用开发与系统优化问题,近年出现许多面向异构计算架构的并行编程模型。本文介绍异构并行编程模型的研究进展,针对异构并行计算需要解决的关键问题进行讨论,最后对异构体系架构的发展方向做出总结。
关键词
异构计算
并行编程
编程模型
中间表示
任务调度
负载均衡
Keywords
heterogeneous computing
parallel programming
programming model
intermediate representation
task scheduling
load balancing
分类号
TP338.6
[自动化与计算机技术—计算机系统结构]
题名 PLC程序控制流分析方法
被引量:5
8
作者
张晔
陆余良
机构
合肥电子工程学院
出处
《计算机应用》
CSCD
北大核心
2017年第12期3581-3585,共5页
文摘
可编程逻辑控制器(PLC)是工业控制系统的重要组成部分,控制着各类物理设备及工艺流程。无论是攻击者的恶意篡改还是内部人员的编程错误所造成的PLC控制程序错误都将严重威胁设备及人身安全。为解决该问题,提出了针对PLC程序的控制流分析方法。首先,利用flex和bison分析了源代码的词法及语法结构;其次,通过分析抽象语法树(AST)生成并优化了不含指令副作用的中间表示;最后,在中间表示的基础上划分基本块,并以此为基本单元构建了程序的控制流图。实验结果表明,所提方法能够恢复语句表形式PLC程序的控制流结构,为程序理解和安全性分析提供了基础。
关键词
可编程逻辑控制器
控制流
中间表示
程序理解
安全性
Keywords
Programmable Logic Controller (PLC)
control flow
intermediate representation
program understanding
security
分类号
N393.08
[自然科学总论]
TP312
[自动化与计算机技术—计算机软件与理论]
题名 基于双向LSTM的Java开源软件漏洞检测
被引量:4
9
作者
刘嘉华
万明
周晨曦
张攀
机构
南瑞集团有限公司(国网电力研究院有限公司)
南京南瑞信息通信科技有限公司
国家电网有限公司信息通信分公司
出处
《计算机应用与软件》
北大核心
2020年第12期322-327,共6页
基金
国家电网公司总部科技项目(SGFJXY00YJJS1800074)。
文摘
开源(Open Source)软件的使用、修改和分发不受许可证的限制,但研究表明其往往存在诸多安全漏洞。开发人员对开源软件的使用会直接影响到自身软件的安全和质量。提出了基于双向LSTM的Java开源软件漏洞检测方法:将函数抽象为包含数据依赖关系和控制依赖关系的中间表示;将中间表示映射为向量并贴上标签;运用双向LSTM训练出漏洞检测模型。实验结果表明,漏洞检测结果的准确率和召回率分别达到93.8%和90.1%,能够较为准确地检测到Java开源软件中的安全漏洞。
关键词
开源软件
漏洞检测
中间表示
双向LSTM
Keywords
Open source software
Vulnerability detection
intermediate representation
Bidirectional LSTM
分类号
TP305
[自动化与计算机技术—计算机系统结构]
题名 基于XML的译文生成系统的设计与实现
被引量:4
10
作者
刘金红
王挺
机构
国防科技大学计算机学院
出处
《计算机工程》
CAS
CSCD
北大核心
2004年第12期128-130,共3页
基金
国家"863"高技术研究发展计划基金资助项目
文摘
基于中间表示的机器翻译一般分为源语分析和译文生成两个阶段,其中译文生成就是根据中间表示中的源语信息,在目标语言模型指导和生成规则驱动下生成目标语句子。该文提出了一种基于XML中间表示的译文生成模型,基于该模型,应用XML转换技术设计并实现了ICENT汉英翻译系统中的英语生成器,重点介绍了规则系统的设计,并给出了系统实现和结果分析以及进一步的研究方向。
关键词
中间表示
机器翻译
译文生成
XML
Keywords
intermediate representation
Machine translation
Target-language generation
XML
分类号
TP391.1
[自动化与计算机技术—计算机应用技术]
题名 动态二进制翻译中的中间表示
被引量:4
11
作者
姜玲燕
梁阿磊
管海兵
机构
上海交通大学软件学院
出处
《计算机工程》
CAS
CSCD
北大核心
2009年第9期283-284,F0003,共3页
基金
国家"863"计划基金资助项目(2006AA01Z169)
国家"973"计划前期研究专项基金资助项目(2007CB316506)
国家自然科学基金资助项目(60773093)
文摘
在二进制翻译中采用中间表示,可以适当隔离不同机器平台的特点,便于二进制翻译系统的移植。提出一种VINST中间表示方法,介绍其指令集与特点,运用SSA形式化和冗余指令删除等方法对VINST进行初步优化。优化前后的性能比较结果表明,相对简单高效的方法可以弥补优化的开销,提高系统性能。
关键词
动态二进制翻译
中间表示
二进制翻译器CrossBit
Keywords
dynamic binary translation
intermediate representation
binary translator CrossBit
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
TP314
[自动化与计算机技术—计算机科学与技术]
题名 面向高性能图计算的高效高层次综合方法
被引量:4
12
作者
汤嘉武
郑龙
廖小飞
金海
机构
华中科技大学计算机科学与技术学院
大数据技术与系统国家地方联合工程研究中心(华中科技大学)
服务计算技术与系统教育部重点实验室(华中科技大学)
集群与网格计算湖北省重点实验室(华中科技大学)
出处
《计算机研究与发展》
EI
CSCD
北大核心
2021年第3期467-478,共12页
基金
国家重点研发计划项目(2018YFB1003502)
国家自然科学基金项目(61702201,61825202,61832006)。
文摘
图计算已成为大数据处理领域的主流应用,采用特定硬件加速可以显著提高图计算的性能和能效.众所周知,硬件代码的编写和验证十分耗时,尽管通用高层次综合(high level synthesis,HLS)系统允许用户使用高级语言(如C语言)特性自动生成硬件结构,但是对于图计算这种不规则算法,其仍缺乏有效的并行性和访存技术支撑,存在综合效果不理想、效率不高等突出问题.提出一种面向图计算的高效HLS方法,结合图算法嵌套循环、随机访存、数据冲突以及幂律分布等特性,采用数据流架构实现高效的并行流水线,保证处理单元的负载均衡.通过提供的编程原语,提出的方法可将通用图算法转化为模块化的数据流中间表示形式,进而映射到参数化的硬件模板.在Xilinx Virtex UltraScale+XCVU9P的实现验证了方法的正确性,不同类型的图算法在多个数据集上的实验结果表明,相比国际上通用的Spatial HLS系统,提出的方法可达到7.9~30.6倍的性能提升.
关键词
图计算
高层次综合
数据流架构
中间表示
FPGA
Keywords
graph processing
high level synthesis
dataflow architecture
intermediate representation
FPGA
分类号
TP302.1
[自动化与计算机技术—计算机系统结构]
题名 软件漏洞静态检测模型及检测框架
被引量:4
13
作者
王涛
韩兰胜
付才
邹德清
刘铭
机构
华中科技大学计算机科学与技术学院
出处
《计算机科学》
CSCD
北大核心
2016年第5期80-86,116,共8页
基金
基于任务的木马关联行为识别研究(61272033)
移动网络行为的多态聚类及其演化研究(61272405)
云计算安全基础理论与方法研究(2014CB340600)资助
文摘
软件漏洞静态分析是信息安全领域的重点研究方向,如何描述漏洞及判别漏洞是漏洞静态分析的核心问题。提出了一种用于描述和判别漏洞的漏洞静态检测模型。首先对软件漏洞的属性特征进行形式化定义,并对多种软件漏洞和其判定规则进行形式化描述;其次,针对传统的路径分析存在的状态空间爆炸问题,提出了一个新的程序中间表示——漏洞可执行路径集,以压缩程序状态空间。在该模型的基础上,设计了一个基于漏洞可执行路径集的软件漏洞静态检测框架,利用定义的漏洞语法规则求解漏洞可执行路径集上的漏洞相关节点集,利用漏洞判定规则对漏洞相关节点集进行判别得出漏洞报告。实验分析验证了该漏洞检测模型的正确性和可行性。
关键词
静态分析
漏洞检测
形式化描述
状态空间爆炸
中间表示
Keywords
Static analysis
Vulnerability detection
Formal description
State explosion
intermediate representation
分类号
TP311.53
[自动化与计算机技术—计算机软件与理论]
题名 面向深度学习算子的循环不变式外提算法
14
作者
梁佳利
华保健
吕雅帅
苏振宇
机构
中国科学技术大学软件学院
中科寒武纪科技股份有限公司
出处
《计算机科学与探索》
CSCD
北大核心
2023年第1期127-139,共13页
基金
中国科学技术大学研究生教育创新计划项目(2020ycjc41)。
文摘
TVM是一个深度学习编译器,支持将TVM的领域专用语言即张量表达式定义的算子编译生成目标平台的代码,并在高级中间表示TVM IR上进行一系列优化。张量表达式对算子执行循环变换,产生与循环迭代变量相关的复杂表达式的计算,在多层嵌套循环内这些计算包含了大量的循环不变式。然而,传统的循环不变量外提技术不能判断不变量外提是否能带来额外收益,无法发现操作数顺序不同的循环不变表达式,不能处理嵌套的条件表达式,并且与目标平台编译器优化存在冲突等。由于这些挑战,传统的循环不变量外提算法无法直接用于深度学习编译器的优化,提出了一种融合深度学习代价函数和启发式策略的循环不变量外提算法。该算法基于深度学习编译器的高层中间表示,通过调整操作数顺序和简化嵌套条件表达式等方法规范化表达式。为了衡量优化的收益,在结合TVM IR和目标平台的特点的基础上,提出了一个新的面向深度学习的不变式外提代价指标函数。在开源编译器TVM 0.7版本上,通过新增优化遍的形式,具体实现了所介绍的算法以及代价函数。为评测算法的有效性,在Tesla P4的图形处理器(GPU)平台上对TVM TOPI的测试算子集中27个典型算子不同输入规模的511个测例进行了测试。实验结果表明47.6%的算子性能得到提升,最大加速比大于40.0%。
关键词
深度学习编译器
领域专用语言
循环不变量外提
中间表示
Keywords
deep learning compiler
domain specific language
loop invariant code motion
intermediate representation
分类号
TP331
[自动化与计算机技术—计算机系统结构]
题名 基于LLVM编译器的节点融合优化方法
被引量:3
15
作者
胡浩
沈莉
周清雷
巩令钦
机构
郑州大学信息工程学院
中国科学技术大学计算机科学与技术学院
无锡江南计算技术研究所
出处
《计算机科学》
CSCD
北大核心
2020年第S01期561-566,595,共7页
基金
国家自然科学基金(61572444)。
文摘
LLVM是以C++编写的架构编译器的框架系统,支持多后端和交叉编译,用于优化程序的编译时间、链接时间、运行时间和空闲时间。节点融合是一种简单有效的优化方法,其基本思想为将多个节点优化为一个高效的融合节点,减少诸如指令、寄存器、时钟周期和访存等开销,以达到减少程序运行时间,提升访存效率等目的。为了提升LLVM编译器的性能,文中在LLVM编译流程的中间表示阶段和DAG合并阶段、指令选择阶段提出了节点融合优化方法。在国产平台申威处理器下,以CLANG和FLANG为编译器前端,LLVM为编译器后端,基于SPEC CPU2006测试集进行了评估,实验结果表明,节点融合优化有利于提高编译器性能和减少程序运行时间,优化后最大加速比为1.59,平均加速比为1.13。
关键词
LLVM
节点融合
中间表示
DAG合并
指令选择
国产平台
Keywords
LLVM
Node fusion
intermediate representation
DAG combine
Instruction selection
Domestic platform
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
题名 程序自动并行化系统中IR的面向对象设计
被引量:3
16
作者
张瑜
黄波
朱传琪
机构
复旦大学并行处理研究所
出处
《计算机工程》
CAS
CSCD
北大核心
1999年第11期5-7,共3页
文摘
从构造一个高性能的程序自动并行化系统的需求出发,介绍了程序自动并行化系统AGASSIZ中IR(IntermediateRepresentation)的设计原则与设计方法,阐明了此种IR的设计给整个程序自动并行化系统的设计所带来的便利。
关键词
程序自动并行化
IR
面向对象
并行编译
Keywords
Automatic parallelizer
intermediate representation
Object oriented
分类号
TP314
[自动化与计算机技术—计算机软件与理论]
题名 基于可执行代码中间表示的控制流分析
被引量:2
17
作者
窦增杰
王震宇
陈楠
王瑞敏
田佳
机构
解放军信息工程大学信息工程学院
出处
《计算机工程》
CAS
CSCD
北大核心
2010年第21期31-33,36,共4页
基金
国家"863"计划基金资助项目(2007AA01Z483)
河南省高新领域重点攻关基金资助项目(082102210011)
文摘
为准确刻画程序的控制流和正确地提取程序控制结构,给出可执行代码控制流分析的整体架构和算法,阐述可执行代码反汇编结果的抽象表示、程序控制流构造等技术。反汇编结果抽象表示采用简化汇编语言中间表示(SAIR)以保证分析的简洁性和严密性。基于SAIR给出程序控制流构造函数,设计程序控制流构造算法并给出分析实例。
关键词
逆向分析
中间表示
控制流
抽象表示
Keywords
reverse analysis
intermediate representation
control flow
abstract representation
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
题名 基于融合编译的软件多样化保护方法
被引量:2
18
作者
熊小兵
舒辉
康绯
机构
信息工程大学
出处
《网络与信息安全学报》
2020年第6期13-24,共12页
基金
国家重点研发计划(2016YFB08011601)。
文摘
针对现有主流保护方法存在的特征明显、模式单一等问题,以LLVM开源编译框架为基础,提出了一种基于融合编译的软件多样化保护方法,该方法将目标软件进行随机化加密处理,并在编译层面与掩护软件进行深度融合,通过内存执行技术,将加密后的目标软件进行解密处理,进而在内存中以无进程的形式执行,利用掩护代码的多样性、融合策略的随机性来实现目标软件的多样化保护效果。选取了多款常用软件作为测试集,从资源开销、保护效果、对比实验等多个角度对所提方法进行了实例测试,从测试结果可以看出,所提方法资源开销较小,相较于混淆、加壳等传统方法,所提方法在抗静态分析、抗动态调试等方面具有较大优势,能有效对抗主流代码逆向分析和破解手段。
关键词
软件保护
多样化
融合编译
内存执行
底层虚拟机
中间表示
Keywords
software protection
diversification
fusion compilation
memory execution
LLVM
intermediate representation
分类号
TP393
[自动化与计算机技术—计算机应用技术]
题名 Open64源源翻译流程研究
被引量:2
19
作者
高伟
李骁
赵博
机构
信息工程大学
[
数学工程与先进计算国家重点实验室
出处
《信息工程大学学报》
2013年第5期612-618,共7页
基金
国家科技重大专项资助项目(2009ZX01036)
文摘
源源翻译是一种有用的编译基础设施,它将高级语言程序转换为语义等价的可再编译的高级语言程序。越来越多的编译器包含源源翻译模块。和其它模块相比,Open64源源翻译模块还不够健壮。为了更好地解决源源翻译过程中出现的问题,首先研究了Open64的中间表示whirl,然后研究了Open64的源源翻译流程,最后通过测试说明源源翻译的重要性。
关键词
Open64
源源翻译
中间表示
Keywords
Open64
source to source translation
intermediate representation
分类号
TP314
[自动化与计算机技术—计算机软件与理论]
题名 中间表示设计中基于链表的多寄存器操作数处理
20
作者
刘章林
石学林
冯晓兵
张兆庆
机构
中国科学院计算技术研究所体系结构室
出处
《计算机工程》
EI
CAS
CSCD
北大核心
2006年第1期25-27,共3页
基金
国家"863"计划基金资助项目(2002AA1Z2104)
文摘
以简单但具有代表性的配对寄存器为例,分析了编译器中间表示设计中使用配对信息所需包含的要点。结合编译器中数据流分析,指令调度和寄存器分配的需求,进一步提出了一种基于链表结构的中间表示及构造算法。所提出的表示方法同时考虑到编译器的可移植性,以便于在不同编译器中实现。
关键词
中间表示
多寄存器操作数
配对寄存器
链表
Keywords
intermediate representation
Multi-register operands
Pair registers
Chain
分类号
TP391
[自动化与计算机技术—计算机应用技术]