You seem to have Javascript disabled. That is no problem - this site does not require Javascript at all!

Jussi Hämäläinen

Full-stack Web Developer


Function Machine

Original launch:

April, 2014

Build time:

80 hours (~8 days, ~1.5 weeks)

Main technologies used:

Javascript, HTML5/CSS, InkScape

Link to homepage:

http://31.220.15.56/funM/

I've wanted to build my own programming language for couple years now. Well, back in the days (a year ago) this was the closest I got. Practically the app is one huge flowchart-diagram. User can freely create pipes, filters, switches, transformers, loops, etc. using simple GUI and clicking stuff into place. When the pipe layout is ready, a pink block starts traversing the pipeline. The pink block can be thought as a thread of control, and the pipeline is machine code. So its basically somekind of visual programming language - its capabilities are limited to numeric calculation only, but I think its fun way to learn some basics of programming.

I've meant to add support for multithreading (many pink blocks traversing at once), but haven't had time and the priority of this app is currently low.

This project taught me important aspects of modularity and separation of concerns. Basically app has three different stages; 1) Building the pipeline, 2) Compiling the pipeline into custom data structures, 3) Running data structures. I tried to keep each step as separate as possible, and I think I did fair job there.