C++
Counts complexity and structure, flags unsafe calls and memory risks, inspects modern C++ usage, and looks for duplicated code and dependency patterns.
Developer tooling and static analysis
A Java toolkit that accepts C++, CUDA, or Python source files, dispatches them to a language specific analyzer, and turns the findings into a readable report. A JavaFX dashboard provides the interactive path, while each analyzer can also run directly.
System flow
Analysis coverage
Counts complexity and structure, flags unsafe calls and memory risks, inspects modern C++ usage, and looks for duplicated code and dependency patterns.
Finds kernels, memory operations, atomics, shared memory, synchronization, error checks, and simple warp divergence risks.
Reviews unsafe operations, control flow complexity, resource handling, modern syntax, dependencies, and common quality concerns.
Architecture
SimpleServer receives a file and chooses an analyzer from
its extension. The analyzers scan source text, maintain language
specific counters, and write Markdown style reports. The JavaFX
dashboard handles selection and display, while Make targets and an
automation script compile the analyzers and launch the interface.
| Component | Responsibility |
|---|---|
| JavaFX dashboard | File selection, upload, and report display |
| SimpleServer | Receives files and dispatches by language |
| CppAnalyzer | C++ structure, safety, complexity, and duplication checks |
| CudaAnalyzer | GPU memory, kernel, synchronization, and correctness heuristics |
| PythonAnalyzer | Python safety, complexity, resources, and syntax checks |
Example report shape
CUDA C++ Static Code Analysis Report
CUDA specific metrics
kernels found
memory allocations
synchronization calls
CUDA error checks
possible divergence sites
Risk analysis
file and line observations
suggested checks
Byte Inspector uses source scanning and heuristics. It is a course project and learning tool, not a substitute for a compiler front end or production security scanner.
Run it
make -f Makefile.mak compile
make -f Makegui.mak compile
make -f Makegui.mak run
The current desktop path requires Java 17, JavaFX, GNU Make, and Linux for the optional file watching automation.