lvntky / CVM

A toy JVM coded in C/C++
MIT License
19 stars 0 forks source link
c compiler java jvm jvm-renovate programming-language programming-languages system-programming virtual-machine

CVM

GitHub commit activity GitHub GitHub issues

Graphic design is my passion


This is the second re-write of the CVM.

The first implementation of the CVM has been made in C which can be reachable at cvm/archive for archive purposes Since the first implementation does not work as intended

The master branch is the current and active version of the CVM which is rewrite in C++

A toy Java Virtual Machine coded in C(and C++). CVM is a simple and lightweight JVM that aims to provide a basic understanding of JVM internals and bytecode execution. This project serves as an educational and fun resource for those interested in learning about JVM implementation details.

Features

Getting Started

Follow these steps to get started with CVM:

  1. Clone the Repository:

    git clone https://github.com/lvntky/CVM.git
    cd CVM
  2. Compile the Source Code:

    mkdir build
    make install
  3. Run a Java Program:

    ./cvm JavaProgram.class

Usage

CVM accepts a Java class file as a command-line argument. It loads and executes the main method of the specified class.

Example:

./cvm HelloWorld.class

Contributing

We welcome contributions to CVM. If you want to add new features, fix bugs, or improve documentation, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and commit them.
  4. Open a pull request explaining your changes.

License

CVM is licensed under the MIT License. See the LICENSE file for details.

Acknowledgments

CVM was inspired by a passion for JVM internals and bytecode execution. I would like to thank the Java community for providing valuable resources and documentation on JVM internals.

Contact

If you have questions or need assistance with CVM, feel free to contact me at leventkayadev@gmail.com .

Happy coding! 🚀