Added some checking for array bounds, and created interpreter.h
rewrote a cleaner getopt, improved the makefile.