DEV Community

Anubhav Ghoshal
Anubhav Ghoshal

Posted on

I’m a High School Student Building a Programming Language on Android

This post was formatted and re-phrased using AI, but was written by me originally. Please do not quit because I used AI to make the post better.


1. Introduction

Hi, I’m Anubhav Ghoshal, a 16-year-old developer from Jharkhand, India.

I’m currently building a programming language called San, entirely on an Android device using a Linux environment. This is a personal learning project focused on understanding how compilers and interpreters work from the ground up.


2. San — My Programming Language

San is named after the Korean word for mountain, something I’ve always been drawn to.

It is a dynamically and strongly typed language with a tree-walking interpreter architecture:

  • Lexical Analysis (Lexer)
  • Recursive Descent Parser
  • Abstract Syntax Tree (AST)
  • Tree-Walking Interpreter

The design is influenced by languages like Rust, Go, Python, and C, focusing on clarity and explicit control.

Here's the GitHub repository: https://github.com/anubhav-1207/san

Current design features:

  • Explicit mutability vs immutability
  • Explicit reassignment rules
  • Short, minimal keywords
  • Conventional syntax style (familiar structure)
  • Optional semicolons

3. Development Environment

San is being built entirely on an Android device using a Linux environment (proot setup).

This is a constraint-driven setup, but it still supports:

  • Code editing
  • Running interpreter tests
  • Iterative language development

The goal is not convenience, but learning how language internals actually work under real constraints.


4. Learning Journey

My early exposure to programming started in school, but it was initially limited to basic concepts like input/output, loops, and conditionals.

Later, I revisited programming more seriously and started understanding:

  • How variables actually work in memory
  • Why programming languages exist
  • How interpreters and compilers execute code
  • Why errors cannot always be “auto-fixed” by the language

That shift is what eventually led me toward building my own language instead of just using existing ones.


5. Building Alone & Learning Process

This project is entirely self-driven.

I did not have direct mentorship in compiler development, so I relied heavily on:

  • Documentation
  • Experimentation
  • AI-assisted explanations while learning concepts

However, all implementation decisions and code are written and understood by me, and I often rebuild components from scratch to ensure I truly understand them.


6. What San Includes Right Now

  • Basic lexer implementation
  • Parser with recursive descent approach
  • Immutability checks
  • AST generation
  • Early interpreter logic

7. What’s Next

  • Better error handling
  • Standard library basics
  • Language stability improvements

8. Closing

San is still in early development, but the goal is simple:

to deeply understand how programming languages work by building one from scratch.

Feedback is welcome.


Top comments (0)