Praetorian is a project in development aiming to create a Java to machine code compiler. Currently in its nascent stage, it is not yet suitable for practical use. The primary objective is to devise a compiler capable of translating Java code directly into machine code, thereby eliminating the dependency on the Java Virtual Machine (JVM).
Similar to the 'javac' command which compiles Java code into bytecode, Praetorian will generate machine code instead of bytecode.
The main goal is to make Java compile into a bin file instead of just a class file.
- Develop a lexer
- Implement a parser
- Construct an Abstract Syntax Tree (AST)
- Make a custom terminal
- Make it attached to default OS terminal
- Establish an intermediate representation
- Produce comprehensive documentation
- Ensure compatibility with multiple Java versions (JDK11-Current)
- Enable compilation via command line and integration with external programs
If you want to look at the in depth goals. Look here
To initiate involvement with this project, the repository needs to be cloned followed by building the project. Written in C++, the project supports compilation using various methods. You can utilize Clang or GCC for compiling.
This project is licensed under the GNU General Public License v3.0. Refer to the LICENSE file for further details.
Copyright (c) 2024, Logan Abernathy. All rights reserved