terebinth update

A little while back, I was working on writing an interpreted programming language using C++ as the medium for the interpreter implementation. The repository for that project can be found here, and it has since been converted to a public archive. I was in the middle of investigating the feasibility of modernizing the underlying C++ implementation by moving from C++17 to C++20 with modules, but that task proved Herculean. I abandoned the project for quite awhile until I made a concerted effort a few days ago to get involved again. I soon realized why I had abandoned the modernization effort in the first place, and I considered cessation of the project altogether.

I then had the idea to just archive the original implementation of the project as-is, but instead of discarding the project entirely, I have now decided to pursue reimplementing the code in Rust. This would ensure that the foundation of the terebinth language would be memory-safe and robust. I also decided to change the way I approached the terebinth language. Instead of creating an interpreter, terebinth will now be a compiled language with the full compiler stack written in Rust.

This effort will require a lot of time and dedication, but I am willing to invest the resources necessary to complete this project. The new terebinth repository can be found on GitHub, and a release is available on crates.io. It should be noted that the release is not at all a working product; I published a rough cut just so I could reserve the package name. Subsequent releases will follow as I make progress on the compiler. I will post updates here as well, as I have done with previous projects such as open-dis-rust (which should be moving out of alpha and into beta releases soon).

I plan to clean up a lot of the loose ends that I have currently on GitHub, whether that mean that I delete/archive repositories or get those in-development projects to a state where they are finalized and released. Once that has been accomplished, I will have more of my attention to devote to finishing open-dis-rust and terebinth. As things progress, updates will be posted here if such changes warrant.

This project was something that I wanted to do simply out of curiosity and out of desire for a challenge. I am still very much learning the fundamentals of writing compilers and developing a good programming language, and I don’t anticipate that terebinth will ever be useful to the industry; that doesn’t matter to me, though. I see this as an opportunity for growth and development as a professional in the field of computer science, so the success of the project is not as important as the completion of it. This is a project that I hope will serve as a stepping stone, as something that serves as a building block for bigger and better software in the future.

Leave a comment