Skip to content
AKRAmit Kumar Raikwar
All work
Open source2025Live

EasyLang

A programming language with Hindi keywords, published on npm

Overview

EasyLang exists because for a lot of students in India the first wall is English rather than logic. Someone who understands a loop perfectly can still stall on `while`, `return` and `function`.

So I wrote a language with Hindi keywords and a complete pipeline from source text to result: tokeniser, recursive-descent parser producing an AST, tree-walking interpreter. It is on npm, and it runs in the browser through a playground.

Role
Language design, full implementation, npm package, browser playground.
Year
2025
Stack
TypeScriptNode.jsnpm

Engineering

The decisions that mattered.

  • 01

    Hand-written lexer and recursive-descent parser

    No parser generator. Writing it by hand kept every error message under my control, which matters more than an elegant grammar when the audience is beginners.

  • 02

    Error messages in the learner's language

    A syntax error reports in Hindi with the offending line and column. In a teaching language the error path is the primary interface.

  • 03

    One interpreter, Node and browser

    The core has no platform dependencies, so the npm package and the web playground run identical code. What gets taught is what ships.

Design decisions

Why it looks and behaves the way it does.

I designed this as well as built it. These are the interface calls I made and the reasoning behind each one.

01

Keywords chosen for how people speak

Keyword selection went with the words used in conversational Hindi over their formal Sanskritised equivalents. A language for beginners should read the way they already think.

02

The playground shows source and result together

Split view, no run-and-navigate step in between. Shortening the loop between typing something and seeing what it did is most of what makes a learning tool feel encouraging.

03

Errors are styled as guidance

Error output gets the same calm treatment as ordinary output. Beginners hit errors constantly, and if each one arrives looking like a crash, what they learn is to be wary of the tool.

Outcomes

What shipped.

  • Published and installable as `easylang-interpreter` on npm
  • Complete pipeline from lexer to parser to interpreter, written from scratch
  • Runs identically in Node and in the browser playground