No description
Find a file
2011-08-13 12:42:18 -07:00
programs * Added jump to subroutine functionality 2011-08-13 03:13:49 -07:00
.gitignore Added .gitignore 2011-01-16 14:57:22 -07:00
main.c * Nothing left can be taken away. 2011-08-06 16:06:51 -07:00
Makefile Modified makefile to allow choosing pedantic behavior 2011-07-23 20:16:54 -07:00
README Fixed typo in README 2011-01-21 13:35:17 -07:00
SYNTAX Updated SYNTAX guide to reflect recent changes 2011-08-13 12:41:06 -07:00
tvm.c Fixed missing break statement in a switch 2011-08-13 12:42:18 -07:00
tvm.h * Nothing left can be taken away. 2011-08-06 16:06:51 -07:00
tvm_file.c * Nothing left can be taken away. 2011-08-06 16:06:51 -07:00
tvm_file.h * Nothing left can be taken away. 2011-08-06 16:06:51 -07:00
tvm_hashtab.c Cleaned up some unnecessary code 2011-08-04 09:39:35 -07:00
tvm_hashtab.h Fixed warnings 2011-07-24 15:32:47 -07:00
tvm_lexer.c * Nothing left can be taken away. 2011-08-06 16:06:51 -07:00
tvm_lexer.h * Nothing left can be taken away. 2011-08-06 16:06:51 -07:00
tvm_memory.c * Nothing left can be taken away. 2011-08-06 16:06:51 -07:00
tvm_memory.h * Nothing left can be taken away. 2011-08-06 16:06:51 -07:00
tvm_program.c Fixed unititialized value in struct "tvm_program_s" 2011-08-13 03:17:50 -07:00
tvm_program.h * Nothing left can be taken away. 2011-08-06 16:06:51 -07:00
tvm_stack.c * Nothing left can be taken away. 2011-08-06 16:06:51 -07:00
tvm_stack.h Added comments 2011-08-04 09:44:07 -07:00

TinyVM is a virtual machine where the goal is having a small footprint.
Low memory usage, a small amount of code, and a small binary. This
virtual machine has been branched into several other projects, including
FastVM and SimpleVM, where performance and simplicity are the main goals 
respectively.

TinyVM, and all of its branches, have differing goals, but they're each designed
to execute the same code. FastVM may have better performance than TinyVM and SimpleVM,
but it may also use more memory, more complex code, and take longer to compile. TinyVM
may be smaller, and have a lighter footprint than the other branches, but it doesn't have
the speed or simplicity of the other two. TVM code is made to be portable across these 
virtual machines, but there are tradeoffs to the VM you use to execute your code.

Building can be accomplished on UNIX-like systems with make and GCC.

There are no external dependencies, save the C standard library.

Building can be accomplished using "make," or "make rebuild".

To build a debug version, add "DEBUG=yes" after "make". To build a binary with
profiling enabled, add "PROFILE=yes" after "make".