Docs Learn Packages Playground Blog
Install Try Online
v0.7.0 Now with packages, benchmarks & full toolchain

Code that reads like your own words.

ILMA is a programming language for children and beginners. Keywords are plain English. It compiles to a native binary. No intimidating syntax — just clear, joyful code.

English Keywords
Native Binary Output
Open Source
Free Forever
hello.ilma
# Your first ILMA program
remember name = "Yusuf"
say "Assalamu Alaikum, {name}!"

recipe fib(n):
    if n <= 1:
        give back n
    give back fib(n-1) + fib(n-2)

say fib(10)
► Assalamu Alaikum, Yusuf!
► 55
Why ILMA

Designed for how children actually think

Every keyword was chosen to feel natural. No symbols to memorise before you can write your first program.

greeting.ilma
# Variables read like sentences
remember age = 12
remember name = ask "What is your name?"

if age < 13:
    say "Welcome, young coder {name}!"
otherwise:
    say "Welcome back, {name}!"
error.ilma
# Handle errors the friendly way
try:
    remember result = divide(10, 0)
when wrong:
    say "Oops! {error}"
    say "Let us try a different number."
terminal
# Build and run
$ ilma build hello.ilma
  Compiling hello.ilma...
  Transpiling to C...
  ✓ Built: ./hello (48 KB)

$ ./hello
Assalamu Alaikum, Yusuf!
science.ilma
use science
use finance

remember mass = 5
say "Gravity force: {science.gravity(mass)} N"

remember savings = 5000
remember nisab  = 595
say "Zakat due: {finance.zakat(savings, nisab)}"
Built for Learners

Everything a beginner needs, nothing they don't

Readable Syntax

Every keyword — remember, say, recipe, give back — maps to an intuitive English phrase a child already knows.

Structured Learning Path

Three tiers: Seed (basics), Sapling (functions), Tree (advanced). Progress is tracked locally so you always know where to continue.

Full Toolchain

Comes with a formatter, type checker, test runner, doc generator and package manager — all in one binary.

Browser Playground

No installation needed to start. Write and run ILMA code in the browser playground, then install when you're ready.

Islamic-Aware Modules

Built-in finance.zakat, quran and Hijri calendar utilities make ILMA culturally meaningful for Muslim learners.

Real Native Binaries

ILMA isn't a toy. It transpiles to C and compiles to a real native binary. Your children's programs are fast and portable.

Language Features

A complete language, not a stripped-down toy

ILMA supports every concept a learner needs, expressed in natural language.

Pattern Matching

Use check / when for expressive branching, including range patterns like 90..100.

Blueprints (Classes)

Object-oriented programming with blueprint, me, and comes from for inheritance — no "class", "self" or "extends" to explain.

Bags & Notebooks

Lists are called bag and dictionaries are called notebook — data structures with memorable, friendly names.

Lambdas

Inline functions with recipe(x): x * 2. Higher-order functions like .map() and .filter() work on bags naturally.

Package Manager

Install community packages with ilma get package-name. Publish your own with ilma publish.

Built-in Testing

Write tests with test "name": expect ... to be ... and run them with ilma test. No extra libraries needed.

Try It Now

Write ILMA right here

Edit the code and press Run — or Ctrl+Enter. No account required.

playground.ilma
Full Editor
Output
Press Run to execute your code...
Open Full Playground with Monaco Editor

I wanted my son to learn programming, but every language felt like it was designed for professionals, not children. So I built ILMA — a language that speaks the way a curious child thinks.

— Raihan, Creator of ILMA

From the Blog

Latest articles

All Posts
Design March 2026

Why ILMA Exists: A Language Shaped by Purpose

The story behind building a programming language from scratch — and why children deserve better than Python for a first language.

Technical March 2026

How ILMA Compiles: From .ilma to Native Binary

A technical walk-through of the ILMA compilation pipeline — lexer, parser, transpiler and how we call GCC to produce a real executable.

Philosophy March 2026

The Keyword Philosophy: Why remember Beats let

Every keyword in ILMA was carefully chosen. Here is why we replaced common programming jargon with natural language that children already understand.