UndefinedLanguage is experimental programming language that targets WASM. We do our own code-generation from scratch instead of relying on LLVM or similar code-generation technologies.
This is project done during free time.
Write the code in demo.ul and do:
# Zig 0.14.1
zig build run -- demo.ul
resulting out.wasm will be written, localhost the root, open index.html and check Javascript Console.
- A better analyzer/type-checker
- Different int/float type of different signedness and size
- Arrays
- Tuples?
- JS FFI and bind WebGPU
- Proper Erroring (get as many as error possible before quitting + better error messages)
- No Variable shadowing
- No implicit conversion
- No type-change of variable after declared
- Type inference
- Remove hardcoding of some of wasm code-gen
var x: float = 5;interpret 5 as integer, so generated wasm code assignmet doesn't work.
- Suggest related variable names, for example, programmer types
x_idsbut onlyx_idxexist, so it will suggestx_idx.
- Be able to draw triangle on webpage with webgpu.
- Be able to parse all the basics feature a programming language can have. (functions, arrays, loops, etc)
- Design custom IR
- Use this IR to codegen WASM code
- Do optimization on custom IR to produce efficient builds.