Back to browse
GitHub Repository

Multi-language code execution through a simple IR and deterministic VM with LLM repair / patching

10 starsPython

RedDragon, LLM-assisted IR analysis of code across languages

by armorer·Mar 7, 2026·1 point·0 comments

AI Analysis

●●SolidBig BrainWizardryNiche Gem

LLM-assisted compiler frontend for 15 languages, but unclear if it outperforms static AST analysis alone.

Strengths
  • Three-point LLM insertion strategy (repair, unsupported languages, runtime resolution) is architecturally clever
  • Deterministic when source is complete—LLMs only at missing-information boundaries; supports COBOL via ProLeap
Weaknesses
  • No benchmarks, demos, or real-world case studies—unclear if LLM repair actually improves analysis accuracy vs. failing gracefully
  • Very niche audience (security researchers analyzing incomplete binaries); limited proven demand
Target Audience

Security researchers, legacy code auditors, binary analysis engineers

Similar To

Joern · CodeQL · Ghidra

Post Description

RedDragon is an experiment in building a compiler pipeline that analyses code (malformed / without dependencies / unknown language) across ~15 languages through a single 27-opcode IR, with LLM fallbacks. The design question: where exactly can LLMs enter a compiler pipeline?

RedDragon has three specific insertion points:

- LLM as an alternative compiler frontend. For languages without a built-in parser, the LLM receives a formal IR spec (all 27 opcodes, lowering templates, worked examples) and translates source to IR directly. No language-specific code needed. This works for Haskell, Elixir, Perl — anything with parseable source.

- LLM for syntax repair. When the parser hits a parse error in malformed source, an LLM fixes the broken spans and the system re-parses. The repair is constrained to syntactic fixes; the LLM doesn't change what the code does.

- LLM as runtime resolver. When the VM hits a call to a function that doesn't exist in the IR (e.g., requests.get()), an LLM can produce plausible return values and side effects, so that execution continues through incomplete code.

All three are optional. When code is complete and well-formed, the pipeline makes zero LLM calls. When an LLM fails at any point, the system falls back to symbolic placeholders and keeps going.

Similar Projects

Developer Tools●●Solid

Mapstr – AI-powered codebase mapper CLI

Tree-sitter + LLM codebase mapping, but Cursor, Continue, Sourcegraph already do this.

Solve My ProblemShip It
tahaio
102mo ago