资料介绍
软件简介
Build→It 是一个轻量级的基于类型的 C++ Multi-stage programming 框架。可以让你在几乎不了解编译器的情况下轻松实现领域特定语言(domain-specific languages,DSL)。
除了使用运算符重载提取表达式和语句外,该工具还支持提取丰富的数据相关的控制流,如 if-then-else 条件和 for 和 while 循环,并使用新颖的重执行策略来探索程序中的所有控制流路径。
Build→It turns -
templatedyn_var power_f(BT base, ET exponent) { dyn_var res = 1, x = base; while (exponent > 1) { if (exponent % 2 == 1) res = res * x; x = x * x; exponent = exponent / 2; } return res * x; } ... int power = 15; context.extract_function_ast(power_f , static_var >, "power_15", power); ... int base = 5; context.extract_function_ast(power_f , dyn_var >, "power_5", base); ...
into -
int power_15 (int arg0) { int var0 = arg0; int var1 = 1; int var2 = var0; var1 = var1 * var2; var2 = var2 * var2; var1 = var1 * var2; var2 = var2 * var2; var1 = var1 * var2; var2 = var2 * var2; int var3 = var1 * var2; return var3; } int power_5 (int arg1) { int var0 = arg1; int var1 = 1; int var2 = 5; while (var0 > 1) { if ((var0 % 2) == 1) { var1 = var1 * var2; } var2 = var2 * var2; var0 = var0 / 2; } int var3 = var1 * var2; return var3; }
Build→It 使用纯基于库的方法,并且不需要任何特殊的编译器修改,这使得它具有极高的可移植性,并且易于集成到现有的代码库中。使用 Build→It 很简单,只需包含一些头文件,并针对 Build→It 库进行链接。
Build→It 使用声明的变量和表达式类型来确定绑定时间。添加了 2 个新的通用类型 -static_var 和 dyn_var,使用户程序可以分为 2 个阶段。这些类型可以任意嵌套以产生更多阶段的代码。
什么是 multi-stage programming,以及为什么 multi-stage programming 对高性能 DSL 很重要?具体可查看官方发表的一篇论文。
- 如何创建和使用LabVIEW中的LLB文件 0次下载
- 基于机器视觉的非特定物体智能抓取系统 26次下载
- DSP载波移相控制C语言源代码下载 57次下载
- EE-192:使用C语言在Blackfin®处理器上创建中断驱动系统
- 基于深度学习的自然语言处理对抗样本模型 39次下载
- Visual C++和MFC创建的应用程序基础知识 0次下载
- allegro与PADS的区别及创建PCB封装的步骤 67次下载
- 使用单片机实现双色点阵显示特定图形的C语言程序免费下载 11次下载
- 基于SPESC到目标程序语言的智能合约系统框架 15次下载
- C语言接口与实现创建可重用软件的技术PDF电子书免费下载 18次下载
- 如何使用VS2013做C语言编译器的创建方法详细资料说明 8次下载
- 《C语言接口与实现:创建可重用软件的技术》电子教材免费下载 32次下载
- Verilog语言数字系统设计教程的详细资料免费下载 0次下载
- AN1246中文手册之如何在Microchip图形库中创建控件
- 视觉语言如何用来通过简单地绘制算法的框图来快速地创建嵌入式系统 8次下载
- fpga语言是什么?fpga语言与c语言的区别 981次阅读
- 大语言模型推断中的批处理效应 667次阅读
- 用VHDL语言创建一个8位算术逻辑单元(ALU) 2139次阅读
- systemverilog的决策语句if…else语句介绍 3290次阅读
- 视觉语言导航领域任务、方法和未来方向的综述 4416次阅读
- 用10行 BASIC 语言创建很棒的游戏 1899次阅读
- 如何在Vitis HLS中使用C语言代码创建AXI4-Lite接口 1872次阅读
- C语言中函数的创建以及使用 5817次阅读
- 以Python语言为例探讨语音内存管理方式 565次阅读
- 简要介绍einsum表示法的概念,通过真实例子展示了einsum的表达力 1.2w次阅读
- 学习开发环境和编程语言:汇编语言和C语言的比较 9081次阅读
- scala语言主要应用领域详解 1.9w次阅读
- 利用C语言创建windows窗口的程序解析 1.1w次阅读
- c语言的应用领域有哪些 3.2w次阅读
- 浅谈领域特定语言 4125次阅读
下载排行
本周
- 1A7159和A7139射频芯片的资料免费下载
- 0.20 MB | 55次下载 | 5 积分
- 2PIC12F629/675 数据手册免费下载
- 2.38 MB | 36次下载 | 5 积分
- 3PIC16F716 数据手册免费下载
- 2.35 MB | 18次下载 | 5 积分
- 4dsPIC33EDV64MC205电机控制开发板用户指南
- 5.78MB | 8次下载 | 免费
- 5STC15系列常用寄存器汇总免费下载
- 1.60 MB | 7次下载 | 5 积分
- 6模拟电路仿真实现
- 2.94MB | 4次下载 | 免费
- 7PCB图绘制实例操作
- 2.92MB | 2次下载 | 免费
- 8零死角玩转STM32F103—指南者
- 26.78 MB | 1次下载 | 1 积分
本月
- 1ADI高性能电源管理解决方案
- 2.43 MB | 452次下载 | 免费
- 2免费开源CC3D飞控资料(电路图&PCB源文件、BOM、
- 5.67 MB | 141次下载 | 1 积分
- 3基于STM32单片机智能手环心率计步器体温显示设计
- 0.10 MB | 137次下载 | 免费
- 4A7159和A7139射频芯片的资料免费下载
- 0.20 MB | 55次下载 | 5 积分
- 5PIC12F629/675 数据手册免费下载
- 2.38 MB | 36次下载 | 5 积分
- 6如何正确测试电源的纹波
- 0.36 MB | 19次下载 | 免费
- 7PIC16F716 数据手册免费下载
- 2.35 MB | 18次下载 | 5 积分
- 8Q/SQR E8-4-2024乘用车电子电器零部件及子系统EMC试验方法及要求
- 1.97 MB | 8次下载 | 10 积分
总榜
- 1matlab软件下载入口
- 未知 | 935121次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420062次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233088次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183335次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73810次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65988次下载 | 10 积分
评论
查看更多