Crates.io | pulsar-frontend |
lib.rs | pulsar-frontend |
version | 0.0.1 |
source | src |
created_at | 2024-06-08 22:01:48.958357 |
updated_at | 2024-06-11 18:25:21.217891 |
description | A high-level programming language for building hardware accelerators |
homepage | https://github.com/ethanuppal/pulsar/tree/main |
repository | https://github.com/ethanuppal/pulsar/tree/main |
max_upload_size | |
id | 1265978 |
size | 94,234 |
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.
pulsar-lang
: Compiler driverpulsar-utils
: Utilities for the pulsar-*
cratespulsar-frontend
: Parser/AST and type checkingpulsar-ir
: Structured and unstructured IRpulsar-backend
: Target emission, e.g., Verilog (via calyx)