- Notifications
You must be signed in to change notification settings - Fork0
OPeyrusse/project-tz-io
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This project is lead by many eductational goals.
TL;DR;
- Build a language similar to the one in TIS-100, with the flexibility of Shenzhen I/O to combine as manynodes as wanted.
- Write a compiler for this language in Rust. Planning to usenom.
- Write the same compiler in Clojure. Planning to useinstaparse.
- Produces class files from the parsed programs.
- Produces LLVM pseudo-assembly code, for comparison with the JVM capabilities.
Full story
The original goal is to investigate the format of Java class files, writing one's own files. This requiresknowledge of the internals of the JVM, its capabilities and so on.For that purpose, I needed a language to parse, hopefully simple enough. Designing a language inspired fromTIS-100 should be enough, particularly as it implies so sort of distributed programing. I wanted to add theflexibility of Shenzhen I/O to combine nodes as wanted.After investigating LLVM project, I decided that compiling the same language to LLVM IR should be educative.Regarding the language for the compiler, I wanted both to learn Rust and Clojure. So why not comparing thecomplexity of writing the same complex program in both languages.