Software Creation Tool

Dmitry Olshansky
1 min readJun 25, 2023

My semantic-graph based software creation tool.

(and analysis, code evolution & refactoring, build etc system)

Code evolution — import of old code bases, de-duplication by linking to existing primitives, getting rid of hacks and scrapping language-native module system.

Syntax-agnostic programming.

Formatting-agnostic “files” (and diffs).

Language-agnostic module system (external to any languages used).

Seamless cross-language interop with transparent build/wrap/bind system. (Generating bindings is naturally part of build)

Naturally hyper-linked documentation system with doc-generator agnostic syntax.

Internal representation is syntax-agnostic tokens — flat-style pseudoAST. LZ-compressed token stream with separator markers that signal type of next “piece” and delimit declarations/expressions.

Next after proof of concept — embed codegen as running if functions against some “constants” (e.g. a file in DSL or rather a module in DSL) and producing IR/AST.

Actually most languages can be implemented within this system like this.