删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

一种同步语言多线程代码自动生成工具

本站小编 Free考研考试/2022-01-02

摘要:随着安全关键系统对计算性能要求的日趋提高,能够提供更强计算能力而又减少电子设备的体积、重量和功耗的多核处理器将在安全关键领域得到广泛应用.同步语言能够表达确定性并发行为且具有精确时间语义等特性,适用于安全关键软件的建模和验证.目前,同步语言SIGNAL编译器主要支持串行代码生成,较少关注多线程代码生成.提出一种同步语言SIGNAL多线程代码生成工具.首先将SIGNAL程序转换为经过时钟演算的S-CGA中间程序;之后将S-CGA中间程序转换为时钟数据依赖图以分析依赖关系;然后对时钟数据依赖图进行拓扑排序划分,并针对划分结果提出优化算法和基于流水线方式的任务划分方法;最后将划分结果转换为虚拟多线程结构并进一步生成可执行多线程C/Java代码.通过在多核处理器上的实验,验证了所提方法的有效性.



Abstract:Multi-core processors are being widely used in safety-critical systems, due to the demands of higher computation performance when designing these systems, and strengths of multi-core processors, such as faster computation and SWaP (size, weight, and power) properties. Synchronous languages are suitable for modeling and verification of safety-critical software due to their abilities, e.g. the description of concurrency behaviors and precise timing semantics. At present, the SIGNAL compiler supports to generate the sequential code from synchronous specification. The existing studies pay a little attention to the generation of parallel code from SIGNAL specification. The paper presents a multi-threaded code generation tool for synchronous language. Firstly, the SIGNAL specification is transformed into the intermediate program S-CGA and is carried out the clock calculus. After that, the S-CGA program is transformed into CDDG (clock data dependency graph). Then, the CDDG is partitioned by topological sort, after which an optimized algorithm and a partition algorithm are respectively proposed based on pipeline-style. Finally, the partition results are transformed to VMT (virtual multi-threaded) code which is then transformed into executable multi-threaded C/Java program. The experiment running on multi-core CPUs is given to verify the effectiveness of the proposed methodology.



PDF全文下载地址:

http://jos.org.cn/jos/article/pdf/5754
相关话题/代码 语言 程序 计算 数据

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19
  • 同步数据流语言可信编译器Vélus与L2C的比较
    摘要:同步数据流语言(如Lustre、Signal)在航空、高铁、核电等安全关键领域得到广泛应用.例如,适合这些领域实时控制系统建模和开发的Scade工具就是基于一种类Lustre语言.这类语言相关开发工具,特别是编译器的安全性问题也自然受到高度关注.近年来,基于形式化验证实现可信编译器构造成为程序 ...
    本站小编 Free考研考试 2022-01-02
  • 有关时间自动机重置的若干问题的计算复杂性
    摘要:自动机的重置序列也称为同步序列,具有以下特性:有限自动机通过运行重置序列w,可从任意一个未知的或无法观测到的状态q0到达某个特定状态qw.这仅依赖于w,而与开始运行w时的状态q0无关.这一特性可用于部分可观察的复杂系统的自动恢复,而无需重启,甚至有时不能重启.基于此,重置问题自出现以来便得到关 ...
    本站小编 Free考研考试 2022-01-02
  • 软件开发活动数据集的层次化、多版本化方法
    摘要:随着开源软件的兴起及软件开发支撑工具的普及,Internet上积累了大量开放的软件开发活动数据,越来越多的实践者与研究者尝试从中获取提高软件开发效率和产品质量的洞察.为了提高数据分析的效率、方便分析结果的重现与对比,许多工作提出了构建与使用共享数据集.然而,现有软件开发活动数据集的构建过程可追 ...
    本站小编 Free考研考试 2022-01-02
  • 知识图谱数据管理研究综述
    摘要:知识图谱是人工智能的重要基石.各领域大规模知识图谱的构建和发布对知识图谱数据管理提出了新的挑战.以数据模型的结构和操作要素为主线,对目前的知识图谱数据管理理论、方法、技术与系统进行研究综述.首先,介绍知识图谱数据模型,包括RDF图模型和属性图模型,介绍5种知识图谱查询语言,包括SPARQL、C ...
    本站小编 Free考研考试 2022-01-02
  • 基于Jalangi的广告代码调用路径追踪
    摘要:随着互联网的迅猛发展,网络广告成为互联网最重要的商业模式之一.网络广告在促进互联网发展的同时,也带来了用户信息泄露、影响用户网页浏览体验等负面问题.为了对网络广告进行系统的研究,需要获取广告生成过程中完整的调用路径.由于加载到页面中的JavaScript文件量大、函数调用路径链路长、路径中的J ...
    本站小编 Free考研考试 2022-01-02
  • 基于联盟链的物联网动态数据溯源机制
    摘要:物联网动态数据安全保护的重点是拒绝非授权用户的篡改,实现对物联网动态数据操作的过程留痕和追踪溯源.为解决大量物联网设备产生的动态数据安全存储与共享问题,建立了物联网动态数据存储安全问题的数学模型,提出了用于实现操作实体多维授权与动态数据存储的双联盟链结构,设计了基于验证节点列表的共识算法,给出 ...
    本站小编 Free考研考试 2022-01-02
  • 应用区块链的数据访问控制与共享模型
    摘要:数据已成为企业的重要资产.如何在企业内部对数据的访问权限进行有效控制、在企业之间安全共享数据一直是一个挑战.区块链中的分布式账本可以从某些方面解决上述问题,但是区块链所应用的非对称加密机制仅可进行一对一的安全传输,并不满足企业内部复杂的访问控制要求.提出一种应用区块链的数据访问控制与共享模型, ...
    本站小编 Free考研考试 2022-01-02
  • 基于指令交换的代码混淆方法
    摘要:软件程序是按一定顺序排列的指令序列,指令的排列组合构成了千变万化的程序语义.指令顺序重排通常会相应地导致程序语义的变化,通过分析相邻指令序列的相对独立性,可以在不影响程序语义的前提下交换相邻指令序列,增大指令距离,改变程序特征,在一定程度上增加逆向分析代价.通过改进程序的形式化定义论证相邻指令 ...
    本站小编 Free考研考试 2022-01-02
  • 基于深度学习的程序生成与补全技术研究进展
    摘要:自动化软件开发一直是软件工程领域的研究热点.目前,互联网技术促进了开源软件和开源社区的发展,这些大规模的代码和数据成为自动化软件开发的机遇.与此同时,深度学习也在软件工程领域开始得到应用.如何将深度学习技术用于大规模代码的学习,并实现机器自动编写程序,是人工智能与软件工程领域的共同期望.机器自 ...
    本站小编 Free考研考试 2022-01-02
  • C/C++程序缺陷自动修复与确认方法
    摘要:在计算机软件中,程序缺陷不可避免且极有可能造成重大损失.因此,尽早发现并排除程序中潜在的缺陷,是学术界和工业界的普遍共识.目前的程序缺陷自动修复方法大都遵循缺陷定位、修复候选项生成、选择及验证的流程,但在修复实际程序时存在修复率低、无法保证修复结果的正确性等问题.提出了一种基于程序合成的C/C ...
    本站小编 Free考研考试 2022-01-02