华保健
- 作品数:25 被引量:63H指数:4
- 供职机构:中国科学技术大学软件学院更多>>
- 发文基金:国家自然科学基金苏州市科技计划项目国家高技术研究发展计划更多>>
- 相关领域:自动化与计算机技术文化科学更多>>
- 高阶代码消除性能比较框架的设计与实现被引量:1
- 2016年
- 函数式语言编译中,闭包变换和函数消除是广泛采用的高阶代码消除方法。为了提高函数式语言的运行效率,针对函数式语言编译阶段的高阶代码消除过程对目标代码效率的影响,设计并实现了一种函数式语言编译框架。该框架采用了菱形的架构,平行地使用了闭包变换与函数消除两种高阶代码消除方法。设计了一种具有代表性的函数式语言——FUN语言,并以FUN语言为基础,给出了比较框架的一个完整实现。通过该系统,对闭包变换与函数消除的效率影响进行对比实验,选取具有典型特征的测试例,分别从生成代码的规模和运行效率方面对闭包变换与函数消除两种方法的结果进行比较。实验结果表明,与闭包变换相比,使用函数消除方式所得的目标代码量更少,最多可减少33.76%的目标代码量;并且运行效率更高,最多可提高69.51%。
- 赵迪华保健朱洪军
- 关键词:函数式语言
- 面向深度学习算子的循环不变式外提算法
- 2023年
- TVM是一个深度学习编译器,支持将TVM的领域专用语言即张量表达式定义的算子编译生成目标平台的代码,并在高级中间表示TVM IR上进行一系列优化。张量表达式对算子执行循环变换,产生与循环迭代变量相关的复杂表达式的计算,在多层嵌套循环内这些计算包含了大量的循环不变式。然而,传统的循环不变量外提技术不能判断不变量外提是否能带来额外收益,无法发现操作数顺序不同的循环不变表达式,不能处理嵌套的条件表达式,并且与目标平台编译器优化存在冲突等。由于这些挑战,传统的循环不变量外提算法无法直接用于深度学习编译器的优化,提出了一种融合深度学习代价函数和启发式策略的循环不变量外提算法。该算法基于深度学习编译器的高层中间表示,通过调整操作数顺序和简化嵌套条件表达式等方法规范化表达式。为了衡量优化的收益,在结合TVM IR和目标平台的特点的基础上,提出了一个新的面向深度学习的不变式外提代价指标函数。在开源编译器TVM 0.7版本上,通过新增优化遍的形式,具体实现了所介绍的算法以及代价函数。为评测算法的有效性,在Tesla P4的图形处理器(GPU)平台上对TVM TOPI的测试算子集中27个典型算子不同输入规模的511个测例进行了测试。实验结果表明47.6%的算子性能得到提升,最大加速比大于40.0%。
- 梁佳利华保健吕雅帅苏振宇
- 关键词:领域专用语言
- 一种命令式风格的面向对象语言语义框架
- 2013年
- 面向对象语言在软件工程实践中有着广泛的应用。为面向对象语言定义严格的语义有助于理解面向对象语言的本质特征,对验证软件、提高软件系统可靠性等也具有重要意义。给出了一种新的面向对象语言的语义框架,该框架基于命令式的风格,具有操作语义和类型规则;证明了该语义框架的类型安全定理。
- 华保健高鹰
- 关键词:面向对象语言操作语义语义框架
- Python虚拟机本地代码的安全性实证研究被引量:4
- 2022年
- Python语言及生态是机器学习等人工智能系统的重要基础,已成为目前主流机器学习框架如TensorFlow,PyTorch,Caffe,CNTK等的首选实现语言。Python虚拟机本身的安全性和可靠性对这些机器学习框架的安全性提供了基础保障,但Python虚拟机CPython内部包含大量由C/C++构建的本地代码,其安全漏洞模式尚未被充分研究和理解,系统的漏洞分析和修复技术也亟待研究。为此,提出了一个对Python虚拟机本地代码的分析研究框架PyGuard,该框架使用静态程序分析技术对虚拟机中的本地代码进行安全性扫描和分析;利用该框架对Python语言的官方虚拟机CPython进行了安全性实证研究,实验结果发现了最新版本的虚拟机(Cpython 3.9)中45个安全漏洞,表明了该框架对实际Python虚拟机本地代码安全性分析的有效性;基于该框架和安全性进行了实证分析,分析了虚拟机本地代码中的安全漏洞模式,给出了对安全漏洞的修复建议。
- 蒋成满华保健樊淇梁朱洪军徐波潘志中
- 关键词:安全漏洞
- 处理指针相等关系不确定的指针逻辑
- 2010年
- 为类C小语言PointerC设计的指针逻辑是Hoare逻辑的一种扩展,可用来对指针程序进行精确的指针分析,以支持指针相等关系确定的程序的安全性验证.通过增加相等关系不确定的指针类型访问路径集合,可扩展这种指针逻辑,使得扩展后的指针逻辑可以应用于有向图等指针相等关系不确定的抽象数据结构上的指针程序性质证明.
- 梁红瑾张昱陈意云李兆鹏华保健
- 基于语义的恶意软件判定器框架
- 2008年
- 目前代码迷惑技术已经成为构造恶意软件变体的主要方式,大量出现的病毒变体使得传统基于程序文本特征的病毒排查工具的防护作用大大降低.本文提出一种新的基于语义的恶意软件变体判定框架,为了确定一个程序是否是某种恶意软件的变体:首先基于符号执行收集程序语义状态,然后通过证明语义之间是否满足变体关系来确定该程序是否是恶意软件的变体.本框架能够识别经代码迷惑变换后得到的程序是属于变换前程序的变体,从而可以减少对病毒数据库的更新.最后,通过一个实现了该框架的原型系统来说明基于语义的恶意软件判定器框架的可行性.
- 高鹰陈意云华保健
- 关键词:代码迷惑
- Rust语言安全研究综述被引量:1
- 2023年
- Rust是为了解决系统编程领域的安全性问题,而设计的一门面向系统编程的兼具类型安全、内存安全和并发安全的新型程序设计语言,强调安全性和高性能,已经在操作系统内核、Web浏览器、网络协议栈、数据库和区块链等底层软件系统的构建中得到了越来越广泛的应用。现有研究表明,尽管Rust的设计目标是保证安全性,但其自身仍然存在许多安全问题。作为一门系统编程语言,Rust的安全性直接影响到基于Rust开发的软件系统的安全性。随着Rust的广泛应用,对Rust语言安全的研究显得尤为重要。Rust语言安全研究正在成为研究热点,并且在近几年已经取得了较大研究进展。本综述基于该研究领域已经公开发表的46篇研究论文,对该领域的相关研究进行了系统整理、分析和总结:首先,研究分析了Rust的核心安全特性,包括函数式编程范式、强多态类型系统、基于所有权模型的自动内存管理、对非安全代码的显式标记和隔离;其次,提出了Rust语言安全研究领域的分类学,将已有研究分为安全实证研究、漏洞检测研究、安全增强研究和形式化验证研究四个热点方向,并分别对这四个方向上的相关研究进行了综述、深入分析和总结,同时分析了四个研究方向的内在联系;最后,指出了该研究领域的待解决的科学问题,并对未来可能的研究方向进行了展望,提出了四个潜在的研究方向,以期为相关领域的研究者提供有价值的参考。
- 胡霜华保健欧阳婉容樊淇梁
- 一种Android应用加固方案被引量:4
- 2016年
- Android应用安全问题日益突出,大量Android应用遭受逆向、非法复制及恶意代码注入等攻击。对Android应用安全机制进行研究,在分析静态逆向和动态逆向攻击原理的基础上,提出一种移动应用加固保护方案。方案综合运用加壳、反调试、签名校验及反编译等应用加固技术,对目标应用进行加固;经测试,该加固方案能够很好地对抗常见的静态分析和动态分析等逆向攻击。
- 朱洪军陈耀光华保健陈灏
- 关键词:加壳
- 汇编代码验证中的形式规范自动生成被引量:3
- 2008年
- 与传统的高级语言程序验证相比,汇编代码验证中所需要的形式规范往往比较复杂,通常的做法是要求程序员手写形式规范,或是牺牲形式规范的表达能力以期能够自动生成规范.本文提出一种能够自动生成形式规范的方法,该方法依托一个出具证明的编译器自动生成汇编级形式规范,从而减轻程序员的负担.使用该方法生成的规范比现有的其他方法自动生成的规范具有更强的表达能力.文章主要描述该方法在出具证明编译器中的实现.
- 葛琳陈意云华保健李兆鹏刘诚
- 关键词:出具证明编译器
- 一个经过证明的类型化汇编语言的类型检查器
- 2008年
- 编程语言类型系统的类型安全性可以保证程序运行时满足基本安全属性,包括控制流安全,内存安全等.类型化编程语言都需要一个类型检查器来检查程序的良类型性,因此编程语言的具体实现是否能保证类型安全性,还依赖类型检查器的可靠性.本文给出一种类型化汇编语言,然后给出相应的类型检查器,并证明了此类型检查器的可靠性,从而保证经过类型检查的汇编程序的安全性.文本的所有工作,包括类型化汇编语言、类型检查器以及相关定理证明,均已在证明辅助工具Coq中实现.本文方法也可用于证明类型化高级语言的类型检查器的可靠性.
- 郭宇陈意云华保健李兆鹏
- 关键词:汇编语言