JFunge

JFunge is a command-line interpreter for the Befunge language, written in Java.

Since the above sentence probably caused more questions than it answered, I'll start by explaining what is Befunge.

The following is a quote from the Wikipedia article for Befunge:

Befunge is a stack-based, reflective, esoteric programming language. It differs from conventional languages in that programs are arranged on a two-dimensional grid. "Arrow" instructions direct the control flow to the left, right, up or down, and loops are constructed by sending the control flow in a circle.