资料介绍
软件简介
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次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论