1 个不稳定版本
0.0.1 | 2024 年 6 月 11 日 |
---|---|
0.0.0 |
|
#11 在 #pulsar
在 3 crates 中使用
130KB
3.5K SLoC
pulsar
Pulsar 是一种用于构建硬件加速器的高级编程语言。目前,我正在努力实现一个 calyx 后端。它目前是一个非常简单的语言,因为我还没有确定它应该如何专业化(但所有 ADL 实际上都是 DSL)。
语法是 Swift 的明显克隆,并进行了一些修改,它也是一个非常多的 WIP。
func increment(x: Int) -> Int {
return x + 1
}
func main() {
let input = [1, 2, 3, 4]
let output = map<1>(increment, input)
}
编译器通过 verilator(一个硬件仿真工具)进行了端到端测试。
Crates
pulsar-lang
: 编译器驱动程序pulsar-utils
:pulsar-*
crates 的实用工具pulsar-frontend
: 解析器/AST 和类型检查pulsar-ir
: 结构化和非结构化 IRpulsar-backend
: 目标输出,例如 Verilog(通过 calyx)
依赖项
~0–9.5MB
~42K SLoC