Projects

🕰️ 3 minutes

My personal projects are listed on this page with all the relevant information needed to get started. Some projects have articles and wiki pages; they are linked for your convenience. Furthermore, please visit my GitLab profile.


📑 Quick Jump:

Alfred (HTCPCP, HTCPCP-TEA)

https://gitlab.com/deepnet42/alfred

language: c++ license:  Mozilla Public License 2.0

Introduction

Alfred is a proof of concept appliance for brewing tea over the Hyper Text Coffee Pot Control Protocol (HTCPCP) and the Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances (HTCPCP-TEA). See RFC2324 and RFC7168.

HTCPCP was an April fool’s day joke published under RFC2324. Alfred implements the server and the client for a subset of features in brewing tea.

Topics


Unlimited Register Machine

https://gitlab.com/deepnet42/urm

language: c++ license:  Mozilla Public License 2.0

URM PROJECT ICON

Introduction

The Unlimited Register Machine (URM) as implemented per specification from Computability: An introduction to recursive function theory by N.J. Cutland. This is a modification of machine originally based on Shepherdson and Sturgis’s model (1963).

A URM is a simple and minimal machine that in principle is Turing equivalent (another model of computation). It consists of four very basic instructions: Zero, Successor, Transfer, and Jump. The URM has, as the name implies, an unlimited number of registers. Each register stores a natural number. Below are descriptions for the four functions:

Instruction Name Instruction Meaning Pseudocode
ZERO Z(n) Set register numbered n to the value of ZERO (0) Rn ← 0
SUCCESSOR S(n) Increment register numbered n by ONE (1) Rn ← Rn + 1
JUMP J(m,n,q) Jump to instruction numbered q if m==n, otherwise proceed to the next instruction if (Rm=Rn) ip ← q; otherwise ip ← ip + 1
TRANSFER T(m,n) Set the value of register numbered n to the value of the register numbered m. Rn ← Rm

A URM executes a program, which is made of the four instructions and is of finite size. A URM does not guarantee to halt for an arbitrary program.

Articles

An Unlimited Register Machine

Topics


Cara (Human Resource Machine)

https://gitlab.com/deepnet42/cara

language: c++ license:  Mozilla Public License 2.0

CARA PROJECT ICON

Introduction

Cara is a feature rich virtual machine with a suit of tools built for the Human Resource Machine game assembly files. Cara seamlessly runs all and any HRM code. It tries to maintain original compatibility with the original game, but also offers extensibility to go beyond the game’s boundaries. For example, Cara can be extended with new instructions, additional memory, and so much more. It has a transpilation support (source to source compiler). It is possible to compile HRM assembly files to native binaries!

A bit about the game

HRM ICON HRM game is made by Tomorrow Corporation. HRM is disguised as an assembly language programming activity, but it is much cuter and user friendly. Instead of typing instructions, the player visually builds with commands by moving code blocks much like in the Scratch programming language by MIT, which is based on the Logo programming language. HRM assembly instructions are minimal, yet, theoretically, these instructions make up a register machine that is Turing complete (😲).

Articles

Human Resource Machine: Part 1 | Human Resource Machine: Part 2 | Wiki

Topics