Thursday, April 12, 2012

Optimizing Interpreter for Whenever

I have edited the original interpreter for the Whenever programming language (http://www.dangermouse.net/esoteric/whenever.html) so that it performs the following optimization:

* Temporarily remove all copies of a deferred statement from the to-do list until you do a non-deferred statement.

It results in quite a speed-up of many whenever programs. In particular, the Fibonacci program provided on the page linked above calculates all 50 Fibonacci numbers very quickly.

Two other changes made:
* read() is implemented
* replaced the subtraction operator '-' (which wasn't working) with '_'

The new version of Command.java is here and the new version of CodeTable.java is here.

Any suggestions that I have just done this in order to submit a solution to the Google Code Jam in the Whenever programming language seem very unlikely.

Saturday, May 7, 2011

Improved Markov Algorithm Executor

I have uploaded a new version of my markov algorithm simulator at http://www.ideone.com/VtaWx . It is somewhat faster, as it handles all rules simultaneously on each iteration.

More details later.

Saturday, July 24, 2010

Slightly Optimized C++ Program for running Markov Algorithms

I realise there is not much point giving you a 438-rule Markov Algorithm and telling you that it takes more than 6,000,000 iterations to do anything without some sort of execution engine.

Version 0.2 of my C++ Markov Algorithm Executor can be found after the jump. I apologise, my C++ is terrible.

brainfuck Overview

brainfuck is, perhaps, the most famous of esoteric programming languages.

I will give you a quick overview here of the syntax (such as there is) and instruction set of this language, after the jump.

Markov Algorithm Sudoku Solver

I thought that I should start off slowly, to give people an introduction to the general topic, to allow people to warm up to this blog and not put people off right from the start.

I quickly shelved this idea, and decided to instead show something hideously complicated.

Please find here my 458-rule Markov Algorithm for solving sudoku's. Given is an example input. The Algorithm solves this input in 6,525,264 iterations. Your mileage may vary.

Eventually in this blog, I will explain how this Markov Algorithm works. Note that it does not use any sophisticated Sudoku-solving techniques, but just trial and error.

I will give a full description of Markov Algorithms later, but for now you can see more details on the Sphere Online Judge.

Welcome to esotericode

This blog is about esoteric programing languages, including (but definitely not limited to):
* Brainfuck
* Whitespace
* FALSE
* Markov Algorithms
* FRACTRAN

It will include:
* Example programmes in esoteric languages
* Descriptions of how to go about writing code in esoteric languages
* Instructions of how to compile and/or execute esoteric languages.
* Sketches of proofs of Turing Completeness of esoteric languages

and much besides.

If you are not interested in esoteric programming languages, and do not feel you could become interested in them, then I have to be honest, this is probably not the blog for you.