Inspiration

My research interests are centered around quantum computing and quantum information theory. I also wanted to learn Scala.

What it does

It allows for the creation of a simulated quantum bit, or qubit, and the manipulation of the probability of that quantum bit being either 0 or 1 upon reading the state.

How I built it

'gradle run --daemon' In all seriousness, I just sat around contemplating the interpreter pattern and how I might design the interpreter for several hours. Then I sketched the UML of the interpreter and then slowly wrote the code because I was new to Scala. Then I wrote a REPL for it, which was frustrating using the Gradle build system because Gradle redirects input and output by default.

Challenges I ran into

The interpreter pattern presents some issues with accessibility of certain classes in certain contexts. Also keeping in mind that the tokenization was recursive and polymorphic made things difficult, especially since Scala needs to have defined member variables. Also Gradle was being irritating in terms of I/O when writing the REPL.

Accomplishments that I'm proud of

I stayed up all night on Friday night/Saturday morning to finish this and I didn't even know Scala when I started.

What I learned

Scala. I also learned a lot about the interpreter pattern and how interpreters are written. I learned a lot about how to use Gradle and Groovy outside of Android Studio to build JVM projects.

What's next for uncertaintyscript

I hope to continue working on this and add functionality for multiple qubits.

Built With

Share this project:

Updates

posted an update

Usage:

:= | := read | qubit | hadamard | paulix | pauliy | pauliz := (a character sequence without spaces)

Examples: ?> qubit a ?> hadamard paulix a ?> read a ?> read qubit somenewqubit ?> hadamard qubit newqubit ?> read newqubit

Log in or sign up for Devpost to join the conversation.