This project presents a Java compiler web application designed to assist teachers in testing students’ Java programs and help students practice coding interactively. It provides lexical analysis, syntax analysis, time complexity estimation, fraud detection, and AST visualization through a clean HTML/Flask interface.
Before running the project, make sure you have the following installed:
- Python 3.8+
- Java JDK (javac, java must be in PATH)
- Graphviz (system tool, for AST visualization)
- 🖊️ Online editor for typing Java code
- 🔍 Lexical & syntax analysis with error reporting
- ⏱️ Time complexity estimation
- 🛡️ Fraud detection (detects direct answer-printing and invalid tokens)
- 🌳 AST (Abstract Syntax Tree) visualization using Graphviz
- 📊 Performance profiling of student programs
- 🎨 User-friendly web interface for both teachers and students
- For Educators → Faster evaluation of students’ assignments with analysis, fraud detection, and code correctness metrics
- For Students → Interactive platform to practice Java coding, analyze logic, and learn debugging
- You can deploy on
- → Heroku (via Procfile)
- → Render / Railway
- → Docker (optional Dockerfile setup)
-
This compiler was designed in line with academic needs:
-
Lexical & syntax analysis → ensures correctness of code
-
Fraud detection → identifies direct hardcoded outputs and invalid tokens
-
Time complexity analysis → evaluates performance of algorithms
-
Summarization → provides structured feedback to both students & teachers