←back to thread

439 points david927 | 2 comments | | HN request time: 0.499s | source

What are you working on? Any new ideas which you're thinking about?
Show context
tamnd ◴[] No.44419212[source]
Repo: https://github.com/mochilang/mochi

I'm building Mochi, a small programming language with a custom VM and a focus on querying structured data (CSV, JSON, and eventually graph) in a unified and lightweight way.

It started as an experiment in writing LINQ-style queries over real datasets and grew into a full language with:

- declarative queries built into the language

- a register-based VM designed for analysis and optimization

- an intermediate representation with liveness analysis, constant folding, and dead code elimination

- static type inference, inline tests, and golden snapshot support

Example:

  type Person {
    name: string
    age: int
  }

  let people = load "people.yaml" as Person

  let adults = from p in people
             where p.age >= 18
             select { name: p.name, age: p.age }

  for a in adults {
    print(a.name, "is", a.age)
  }

  save adults to "adults.json"

The long-term goal is to make a small, expressive language for data pipelines, querying, and agent logic, without reaching for Python, SQL, and a half-dozen libraries.

Happy to chat if you're into VMs, query engines, or DSLs.

replies(5): >>44420253 #>>44422333 #>>44426351 #>>44427284 #>>44445710 #
bArray ◴[] No.44422333[source]
Interesting project. I'm quite interested in developing a small programming language myself, but am not sure where to start. What resources do you recommend?
replies(2): >>44422532 #>>44429804 #
1. scapbi ◴[] No.44422532[source]
Crafting Interpreters https://craftinginterpreters.com is a super friendly, step-by-step guide to building your own language and VM, looking forward to seeing what kind of language you come up with too!
replies(1): >>44426414 #
2. Jemaclus ◴[] No.44426414[source]
I'll second this. It's fantastic.