←back to thread

439 points david927 | 1 comments | | HN request time: 0s | 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 #
1. NotAnOtter ◴[] No.44445710[source]
If one wished, could they do something like

`save adults to "adults.json" as XML`

The expected output would be a file with the name "adults.json" containing XML data. I don't see much benefit in this specific use case but I do have a 'code smell' in having the language automagically determine the output structure for me.