Skip to content
/ braid Public

a multi-stage heterogeneous programming language applied to real-time 3D graphics

License

Notifications You must be signed in to change notification settings

cucapra/braid

Repository files navigation

Braid: a Static Staging Compiler

build status

Braid is an experimental programming language for heterogeneous systems based on multi-stage programming. See the documentation for an introduction to the language.

The compiler is written in TypeScript and runs on Node. You can build the compiler and run a few small programs by typing make test (if you have npm). Check out the code documentation for an introduction to the compiler's internals.

Using and Hacking

To get started, make sure you have Node and clone the repository. The included Makefile should build everything, or you can type these commands to use npm to get things ready:

$ npm install
$ npm run build

The latter produces the parser and compiles the source code with TypeScript's tsc command. Then, you might want to run:

$ npm link

to install an alias to the braid command. Then, type:

$ braid --help

to see some options. In particular, run braid example.ss to interpret programs; run braid -c example.ss to compile programs to JavaScript; and run braid -cx example.ss to compile programs and then execute the resulting JavaScript.

Credits

This is a project of Capra at Cornell. The license is MIT.

Adrian Sampson started this project in collaboration with Kathryn S McKinley and Todd Mytkowicz at Microsoft Research, where it was released as open source. It has since been improved by Richie Henwood, Eric Lin, and Yiteng Guo.