← Back to projects

Developer tooling and static analysis

Byte Inspector

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.

Java 17JavaFXC++CUDAPython

System flow

One upload path, three analyzers

Source upload
SimpleServer
Language dispatch
Static analyzer
Text report

Analysis coverage

Checks are adapted to each language

C++

Counts complexity and structure, flags unsafe calls and memory risks, inspects modern C++ usage, and looks for duplicated code and dependency patterns.

CUDA

Finds kernels, memory operations, atomics, shared memory, synchronization, error checks, and simple warp divergence risks.

Python

Reviews unsafe operations, control flow complexity, resource handling, modern syntax, dependencies, and common quality concerns.

Architecture

SimpleServer dispatches each file by language

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

Reports expose the checks and counts

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

Scope

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

Build from the supplied Make files

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.