NanoLanguages BETA GitHub

BETA · SMALL LANGUAGES. OPEN POSSIBILITIES.

Small syntax.
Big ideas.

Your language, in a compact, readable form. Our goal is target language ↔ compact language translation, with the compact source as the source of truth: less repetition, simpler code, and extra expressive tools.

An open-source project by Mohamad Almousli

The same language.
A simpler source of truth.

NanoLanguages aims to translate in both directions between an existing target language and a compact companion language. The compact form compresses repetitive syntax while staying readable, so it can be the code you maintain, review, and trust.

Target language Existing code & ecosystem
Compact language Readable source of truth

We’re not trying to replace existing languages. The goal is to simplify working with them: bring target-language code into a compact form, maintain that form, and translate it back for the target language’s tools and ecosystem.

Beyond shorter syntax, compact languages can add programmable macros, translation-time computation, and source transformations. Express a pattern or generate repetitive code when translating, while keeping the maintained source focused on intent.

This is the project direction, not a promise of finished bidirectional support. NanoLanguages is in beta, and NanoC is still being built.

01

Compact, still readable

Remove repetitive ceremony, not meaning. Compression should make the maintained source easier to read and simpler to change.

02

More expressive tools

Macros and translation-time computation aim to capture patterns and generate boilerplate before code reaches the target toolchain.

03

Keep your ecosystem

Translate back to the target language and keep using its tools. The compact language is a companion, not a replacement.

Starting small.
Building outward.

One language taking shape.
Still being built, in the open.

NC BETA · IN DEVELOPMENT

NanoC

A compact companion for C, exploring readable source of truth with less ceremony and extra expressive tools. NanoC is still being built; the current site examples show NanoC → C output from a development snapshot.

Features under development; not a finished release.

  • Indentation-based blocks
  • Programmable macros
  • Translation-time computation & source transformations
  • No NanoC runtime in the output
hello.nc NanoC
+ <stdio.h>
f main() -> int
printf("Small source. Big ideas.\n")
return 0
Less syntax. Plain C output.Open the syntax lab ↓

The next small idea starts here.

Interested in compact languages? Explore the code, experiment, or bring a new perspective.

Find us on GitHub ↗

Less to write.
See for yourself.

A current snapshot of the compact → target direction.
Experimental NanoC examples beside generated C; this demo does not translate C back to NanoC.

Compiled from a pinned development snapshot
NanoC
Loading example…
— UTF-8 bytes
Generated C
Loading example…
— UTF-8 bytes
Loading measured comparison… Formatting included. Results vary by program.
Want to write your own? Explore the experimental NanoC playground

Made by a human.
Built for curious minds.

I’m Mohamad Almousli. NanoLanguages is my exploration of compact, readable source of truth for existing languages, with translation in both directions and tools like macros and translation-time computation. NanoC is the first step, and it’s still being built. This whole project is in beta. The source is open. Come explore.

Build something small