Befunge is a language created by Chris Pressey to be as difficult as possible to compile. It is a 2D reflective programming language. While creating a compiler may be intentially complicated a Befunge VM is reasonably simple to implement. This program is a very simple implementation. The main difference between this interpreter and standard interpreters is the grid is dynamically allocated rather than using a fixed size grid.
This VM was originally authored by Josh Wolfe(https://github.com/WolfeCub/BefungeVM) . The Main Differences in this fork are; The ability to pick which Stack to link against(speicifed in makefile), additional test and most importantly the dynamically sized stack implimentation.
Hello world
64+"!dlroW ,olleH">:#,_@
Factorial
&>:1-:v v *_$.@ ^ _$>\:^
Sieve of Eratosthenes
2>:3g" "-!v\ g30 < |!`"O":+1_:.:03p>03g+:"O"`| @ ^ p3\" ":< 2 234567890123456789012345678901234567890123456789012345678901234567890123456789
Quine
01->1# +# :# 0# g# ,# :# 5# 8# *# 4# +# -# _@
For more examples look here.