Hello 👋 visitor!

Hey there, welcome to my project showcase website! It's great to have you here. I hope you're ready to check out some awesome projects that I've been working on. Take a look around, explore the different projects and feel free to leave comments or feedback. I'm always open to new ideas and suggestions. If you want to see more of my work, head over to my Github repo at https://www.github.com/vilayat-ali. There you'll find even more projects, code snippets, and experiments that I've been tinkering with. Thanks for stopping by, and I hope you enjoy browsing my projects as much as I enjoyed creating them!


What's cooking?

Welcome to the showcase docs for my project, which is - an interpreter for the brainfuck programming language implemented using Rust programming language!

Brainfuck is a minimalist programming language that uses a very small set of commands to manipulate a tape of memory cells.

It's a challenging language to work with, but it's also a lot of fun! With my interpreter, you can write Brainfuck programs and run them directly in the terminal.

The interpreter is implemented in Rust, a fast and efficient systems programming language known for its performance and reliability. Rust's emphasis on memory safety makes it an excellent choice for building low-level systems, such as interpreters and compilers.

On this website, you'll find information about the interpreter, including how to install it and use it to run Brainfuck programs. You'll also find the source code for the interpreter on my Github repository at repository link, along with documentation and examples to get you started.

I hope you find my interpreter useful and that it inspires you to explore the world of programming languages and systems programming. Thanks for stopping by, and happy coding!

Table of Contents

S.No. Topic Description Link
1 Inspiration Why I built this project in the first place? Read Now
2 What is Brainfuck, Anyway? A tour to the world's most misunderstood language Read Now
3 Challenges and blockers! List of all challenges and blockers that I faced while developing this project Read Now
4 Future Scope My plans for the future inregards to this project Read Now
Inspiration

Welcome to my website where I will share with you the story of how I got inspired to create an interpreter for the Brainfuck programming language using the Rust programming language.

As a computer science student, I've always been interested in programming languages and how they work. When I first came across Brainfuck, I was intrigued by its simplicity and the challenge of working with such a limited set of commands.

I was inspired to create an interpreter for Brainfuck in Rust after reading a blog post by Alastair Reid, where he explained how he built an interpreter for the same language in Haskell. His post showed me that it was possible to build a powerful interpreter for Brainfuck using functional programming concepts, and I wanted to see how I could apply those same concepts to Rust.

I also drew inspiration from the book Programming Rust: Fast, Safe Systems Development" by Jim Blandy and Jason Orendorff. The book provided a comprehensive overview of the Rust language and its capabilities, which helped me understand how to build a performant and reliable interpreter.

But most importantly, I got inspired by Fireship's youtube video titled, "Brainf**k in 100 Seconds", where he explains all language features and mechanics that set me off and made me keep going.

I love videos by Fireship! My man, makes the best programming-related content, that are, apart from being very infomative are fun to watch too. This video is way more favourite to me than his any other video, for the reason that it was the resource that introduced me to the Brainfuck programming language, in the very first place.

The project was a challenging and rewarding experience, and I'm excited to share it with you on this website

I hope my journey inspires you to explore new programming languages and concepts.

What is Brainfuck, Anyway?

Brainfuck is a programming language that was invented by Urban Müller in 1993. Despite being one of the most minimalist programming languages ever created, Brainfuck has maintained a small but dedicated following of programmers who find it to be a challenging and rewarding language to work with.

urban-muller
Urban Müller, the inventor of Brainfuck programming langauge.

The language is based on a simple idea: the program operates on a tape of memory cells, each of which can store a single byte. The program also has a data pointer that can move along the tape, allowing the program to read and write values to and from memory. Brainfuck consists of only eight commands, each represented by a single character. The commands are:

While Brainfuck is undoubtedly one of the most challenging languages to learn and write in, it has maintained a dedicated following of programmers who find it to be a fun and interesting way to learn about programming concepts.

Brainfuck was initially created by Müller as a language to challenge programmers to think about programming in a different way. He was inspired by the Turing machine, an abstract machine that can simulate any computer algorithm. In a similar vein, Brainfuck is a Turing-complete language, which means that it can simulate any other computer algorithm.

While Brainfuck never gained mainstream popularity, it has maintained a small but dedicated following of programmers who find it to be a fun and interesting way to learn about programming concepts. In recent years, there has been something of a comeback for Brainfuck, with new interpreters and compilers being developed and used for everything from coding challenges to art installations. One of the most popular Brainfuck interpreters is written in C by Daniel B. Cristofani, and it is available on his website.

There are also several online Brainfuck interpreters available, as well as plugins for popular code editors like Visual Studio Code.

In conclusion, while Brainfuck may not be the most practical language for most programming tasks, it has maintained a small but dedicated following of programmers who find it to be a fun and interesting way to learn about programming concepts. As new interpreters and compilers are developed, it's likely that we'll see Brainfuck continue to be used for creative and challenging programming projects.

Made with ❤️ & 🦀 Rustlang by Vilayat