-
Notifications
You must be signed in to change notification settings - Fork 0
Home
duangsuse edited this page Jan 7, 2018
·
4 revisions
MinVM is a Virtual Machine for Min Programming Language (which is still developing now)
that runs blazingly fast, prevents segfaults, and guarantees thread safety
that runs extreme slow, generate Exceptions, and has no multi-threading API not thread safe
and gives you extreme-small runtime for Min Programs(or other language that compiles to MinVM Assembly)
MinVM is a register-based High Level Language Virtual Machine (HLLVM), like ParrotVM, BeamVM, and what MinVM depends on, the JVM.
MinVM has 4 registers and 1 stack (for passing arguments) and 2 internal stack. MinVM also has a global ENV(Hashtable<int, Object>) to store Objects.
- ax: A Register <Object>
- bx: B Register <Object>
- cx: C Register <Object>
- rx: FFI Call Result Register <Object>
- ex: Exception Register <Exception>
- pc: Program Counter <Integer>
- asp: Argument Stack Pointer <Integer>
- csp: Call Stack Pointer <Integer>
- esp: Scope Stack Pointer <Integer>
- as: Argument Stack <Array<Object>>
- cs: Call Stack <Array<Integer>>
- es: Scope Stack <Array<Scope>>
- Small! Excited Runtime Size < 100k (smaller than Lua5.3)
- Excited! One Compiler (maybe) for all VM/Language APIs
- Runtime written in Java, Ruby, C#, C(JNI) and (maybe) in Min (meta-circular)
- AOT Compiler(to Java .class) and (maybe) (with less feature) (much much later) to LLVM IR
- Excited Performance (
[Lmin/vm/internal/OpCode and [I
interpreted) (maybe) - Excited support for languages like Lice
- Excited support for the reflect API
- Focus on running small utilitie programs, small Android Apps
See wiki
minized-lang/MVM is licensed under the GNU General Public License v3.0