Inspiration

Security in computing is becoming more important now than ever before. Advancements have been made to make high level languages like Rust safer, but the machine language all of our code compiles to remains insecure. Forte is an experiment to see how safe extremely low level languages can be when you're willing to challenge every tradition in classical computing. The answer will shock you. The design philosophy for Forte is heavily inspired by languages such as Rust, Haskell, and several machine architectures.

The Whitepaper

The Forte whitepaper describes the philosophy behind its design, its implementation details and security guarantees, provides an example program, and has documentation for every the instruction set.

The Assembler

An assembly language is the interface by which humans can interact with machine byte-code. Forte has both, and they are unlike nearly any other machine language to date. The Forte assembler and assembly language has 26 instructions which are loosely based off the RISC-V base instruction set. Every instruction can be interpreted in two different ways thanks to the dual-phase execution strategy I came up with.

The Virtual Machine

Forte is designed to run on a machine significantly different from what exists at a consumer level today. A byte is 32 bits long, and a word is 4 bytes, or 128 bits long. Rather than use registers, the Forte architecture significantly expands the capabilities of all three of its stacks. Forte does not run on any physical machines (yet), and instead runs inside a virtual machine that I wrote. It is capable of running on both desktop and the web, and you can demo the Forte Assembler and Interpreter at the demo link, or at https://fweb.pages.dev/.

Accomplishments that I'm proud of

Designing an assembly language without an arbitrary "jump" instruction is monumentally difficult - at least at first. That is, until you become comfortable putting aside everything you've learned about machine code and low level languages. Forte takes a unique approach, that while not always superior to its competition, is certainly boundary pushing. I was very worried that I would run into some un-forseen issue that would make the whole endeavor impossible, but quite the opposite was the case. The more I explored the ideas of Forte, the more cool symmetries and emergent behaviors I found.

What I learned

I learned to trust my gut instinct and follow my hunches as far as they can take me. Doing your own thing rather than following the trends results in a markedly better product, and a more fulfilling developer experience.

Built With

Share this project:

Updates