This project is a requirement for a Theory of Computation course. The primary goal is to compare implementations based on three main axes:
- Performance: Execution time and memory usage.
- Expressiveness: Readability, clarity, and lines of code.
- Paradigm: The idiomatic approach for each language (imperative, functional, etc.).
Languages were chosen to highlight differences in paradigm and performance:
- Python (High-Level): Focus on clarity and speed of implementation.
- C++ (Compiled): Focus on raw performance and low-level optimization.
- Java (Object-Oriented): Focus on structure, maintainability, and balance between abstraction and performance.
Each problem directory (e.g., n-queens/) contains its own README.md with specific build and execution instructions.
- C++ compiler (g++, clang)
- Python 3 interpreter
- Java 17+ (or compatible JDK)
Benchmark scripts and performance results can be found in the /analysis directory.