Why this project exists? (Yes, I was asked this questions MANY times)
Putting aside fun part of coding a virtual machine, the goal is to create learning environment for students in software engineering.
Below is not 100% set...
Topics to be covered in learning materials vary from python and java to common algorithms and implementations. The main idea is to give students a context, when they can implement specific feature (e.g. bitwise shift) and see a result (versus coding small program out of context, like read an array, sort it and print it to the screen - no fun)
Here is sample list:
- python language
- common tools for python (e.g. how to test)
- java + basic tools
- java lang specification
- source code management
- java virtual machine specification
- class loading process
- garbage collection
- java memory model
- bitwise operations
- float/double numbers
- big/little endian systems
- ???
Feel free to add other stuff right under and push back to github
--------- ADD BELOW TOPICS WHICH MIGHT BE INTERESTING ----------
. . .