As this competition is still in progress, I cannot discuss my solutions to any particular problem, so instead, I will briefly talk about the esoteric programing languages deadfish and , which showed up on HSCTF. Deadfish contains four operations: increment (i), decrement (d), square (s), and output (o). Deadfish rolls over to 0 exactly when the value is 256, but won’t if the value is anything larger. In addition, -1 goes to 0. The line
iissdo
would output 15 because you start with 0, increment it twice, square it twice, decrement it once, and then print the output. The next language that I will discuss is Befunge. Befunge has a much more complicated list of available commands (which you can find here). Unlike most programing languages, which follow a linear execution order, Befunge works on a two dimensional grid. You use arrows to indicate directions, and all operations are preformed on a stack. Here is some code that will print the first 13 Fibonacci numbers (code from progopedia):
031p132p 94+ > 31g 32g :. + 32g v
| :-1,,", "p23 p13 <
> "."::,,,@
This will only print the first 13 Fibonacci numbers because p and g can only store values up to 255. This language is really hard to write a compiler for, as it exists in two dimensions; however, the availability of new formats can open up the ability to create new algorithms, which would otherwise not be expressible. I am sorry that I am currently unable to discuss any specific solutions to problems, but I hope to create some new posts about them after the competition ends.