Skip to content

Define core domain models and interfaces (ExecutionStep, ExecutionTrace, BaseVisualizer) #1

Description

@MaximilianRau04

Context

The repository currently contains only a LICENSE file. Before any visualizer can be implemented, we need the shared vocabulary the rest of the engine will build on: how a captured execution is represented, and the contract every visualizer implements.

What

Define the core domain models and abstract interfaces:

  • Models: ExecutionStep (line number, event type such as line/call/return, local variable snapshot, timestamp/step index), ExecutionTrace (ordered list of ExecutionStep, target function metadata), VisualizationFrame (the renderable state derived from one or more steps, e.g. current pointer positions, highlighted nodes).
  • Interfaces: BaseTracer (produces an ExecutionTrace from a function + inputs), BaseVisualizer (consumes an ExecutionTrace and produces a sequence of VisualizationFrame), BaseRenderer (consumes VisualizationFrames and produces output, e.g. terminal text or HTML).

This mirrors the interface/model split already established in the dsa-autopsy and complexity-lab sibling projects and should unblock the tracer and visualizer implementations.

Acceptance Criteria

  • Dataclasses for ExecutionStep, ExecutionTrace, VisualizationFrame added under models/
  • BaseTracer, BaseVisualizer, BaseRenderer ABCs added under interfaces/ with documented abstract methods
  • Unit tests covering model construction/equality
  • mypy/ruff clean

Metadata

Metadata

Assignees

No one assigned

    Labels

    coreRelated to core domain models and main functionality of the projectenhancementNew feature or requestgood first issueGood for newcomers

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions