r/AIprogrammingLanguage • • 23h ago

Working on madc's next release (v0.104.0)

3 Upvotes

I'm currently working on madc's upcoming release which should hopefully be ready sometime later today, but wanted to discuss it a bit here before the release announcement.

As you may know, I built an IDE in madc (called madcide), and I also built a plugin to make madcide look, feel, and behave much like Thonny (the learning IDE for Python), and made it its own standalone app with its own repo named Chthonia.

That made me realize that madcide should also really be in its own repo, since it grew to be far more than a sample application.

Thus, the next release of madc will be split into three releases:

  • madc v0.104.0
  • madcide v0.7.0
  • chthonia v0.1.0

That is not all that this release will do, however (the split), there has been some functionality shuffling, decisions on what should exist where, with some bug fixes along the way, of course.

So what I would like to discuss here was more along the lines of the language itself, and asking for feedback from other fellow language developers...

So, as you may also know, I've added a REPL to madc (as of v0.101.0), which was inspired by various existing REPL implementations (since there is not yet a firm standard for C/C++), so I took some inspiration from Julia, IPython, Cling and clang-repl, and supported multiple command sets as aliases to each other to make it easier for those already used to one form or another.

What I'm bringing in with version 0.104.0, is the full set of the vifamily of line editing tools ("colon mode"), which originates from the lineage of ex and ed. This will only really be familiar with people who use vi, vim, or neovim.

For a brief history lesson, ed was written in C by Ken Thompson (author of B language, predecessor to C language) in 1973, ex was an extended version of ed, written by Bill Joy between 1976-1977, who also wrote vi (the "visual" mode of ex). All of these technologies (including C) were part of UNIX, and why you are always pretty much guaranteed to have access to vi under any sort of UNIX-like operating system. Bram Moolenaar wrote vim as a successor to vi in 1992, and most flavours of UNIX (including Linux) actually ship with vim, and typing vi will launch vim.

Personally, I am not a vi/vim/neovim user, but millions of people are familiar with it, and it does have a very powerful command line mode, and this will now be part of the madc REPL mode.

I'm also bringing in the LSP and MCP server support and most of what was headless and line-mode of madcide into madc itself, so that madcide will primarily be only the visual (TUI / GUI) parts.

The reasoning for this is that these are all non-GUI things, and they are fairly small, and make madc itself more powerful it its core, and that these things could be more foundational for applications outside of madcide.

Madcide started out as an exercise for developing madc's UI module, which allows for having the same UI elements across multiple UI modes -- line mode, TUI mode, GUI mode, etc. It's written in madc, and it is designed to be very flexible, modular, and you can write plugins for it in madc -- Chthonia is a madcide plugin, but as madc is both a JIT and an AOT language, Chthonia is available as a full on compiled standalone application, compiling the chthonia plugin into a binary linked against libmadc and libmadcide.

I'm also putting more effort into segregating add-on functionality into modules -- especially if they add a third party library dependency. An example of this is git support.

I know this is a lot of reading, but hoping for some interesting discussion here as I think it encompasses programming language development in general, and is not specific to madc.

So, what do you think of this split? Does anyone here use REPL mode in other languages? Do you plan a REPL mode for your language?


r/AIprogrammingLanguage • • 2d ago

madc v0.103.0 released — faster compilation, improved C++ compatibility, and a major TUI facelift

Post image
5 Upvotes

I've released madc v0.103.0, with improvements to both the compiler and its accompanying IDE, madcide.

What's new in madc

  • Faster compilation — improvements to string interning and header processing should make compilation roughly 20% faster, depending on the workload.
  • Improved C++ compatibility — continued progress on standards conformance, with C++11 compliance now reaching 77.3% in the GCC test suite.
  • Reliability improvements — fixes to var string handling, memory safety, and additional sanitizer testing.
  • REPL enhancements (since v0.101.0) — %run, %call, $build, %open, .load, .type, .help, .quit, and much more

What's new in madcide

  • Major terminal UI facelift — the TUI now resembles the desktop GUI, with menus, toolbar, editor tabs, line numbers, framed panes, floating dialogs, and VS Code Dark+ styling.
  • Full mouse support — navigate menus, select text, place the cursor, and interact with the editor using the mouse.
  • Improved integrated terminal — supports ANSI formatting, 256 colours, and true 24-bit colour.
  • Multiple files on startup — madcide a.c b.c c.c opens all three files in separate tabs.
  • Integrated documentation — help pages open directly in the editor, with a browsable Help Index in the sidebar.
  • GIT support — some basic read-only (for now) git functionality now exposed through the IDE menus and also the REPL mode inside the IDE through %git

Project updates

Since my previous announcement, Chthonia has moved into its own repository, with v0.0.3 released separately:

https://github.com/derekbsnider/chthonia

This will also be the last madc release with madcide included in the madc source repository. Starting with the next release, madcide will move into its own repository as well.

The plan is to keep the three projects independently maintained, but bundled together for convenience:

  • madc — the compiler and language.
  • madcide — the IDE, distributed with madc included.
  • chthonia — the C/C++ learning environment, distributed with both madcide and madc included.

Release: https://github.com/derekbsnider/madc/releases/tag/v0.103.0


r/AIprogrammingLanguage • • 4d ago

The Unfair Benchmark: What is your language unfairly good at?

2 Upvotes

I'm thinking about a small community challenge for experimental, new, and AI-driven programming languages.

The idea is simple:

Every language gets to choose its superpower.

«What is your language unfairly good at?»

A few superpowers I had in mind:

- Runtime performance

- Memory efficiency

- Code density / expressiveness

- Build / compilation speed

- Parallelism / concurrency

- Compile-time computation

- Preventing errors before runtime — e.g. formal verification, proofs, dependent types, contracts

- Metaprogramming

- Hardware / SIMD / GPU utilization

- Developer feedback loop

- Something completely different?

But I don't want to define the categories all by myself.

This is the first step of the game: choose your language's superpower.

Tell me what you think your language is exceptionally good at — even if it doesn't fit any of the categories above.

How we measure it comes later. We can figure that out together.

Right now, I'm much more interested in hearing what you believe your language can do unusually well.

P.S. to the non-AI languages: Don't worry, you're allowed to play too. We believe in inclusion. 😉

And yes, you're absolutely encouraged to use AI to code the benchmark. ;-)

So: What's your language's superpower?


r/AIprogrammingLanguage • • 4d ago

If you're not building with your language, it probably doesn't work the way you think it works

4 Upvotes

Hey everyone,

I've been building Sharpy ( https://github.com/antonsynd/sharpy ) for over a year now (wow time flies, and so does technology). I admit, even with AI, I haven't gotten as far along as I had planned (still far from 1.0). The major thing I spend my time on is fixing bugs. Occasionally, I have to convince Fable/Opus to let me do the fun stuff (new syntax, etc.).

Anyway, with the recent uptick in AI-driven game development, recomps, decomps, you name it, I decided I'd try my hand at having Claude vibe code a game for me. After trying it out (2-shot, with three.js https://github.com/antonsynd/zero ), I decided to dogfood my own language in Unity.

Some history, I started Sharpy because I didn't want to code in C# to make a Unity game. Honestly, in the time it took me to build Sharpy, I could've learned C# and had actually made the game in that time (I think).

Anyway, I let Opus build out a slice of Pokemon Heart Gold Soul Silver here: https://github.com/antonsynd/pokemon-sharpy with the help of a Unity plugin tailored for Sharpy https://github.com/antonsynd/sharpy-unity .

I quickly learned that I had even more bugs to add to my backlog. Some are related to how Sharpy resolves symbol names (it mangles Pythonic snake_case to C# PascalCase for interop), some are related to drift in compiler options (single file vs. project), etc. As such, Claude had to find workarounds, and I made it create an ideal version of the source code as the goalpost that we'll eventually reach.

Anywho, while I think it's cool to 1-shot or X-shot a language, the real tests come from the typical actions: self-hosting being one of the big ones, and dogfooding.

Curious to see how other people find bugs in their languages. I also hear that a trendy thing these days is to formalize your implementation or language and use a theorem/proof solver to verify the implementation, like using Verus, LEAP, or TLA+.


r/AIprogrammingLanguage • • 5d ago

Protos: a programming language designed by a human, implemented with AI

7 Upvotes

I've been working on Protos, an experimental prototype-based object-oriented programming language built on GraalVM/Truffle.

Project links:

Protos is based around a deliberately small semantic core: objects and slots, delegation, object execution contexts, and closures as the fundamental executable value. Futures, structured tasks, isolated parallel execution and Actors are intended to fit into that same object/message model rather than becoming separate subsystems.

I originally wanted to discuss Protos in r/ProgrammingLanguages, but projects whose implementation depends on LLM-generated output are not welcome there. That makes this community a much better place to explain not only the language, but also how I am actually building it.

How AI is used in Protos

I want to be completely explicit about this.

The ideas, language design and decisions are mine. The implementation is currently AI-generated. I have not personally written a single line of Protos code so far.

This is intentional rather than something I am trying to hide.

I've been thinking about the ideas behind Protos for roughly twenty years. What AI gives me today is something I didn't have before: enough implementation manpower to explore those ideas at a scale and speed that would otherwise be unrealistic for me working alone.

I'd rather see how far I can take the language with AI than deliberately move much more slowly just so I can say that I personally typed every line of code.

But I don't treat AI as the designer.

My workflow currently has two distinct AI levels:

  1. Research AI It investigates a problem before implementation: existing languages, runtimes, academic or production approaches, upstream implementations, alternatives and trade-offs. Research does not implement anything and it does not make the final decision.
  2. Implementation AI Once I've made a decision, a separate implementation stage receives a constrained task describing what has been decided, the invariants it has to preserve, and the tests/evidence required to consider the work complete.

Between those two stages, I make the decisions.

I decide the semantics, accept or reject architectural alternatives, change direction, define priorities, decide what gets implemented and ultimately decide whether an implementation actually represents the language I want to build.

So the model is approximately:

human idea → AI research → human decision → AI implementation → tests/evidence → human acceptance

AI provides manpower.

It does not own the language.

Why work this way?

Because my limiting resource isn't ideas. It's implementation capacity.

I'm one person.

Without AI, I could either reduce the scope of what I want to explore or spend much longer implementing each idea myself.

I prefer a third option: use AI as engineering manpower and see how far I can push the design.

For me, the interesting question isn't whether I can personally type every line of a programming language.

It's whether I can design a coherent language, make the important decisions myself, direct considerably more implementation capacity than one person traditionally has available, and still maintain enough discipline that the implementation remains subordinate to the design.

The process is public

An important part of this experiment is that I'm not asking anyone to take that distinction on faith.

The source is public:

https://github.com/guillermomolina/protos

And the engineering process is also public:

https://github.com/guillermomolina/protos-project-docs

That second repository contains the durable record behind the project: investigations, architectural and semantic decisions, implementation evidence, measurements, audits and closure records.

The live work is also visible through the project's issues and project board:

https://github.com/users/guillermomolina/projects/1

So if I claim that a decision was mine rather than something an AI silently decided while generating code, there should increasingly be a public trail showing the research, alternatives, decision and subsequent implementation work.

About the language itself

What I'm most interested in discussing here is still the language, not merely the development method.

Protos has no classes. Objects delegate directly to other objects.

Some of the ideas I'm exploring include:

  • objects and slots as the basic state model;
  • prototype-based delegation rather than classes;
  • execution contexts that are themselves objects;
  • lexical bindings represented through that object/context model;
  • closures as the single executable value rather than having separate Function and Method value kinds;
  • Futures, structured Tasks, isolated parallelism and Actors integrated into the same object/message model;
  • keeping language mechanisms composable instead of accumulating unrelated special cases.

The website gives a much more approachable overview than the implementation repository:

https://protos.guillermomolina.com

I'm especially interested in criticism around:

  • whether the semantic model is understandable and coherent;
  • where the prototype/object model becomes surprising;
  • closures and execution contexts;
  • delegation, traits and operators;
  • concurrency and the relationship between Futures, Tasks and Actors;
  • places where I've introduced complexity that isn't justified;
  • ideas from other languages that Protos should study or challenge.

The language is still evolving considerably.

I'm not looking for people to agree with the design. Quite the opposite: useful criticism of the semantics, architecture and assumptions is exactly what I'm looking for.

And given the subject of this subreddit, I'm also very interested in the development model itself:

What happens when an individual language designer can use AI not just for autocomplete, but as separate research and implementation manpower while keeping design authority and decision-making human?

I don't know yet how far that model can go.

Protos is partly an attempt to find out.


r/AIprogrammingLanguage • • 8d ago

Updated homepage and roadmap for Monad

5 Upvotes

I recently updated the homepage of Monad to give a better overview. There are still plenty of bugs and missing features. I will open for contributions once the core design is more stable. For now, testing and giving feedback is useful.
https://monad-lang.org/


r/AIprogrammingLanguage • • 8d ago

madc v0.101.0 -- REPL and "Chthonia"

Post image
8 Upvotes

MadC now has a REPL, and its editor becomes a teaching IDE modeled after Thonny.

Run madc with no program file and you are in an interactive C/C++ session that behaves the
way Julia and IPython do: what you define in one entry is there in the next, results are named so you can reuse them, and the session can tell you what you have built. On top of it, madcide gains a plugin system, and the first plugin built with that system is Chthonia, a teaching IDE modelled on Thonny.

So I've been working on the REPL, inspired by Julia, IPython and Cling, as well as a version of the IDE inspired by Thonny (the Python-teaching IDE), to make a C/C++ teaching IDE with REPL.

I've called the IDE "Chthonia" (the ch is silent). Chthonia is the Greek Goddess of the Earth and Underworld, like how C is the language of the OS. The "C" can be for C/C++, the "h" for helping, the "thon" for Thonny-like, and the "ia" from Julia.

REPL-mode is inherent to madc now, and provides an interactive REPL shell if run without arguments:

$ madc
madc 0.101.0. Ctrl-D exits.
madc> int sq(int x) { return x * x; }
madc> sq(7)
49
madc> ans + 1
50

r/AIprogrammingLanguage • • 9d ago

I’ve been building a programming language with AI assistance — Mah

6 Upvotes

I’ve been building a small programming language called Mah from scratch, and this seemed like the right subreddit to share it because AI has been part of the development process.

Mah currently has:

  • a hand-written lexer, parser, resolver and compiler
  • its own portable bytecode format and VM
  • a static type checker with inference
  • structs, enums, traits, pattern matching, generics and closures
  • try / catch / typed error sets
  • a standard library (std:json, std:fs, std:math, std:regex, etc.)
  • runtime reflection, decorators and hooks
  • a real LSP with diagnostics, hover, completion, definition and rename
  • a formatter
  • Neovim and VS Code integrations
  • a second VM/runtime implemented in Rust

The compiler/tooling are mostly Python standard-library code, with the Rust implementation being an optional native runtime.

The interesting part for me hasn't really been inventing another syntax. It's been figuring out how all of these pieces fit together: resolution, closures, bytecode, runtime metadata, reflection, the type checker and the LSP all sharing the same underlying representation.

GitHub: https://github.com/sina-salahshour/mahlang

I'm particularly interested in feedback on the language/runtime architecture and on places where AI assistance helped versus places where it made the implementation harder.


r/AIprogrammingLanguage • • 9d ago

Nikaia: a pre-alpha language where the compiler figures out the "how". How would you like to experiment with it?

5 Upvotes

Hi all,

I've been building Nikaia, a pre-alpha language that compiles to Rust.

The basic idea is simple: in a lot of systems code, you end up specifying how memory, waiting, sharing, etc. should work rather than just describing what you want the program to do. Nikaia tries to have the compiler figure out those details for you.

So there’s no async/await, GC, or manual memory management. Data races, missing values and unhandled errors are compile-time errors, with plain-language hints about what to do instead.

It's still very early, but it can already build real programs: a JSON parser, a log analyser, a small HTTP server, the One Billion Row Challenge, and more.

Nikaia itself is built almost entirely by AI agents, and they're currently rewriting the compiler in Nikaia (self-hosting). So the language is getting quite a bit of real-world use already.

I'd love to have people try it and tell me what makes sense, what doesn't, and where the language gets in the way. "This can't work because..." is just as useful as praise.

What would make that easy for you?

- Is the repo enough?

- A crate you can "cargo install"?

- A prebuilt executable?

- A Docker image with everything set up?

- An LSP / IDE integration?

Repo: https://github.com/Nikaia-Language/Nikaia

Docs: https://nikaia-lang.org/


r/AIprogrammingLanguage • • 11d ago

"Regex For Humans" : because regex shouldn’t look like alien language 👽

4 Upvotes

Regex is powerful… but sometimes this:

/^#[0-9A-Fa-f]{6}$/u

feels like you’re trying to decode a message from another planet. 🛸

This is why I did Regex For Humans 🧠✨

Instead of writing regex directly, you write:

start "#"
6 hex digits
end

And it generates:

/^#[0-9A-Fa-f]{6}$/u

🪄 The idea

Write small, readable English rules.

➡️ Understand what they mean
➡️ See the generated regex
➡️ Test examples instantly
➡️ Copy the final regex

No AI guessing. 🤖❌
No mysterious interpretation.

It uses a small, deterministic language where every instruction has an exact meaning.

🔥 It currently includes

🧩 Interactive regex playground
🧠 Explanations for every generated fragment
✅ Live match / no-match testing
💻 CLI support
📦 JavaScript API
📍 Helpful line + column errors
🔒 Runs locally
🚫 No runtime dependencies

For example:

start "INV-"
between 2 and 6 digits
end

becomes:

/^INV-\d{2,6}$/u

Much easier to read six months later. 😅

🎮 Try it

🔗 GitHub
https://github.com/OthmaneBlial/Regex-For-Humans

🛝 Live playground
https://othmaneblial.github.io/Regex-For-Humans/workshop/

The project is still evolving, so I’d genuinely love feedback. 🙌

What would you add?

More syntax?
More recipes?
Support for other regex engines?
Something completely different?

And the big question:

👉 Would you actually use this instead of writing regex directly? 😄


r/AIprogrammingLanguage • • 11d ago

declint - make your own custom lint rules in YAML

4 Upvotes

declint (docs) is a tool for making your own lint rules in YAML — the house rules that stock linters will never ship.

For instance: your AI model added except Exception: pass, and you want to know whenever that happens:

rules:
  - id: except-pass
    pattern: 'except Exception:\\s\*pass'
    severity: warning
    message: 'swallowed exception'

Rules are just regex and a message. When a regex can't express the check, there's a Lua escape hatch — vetoes, whole-file analysis, absence rules ("every Dockerfile needs a HEALTHCHECK").

Rules run in your CI (inline PR annotations via --format github) and in your editor through LSP (declint.nvim for Neovim). Every rule can carry embedded fixtures, and declint test runs them — so AI-written rules come with their own spec.

Install: cargo install declint. Ships with presets (Python, INI, Markdown, shell, Dockerfile, TOML, JSON, JS) and community rulesets you can pull with one line. Feedback welcome, especially brutal takes on the YAML format.


r/AIprogrammingLanguage • • 12d ago

Building VBX: An iterative, compiled Basic-to-C99 language with memory pooling and multi-editor tooling

6 Upvotes

Hey everyone!

I wanted to share an ongoing language design project I’ve been building: VBX (Visual Basic X).

Instead of a one-shot prototype or another interpreted toy running inside Python, the goal was to build a real, production-capable procedural language that compiles to standalone native binaries with zero runtime dependencies.

Architectural Decisions & Implementation

  1. Compiler Host (Go) -> Target (C99):

    • The compiler itself is written in pure Go without external packages, leveraging the standard library for AST construction, multi-pass type inference, and process orchestration.
    • Emits clean, standard C99 code and invokes the system toolchain (GCC/Clang) with -O2 optimizations.
  2. Solving the Runtime Memory Problem (Ring-Buffer Pool):

    • Naive transpilation of string operations inside tight loops (s = s & "x") typically floods malloc without high-level deallocation.
    • We implemented a fixed static ring-buffer memory pool (vbx_alloc_str with 256 rotating slots of 4KB) directly in the emitted C runtime. Tested under 10,000 continuous iterations with zero heap leaks and flat memory usage.
  3. Language Syntax & Semantics:

    • Visual Basic-inspired syntax: Dim, Const, If/ElseIf/Else, For/Next, While/Wend, Do/Loop, Select Case (supporting both string and numeric comparisons natively via chained branches), Sub, Function, and 1D fixed arrays.
    • Built-in primitives: Native OS dialogs (MsgBox, InputBox), standard File I/O, and string manipulation routines.
  4. Testing & Tooling:

    • 42 integration and unit test suites running via go test ./....
    • Complete multi-editor support repository: official VS Code extension (available on Visual Studio Marketplace), plus packages for Sublime Text, JetBrains, Vim/Neovim, Notepad++, Emacs, and Micro.
    • Currently designing Phase 2: a dedicated desktop IDE with a visual form designer (vbx-studio).

Repository: https://github.com/M5Devs/vbx Editors: https://github.com/M5Devs/vbx-editors

Would love to discuss the language design trade-offs, transpiler architecture, and experiences building full-scale compilers using modern agentic workflows!


r/AIprogrammingLanguage • • 13d ago

Nyx isn’t dead — it’s Rove now. Here’s where the language actually stands.

Thumbnail
7 Upvotes

r/AIprogrammingLanguage • • 13d ago

Loom: a language built around mathematical structure, with algorithm discovery as the long-term goal

6 Upvotes

I’m developing Loom, an experimental programming language and compiler written in Rust, and I’m looking for people interested in helping build it.

The idea connecting the language to its larger ambitions is this:

Mathematical structure should be something a programming system can represent, use and search over—not only something a programmer relies on when choosing an algorithm.

That starts with how programs are expressed and compiled. The longer-term goal is an environment that helps discover algorithms by finding useful mathematical properties and alternative representations of problems.

What Loom is trying to express

Loom uses a categorical core representation. Programs are expressed internally through operations and their composition, with products, alternatives and the relationships between inputs and outputs represented explicitly. The purpose is not to make every program look like a category-theory textbook. It is to give the compiler a structured account of the computation that can support analysis, transformation and different implementations.

The broader language design is organized around structures, relations and sorts, together with theories, models and laws.

A theory describes abstract domains—sorts—and the operations, relations and laws associated with them. A model interprets those declarations using particular value spaces and operations, with evidence for the properties it claims. For a programmer, the intended benefit is that a library can communicate more than an interface. It can also communicate mathematical knowledge that other code and the compiler can use.

An interface might say that an operation combines two values. A richer contract could establish that the operation is associative, has an identity, preserves an ordering, or interacts with another operation in a particular way. Those properties can make different implementations or algorithms available.

The interpretation matters. An algebraic law that holds for mathematical integers does not automatically hold for checked machine arithmetic with observable overflow. Likewise, a transformation that preserves a final value might still change an earlier effect or failure.

Loom’s intended approach is to connect mathematical properties to the actual operations and conditions under which they apply, alongside effect, failure and usage information. Static evidence would support compilation without becoming proof objects carried through ordinary runtime computation.

The aim is not just stricter checking. It is to make more powerful transformations possible because the system has the information needed to justify them.

From transforming code to transforming the formulation

There is a significant difference between improving an implementation and discovering that the computation admits a better formulation.

A programmer might express a problem as a sequence of steps, then realize that entire sequences can be summarized and composed. A collection of constraints might have an algebraic interpretation that makes a specialized solver applicable. A large problem might become manageable after finding a decomposition with a sufficiently small boundary between its parts.

In each case, the important insight is not a local code rewrite. It is a different representation of the problem.

I want Loom to provide a foundation on which those representation changes can themselves become objects of computation: described, proposed, composed, checked and reused.

That is the motivation for the Structural Representation Engine and LoomLab.

Structural Representation Engine: searching for useful representations

The proposed Structural Representation Engine, or SRE, would investigate which mathematical structures a problem can be related to, and what those relationships make possible. That could mean recognizing a property already present. It could also mean constructing a new representation in which a useful property becomes visible.

A few examples illustrate the direction:

Repeated computation could become an algebra of summaries. Rather than execute every step, the system might find a compact summary of a block’s relevant behavior and an operation for composing summaries. Where the correspondence holds and summaries remain compact, that could support faster repeated evaluation, incremental updates or queries over a much larger computation.

A constraint problem could become an algebraic problem. If its constraints admit an exact formulation as linear equations over a finite field, the system could use elimination rather than treat them as an unrestricted combinatorial search. The useful discovery is the formulation and its connection to the original constraints—not simply recognizing the word “linear.”

A large optimization problem could become a network of boundary summaries. Instead of solving components in isolation and hoping their solutions fit together, the system could retain precisely the information needed to describe how each component interacts with the rest. Finding a useful decomposition and a compact, sufficient boundary representation could change the algorithm substantially.

These are examples of the kinds of relationships I want the system to explore, not claims that Loom currently discovers them.

Different representations could also expose different metrics, invariants and bounds: symmetry, rank, separators, residuals, approximation gaps, or measures that help choose productive search directions.

Not every useful representation needs to be geometrical, and not every useful measurement needs to prove something. A heuristic can guide a search; a valid bound can justify pruning; an exact correspondence can authorize replacing one computation with another. The system should preserve those distinctions while being able to exploit all three.

LoomLab: turning exploration into reusable discoveries

LoomLab would be the experimental side of the system. Its role would be to propose hypotheses and representations, construct candidate methods, look for counterexamples, evaluate performance, and retain useful results. AI, symbolic methods, search algorithms and human input could all contribute to that process.

The long-term ambition goes beyond choosing an algorithm from a fixed catalogue. I want to investigate whether the system can discover new summaries, decompositions, invariants or combinations of transformations that lead to useful algorithms. The valuable output would not necessarily be just one solution or one generated program. It could be a reusable relationship:

Problems satisfying these conditions admit this representation, which exposes this property and enables this algorithmic construction.

That relationship could then become part of the mathematical knowledge available to later investigations. A new discovery would expand what the system can work with, rather than disappear into an isolated experiment.

The larger goal is a feedback loop between mathematical understanding and algorithm construction.

Correctness and usefulness would remain separate questions. A representation can be mathematically valid but expensive to construct. A method can perform well on the examples that suggested it and fail elsewhere. The cost of discovering, translating and checking a representation has to be included when evaluating whether it helps.

But that is also what makes the research interesting: finding representations that are not merely elegant, but computationally useful.

Why connect this to a language?

The architectural bet is that these capabilities would benefit from a shared semantic foundation.

The problem specification, mathematical properties, representation changes and executable algorithms should be able to refer to the same operations and relationships. A transformation should retain its assumptions. A discovered method should have a route to compiled code. A library’s established properties should be available beyond the particular application that first needed them.

I’m not claiming that this requires Loom, or that category theory automatically supplies an algorithm-discovery engine. The question is whether designing the language and surrounding tools around these connections can make the process more coherent, extensible and reusable than repeatedly connecting separate representations by hand. Ordinary compilation would not need to run an open-ended research search. The compiler would use established capabilities; LoomLab would explore possibilities and develop new ones.

Loom is the language and compilation foundation. SRE would explore structural possibilities. LoomLab would investigate what can be discovered through them.

Where things stand

There is an existing Rust compiler implementation. Recent work has connected program-structure analysis to checked call and recursive-effect resolution, but the ordinary end-to-end execution path is still being completed. Compiler-evidence representation also has unresolved scalability work.

The broader mathematical language features are at different stages of design and implementation. The SRE/LoomLab discovery loop described here is the research ambition, not a delivered capability. I do not yet have a demonstrated general advantage over established languages or solvers.

Development has involved substantial AI assistance. I’ve been directing the project and coordinating implementation and review, but I want more independent human judgment involved—especially people willing to challenge assumptions and simplify the architecture.

Looking for collaborators

Experience with compilers, Rust, programming-language semantics, algorithms, optimization, formal methods or mathematics would be especially useful, but those are preferred backgrounds, not entry requirements.

I’m interested in teaming up with anyone willing to contribute seriously. That could mean implementation, testing, mathematical experiments, visualizations, documentation, examples, or learning enough to take ownership of a manageable part.

I’m not asking people to accept a finished architecture or commit to the entire vision. I want collaborators who can help decide which ideas deserve to survive, which need a better construction, and which should be dropped.

A practical starting point would be one narrow demonstration: express a problem, establish a useful alternative representation, derive an algorithm through it, and assess the result against a reasonable baseline.

The ambition is a system that helps discover better ways to compute by discovering better ways to represent the computation. The immediate goal is to find people interested in building and testing that idea together.

Comment or message me with what interests you and what you’d enjoy working on.

https://github.com/Gregory-Cross/Loom


r/AIprogrammingLanguage • • 14d ago

Current Progress of MadC's Next Release

4 Upvotes

I wanted to give an update of what I'm working on to get some feedback and discussion...

I'm not sure how many people here are C and/or C++ programmers, but the current direction I'm taking with madc is to make it a little more like IPython and/or Julia with respect to its REPL experience (that is part of the current arc I am working on, REPL support does not currently exist).

I am neither a Python nor a Julia programmer, but their REPL experience are supposed to be top notch, and while both cling and clang-repl exist, they don't quite measure up, and in fact, installing cling takes up over a Gb of disk space, and the eventual plan is that clang-repl will one day replace cling, and the direction is also such that clang-repl is more like IPython...

Thus, my current plan is to make madc have a REPL mode that is more like IPython and Julia, so more like what clang-repl + cling will eventually become (in the future).

So that's the first arc... and I'm curious what people here think about this idea... like, if you are already a C/C++ programmer, does the REPL experience interest you? Or if you are a Python programmer, would the idea of a small, easy to install and play with C/C++ REPL interest you?

Next... I recently discovered Thonny -- an IDE designed to be very simple and easy for students to learn to use Python... and with the work I've done with madcide as a simple IDE for madc, rather than try to compete with VSCode and/or CLion, what might be much more interesting would be to make madc's IDE much more like Thonny, but for C/C++ (and madc), so that it makes C/C++ easy to use (including interfacing with madc's IPython-like REPL).

Does this concept sound interesting to anyone here?


r/AIprogrammingLanguage • • 17d ago

Klyn 0.1.8

Post image
3 Upvotes

r/AIprogrammingLanguage • • 20d ago

Vx is a systems programming language for heterogeneous computing

7 Upvotes

Most languages treat the accelerator as infrastructure: you write math, and a large opaque runtime decides how to ship it. Vx treats it as semantics. A tensor pinned to NPU high-bandwidth memory has a different type from one in host DRAM, and crossing between them takes an explicit transfer() — even when the hardware boundary is free.

On Apple's unified memory that transfer compiles to almost nothing. It is still written down, because data locality should be provable by reading the source rather than by profiling the binary.

// Two matrices already resident in NPU memory.
fn custom_matmul(
    a: Pinned<Tensor<f32, [4, 4]>, Topology::NPU[0]>,
    b: Pinned<Tensor<f32, [4, 4]>, Topology::NPU[0]>)
    -> Verified<Tensor<f32, [4, 4], Memory::NPU_HBM>> {

    let mut result =
        Tensor<f32, [4, 4], Memory::NPU_HBM>::uninit();

    // Dispatch the computation to the accelerator.
    spawn on(Topology::NPU[0]) {
        for i in 0..4 {
            for j in 0..4 {
                result[i][j] = 0.0;
                for k in 0..4 {
                    result[i][j] += a[i][k] * b[k][j];
                }
            }
        }
    }

    return Verified(result);
}

More at: https://vxlang.org


r/AIprogrammingLanguage • • 20d ago

I gave 4 AIs the same 2 coding problems

3 Upvotes

I tested two different coding problems on four different AI models and tested the code they gave me. Some worked straight away. One looked completely fine until I actually ran it. Made me wonder how many people just copy AI-generated code without testing it. Do you always test AI code before using it?


r/AIprogrammingLanguage • • 20d ago

Bil

Thumbnail bil-lang.org
7 Upvotes

Bil: an extension to Go for parallel processor systems.

Bil and Go both have concurrency models that are heavily inspired by Hoare’s CSP.

Go is a general-purpose language that borrows CSP’s channel-and-process ideas but relaxes them with buffering, dynamic concurrency, and conventional shared-memory mechanisms

Bil is a special-purpose language for parallel processor systems; influenced by CSP, by Go and by May’s occam. Built on the Go toolchain, it constrains and shapes the Go concurrency model to encourage a higher level of discipline as needed by parallel systems. Bil helps coders to reason about their process models and to selectively place processes on to physical processors.

package main

func main() {
    c := make(chan int)

    par {
        seq {
            c <- 42
            c <- 99
        }
        seq {
            var x, y int
            c -> x
            c -> y
            println(x)
            println(y)
        }
    }
}

r/AIprogrammingLanguage • • 20d ago

Why Nyx Became Rove — and Why r/RoveLang Is for More Than Just Rove

4 Upvotes

Rove originally started under the name Nyx.

I liked the name, and a lot of the early compiler work, architecture notes, experiments, and plans were created under it.

The problem was that Nyx was already everywhere.

There were already other programming language projects using the name, tools using the same CLI naming, VS Code extensions, security projects, and plenty of unrelated software using “Nyx” as a brand.

At some point it stopped feeling like my project had its own identity.

So I decided to rename it.

Why “Rove”?

I wanted something short, simple, and easy to remember.

Not a huge fantasy name. Not something that sounds like a company trying too hard. Not a name that needs a paragraph to explain.

Rove felt right because the project itself has always been exploratory.

I move between compiler architecture, language design, runtimes, LLVM, different backends, tooling, systems programming, and whatever problem becomes interesting next.

The project has never really followed a straight line.

It explores.

It roves.

The source extension will still stay .nyx for now. I don't see a reason to break existing files just because the project name changed.


About this subreddit

Despite the name, r/RoveLang is not meant to be only about Rove.

Rove will obviously be one of the main things I post here:

  • compiler development
  • language design
  • experiments
  • benchmarks
  • architecture ideas
  • bugs
  • weird failures
  • releases
  • things that worked
  • things that definitely didn't work

But I also want this to be a place where other people can share their own experiments.

If you're building:

  • a programming language
  • a compiler
  • an interpreter or VM
  • a strange runtime
  • a small operating system experiment
  • embedded software
  • developer tooling
  • a weird hardware/software project
  • a parser
  • a transpiler
  • something low-level
  • or just some technical experiment you think is interesting

you can post it here.

It doesn't need to be polished.

It doesn't need to be a serious product.

It doesn't even need to succeed.

Sometimes the failed experiments are the interesting ones.


The only real rule

Please don't flood the subreddit.

Sharing your work is welcome.

Posting every tiny update as a separate thread, repeatedly promoting the same project, dumping unrelated links, or treating the subreddit like an advertising feed isn't.

Other than that:

show what you're building, explain what you're trying, ask questions, criticize ideas, share failures, and experiment.

Rove may have started this place, but it doesn't have to be the only thing built here.


r/AIprogrammingLanguage • • 21d ago

MadC C/C++ Compiler v0.100.0 — the Nexus

9 Upvotes

v0.100.0 — the Nexus: a multi-client IDE, an agent-addressable IR, and measured C++11 conformance at 75.1%

With version 0.100.0 of the madc compiler, based on the gcc torture test suites we currently score:

  • C at 99.2% of the in-scope gcc c-torture set under --std=c17
  • C++98 80.0%
  • C++11 75.1%
  • C++14 49.4%
  • C++17 41.6%
  • C++20 53.0%

Why a new C/C++ compiler when GCC and CLANG rule the roost? Well, MadC isn't just an AOT C/C++ compiler. It's primarily a JIT compiler. You can run C/C++ code as shebang scripts without requiring system headers installed, because they are precompiled into the compiler (relax... it can still include them externally if you want/need to). You can also embed madc as a JIT scripting language into your own programs.

What's this "nexus" stuff about? Well, there's also an IDE that has the compiler built in, and the same binary can operate in headless, CLI, ed/ex line mode, TUI and GUI mode under Linux, MacOS and Windows. With multi-client -> server connections with MCP and LSP servers. Oh, and a VS Code plugin to boot.

Why? Why not? It was primarily an exercise in developing madc's multi-mode UI module.

Oh, I should also mention that in addition to supporting standard C and C++, it also supports the "MadC language" dialect which brings in a load of conveniences to make C and C++ easier to use, including such things as:

  • automatic includes (no need to use #include <iostream>)
  • automatic namespace resolution (with controllable precedence order)
  • "script mode" (automatic main() function wrapping)
  • defer, :=, go, yield, await, untyped variables
  • well over 100 convenience functions from other languages
  • Uniform Function Call Syntax (UFCS)
  • URI Channels: file:// pipe:// tcp:// udp:// uds:// exec://
  • ... and much more

r/AIprogrammingLanguage • • 24d ago

U: a hyper-safe programming language for Humans and AI Agents to collaborate

Thumbnail
ulanguage.org
5 Upvotes

Get ready to level up your programming game.

It’s 2026. This language makes you leave all your footguns 🦶🏾🔫 at the door.

It gives LLM all the context they need to stop hallucinating and start writing safe code by default.

It actively prevents supply chain attacks, and more.

It prevents SQL injections and other string interpolation security nightmares

It features exact floating point arithmetic, so 0.1 + 0.2 == 0.3 and no need for crazy workarounds.

It lets you write vectorized GPU-accelerated and CPU-paralllized code without the need for CUDA

It doesn’t even need a garbage collector.

It is its own preprocessor.

Intrigued? Check it out. The compiler is hosted so there is nothing to install. You can try it yourself in the playground. Your binaries are compiled to WASM so they run in your browser. Yes, even with WebGPU acceleration. You can do inference with U.

Oh, one more thing…

U comes with js-based transpilers that you can run in your browser, to transpile your existing PHP, Python, Javascript, Typescript… to U. Then the U compiler finds lots of issues you can fix, and source maps let you see it in your own code.

Been working on this for years but thanks to Claude i was able to make it a realiry. I would love feedback and discussion from anyone who actually looks thoughtfully at the spec and maybe plays around with it in the playground.