Hi! I'm a CS and Math student currently studying at Willamette University.
I am interested in many things, including:
- Open-Source Software
- Cryptography
- Operating Systems
- Compilers, Interpreters, and Language Design
- Ternary Virtual Machines
- Formal Methods
I have worked professionally with:
I am proficient in:
I am interested in:
- Ternary Virtual Machine (jt1701)
- A virtual machine which operates on a virtual machine code made up of ternary Trits, utilizing balanced ternary as the intrinsic system of ternary.
- Main branch contains a Harvard architecture stack-based simple virtual machine (a proof of concept), and a simple 2-pass assembler.
- v2 branch contains work on a von Neumann architecture virtual machine, and:
- Access to a 27 (3^3) register page
- 3^27 Trytes (9 trits) identity mapped memory
- Custom Arm-inspired RISC assembly instruction set assembler (datasheet in progress)
- TODO: C3 (C, for ternary word sizes) compiler targeting jt1701 assembly. (Assembler will be called PO, for _____ Object)
- TODO: Simple operating system written in 3C and jt1701 assembly
- 4D Rotating Hypercube
- 3D Terminal Renderer, which can display and rotate any 3D object comprised of straight lines
- 4D Rendering capabilities, the 4D object is projected into 3D using weak perspective projection, just like 3D is projected onto the 2D screen
- Compiler
- This was an attempt to understand the process of code going from a bunch of text, to an actual executable
- While the actual assembly generated is not great, it tokenizes, parses into an AST, and can interpret any code that fits the specification
- Genuinely one of the hardest things I've attempted to make. The next attempt will be much better, because I will get it right
- LaTeX Interpreter
- A turing-complete programming language with syntax inspired by LaTeX.
- A kind of sequel to my compiler, this is a fully interpreted language, intended to be embedded into the JimTeX IDE.
- Nearly fully functional (functions can be passed as functions to functions, but not returned, mutability is handled with reassignment)
- Examples are in the jimtex_interpreter library as tests, run with
$ cargo test -- --nocapture
to view console output.
- Encryption
- Contains 2 parts:
- src, which contains a custom polynomial xor based masking algorithm
- primes_lib/src, which contains an implementation of the RSA algorithm in Rust
- Contains 2 parts:
- Turing Machine
- An implementation of a turing machine in Rust
- Allows for saving states of the tape, as well as programatically constructing them
- FantASCII
- Originally a school project, it grew to be one of my favorite results from a project, with a useful tool I've used myself several times
- Star Trek Episode Picker
- Recreation of my very first CS project. Originally written in Java, I used Rust this time, acnd compiled it to WASM.
- It's available here