1 unstable release
0.0.1 | Jun 11, 2024 |
---|---|
0.0.0 |
|
#14 in #pulsar
225KB
5K
SLoC
pulsar
Pulsar is a high-level programming language for building hardware accelerators. Currently, I am working toward implementing a calyx backend. It is currently a very vanilla language because I have not yet determined how it should specialize (but all ADLs in practice are DSLs).
The syntax is a very blatant clone of Swift's with some modifications, and it's also very much a WIP.
func increment(x: Int) -> Int {
return x + 1
}
func main() {
let input = [1, 2, 3, 4]
let output = map<1>(increment, input)
}
The compiler is tested e2e via verilator, a hardware simulation tool.
Crates
pulsar-lang
: Compiler driverpulsar-utils
: Utilities for thepulsar-*
cratespulsar-frontend
: Parser/AST and type checkingpulsar-ir
: Structured and unstructured IRpulsar-backend
: Target emission, e.g., Verilog (via calyx)
Dependencies
~7–18MB
~205K SLoC