src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
demo.hal | ||
index.html | ||
readme.md | ||
test.wasm | ||
test.wat |
Halcyon Compiler
The Halcyon language is a strongly typed compiled language for the WebAssembly virtual machine. Its major features are implicit types, move semantics, and memory safety.
Semantics
The syntax of Halcyon is designed to be minimal and readable. While Halcyon is strongly typed, types can be assumed from context at compile time. Below is an annotated "FizzBuzz" program
fizzbuzz :: (number) {
sum := 0;
for i : 0..number {
if (i % 3 == 0) and (i % 5 == 0) {
println("fizzbuzz");
sum += 1;
}
else if i % 3 == 0 {
println("fizz");
}
else if i % 5 == 0 {
println("buzz");
}
}
sum // return the number of fizzbuzz's
}
fizzbuzz(15);
In Depth
I have written a more comprehensive (but outdated) language specification on my blog here.