We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.
amitabhC
| Paradigm(s) | cultural, imperative |
|---|---|
| Designed by | jay123anta |
| Appeared in | 2025 |
| Memory system | variable-based |
| Dimensions | one-dimensional |
| Computational class | Turing complete |
| Major implementations | Online Interpreter |
| Influenced by | Bollywood cinema, Hindi language |
| Influenced | Cultural programming languages |
| File extension(s) | .amitabhc |
AmitabhC is an esoteric programming language created in 2025, inspired by Bollywood cinema and the legendary actor Amitabh Bachchan. The language uses iconic dialogues, film references, and Hindi phrases from Bachchan's career as programming constructs, and every runtime error message is an iconic Bachchan dialogue. A working interpreter is available at [1], along with an npm CLI (npm install -g amitabhc) and a VS Code extension.
Language overview
AmitabhC programs follow a cinematographic structure mimicking a film shoot: every program starts with LIGHTS, followed immediately by CAMERA, and ends with ACTION as the last line. Statements are line-based; lines beginning with // are comments. The language features variables and constants, arrays and dictionaries, four loop forms, functions with recursion, try/catch/finally, a switch-case, string interpolation, and six built-in namespaces - all named after Bachchan films.
| Keyword | Function | Cultural Reference |
|---|---|---|
LIGHTS
|
Program start (first line) | Film production command |
CAMERA
|
Start of the program body (must follow LIGHTS) | Film production command |
ACTION
|
Program end (last line) | Film production command |
BOLO
|
Output/print statement | "Speak/Say" in Hindi |
SUNO
|
Input statement, with optional custom prompt: SUNO naam "Aapka naam?"
|
"Listen" in Hindi |
VIJAY
|
Variable declaration; VIJAY arr[] = {a, b, c} declares an array
|
Bachchan's most frequent character name |
DON
|
Constant declaration (reassignment raises "Main aaj bhi phenke hue paise nahin uthata!") | Reference to the "Don" film series |
AGAR / NAHI TOH AGAR / NAHI TOH / BAS
|
If / else-if / else / end of conditional | "If" / "otherwise" in Hindi |
BAAR BAAR n MEIN i ... KHATAM
|
For loop (n may be any expression; counter in i or _GINTI, 0-based)
|
"Again and again" in Hindi |
JAB TAK ... RAHEGA
|
While loop | "As long as" in Hindi |
HAR EK item MEIN arr ... KHATAM
|
For-each loop over an array | "Each one" in Hindi |
ZANJEER_LOOP ... TAB TAK cond
|
Do-while loop | "Zanjeer" (1973) |
DEEWAR / SILSILA
|
Break / continue | "Deewaar" (1975), "Silsila" (1981) |
NAAM
|
Function declaration | "Rishtey mein toh hum tumhare baap lagte hain, naam hai Shahenshah" |
WAPAS
|
Return statement | "Return/Back" in Hindi |
PURA
|
End function | "Complete/Finished" in Hindi |
BULAAO
|
Explicit function call: BULAAO greet("Vijay") (optional; greet("Vijay") alone also works)
|
"Call" in Hindi |
AGNEEPATH / MRITYU / PRATIGYA / KHATAM
|
Try / catch / finally / end | "Agneepath" (1990) |
KBC_SAWAAL / OPTION / SAHI_JAWAB / AGLE_SAWAAL
|
Switch / case / default / end (no fallthrough) | "Kaun Banega Crorepati" question format |
BADHAO / GHATAO
|
Increment / decrement a variable | "Increase" / "Decrease" in Hindi |
INTEZAAR
|
Pause execution in milliseconds (default 1000, capped at 5000) | "Wait" in Hindi |
SHAKTI / KAALIA / LAAWARIS
|
Boolean true / false / null | "Shakti" (1982), "Kaalia" (1981), "Laawaris" (1981) |
DEEWAR_BANAO{"k": v} / DEEWAR_JODO
|
Dictionary literal / add a key to a dictionary | "Deewaar" (1975) |
DEVIYON_AUR_SAJJANO
|
Greeting command (prints a welcome message) | "Ladies and Gentlemen" - KBC opening phrase |
COMPUTER_JI_LOCK_KIYA_JAYE
|
Prints the answer-locked message | Famous KBC phrase "Computer ji lock kiya jaye" |
PHONE_A_FRIEND "name"
|
Prints a call-a-friend message | KBC lifeline |
AUDIENCE_POLL
|
Prints a random audience-poll percentage | KBC lifeline |
LIFELINE_FIFTY_FIFTY
|
Prints the 50:50 lifeline message | KBC lifeline |
QUIT_GAME
|
Terminates the program cleanly (not catchable by MRITYU)
|
KBC: player quits with winnings |
Strings support escape sequences (\n, \t, ...) and interpolation with ${expr}. Operators include arithmetic (+ - * / %), comparison, logical (&& || !), and compound assignment (+= etc.). Six built-in namespaces provide standard-library functions: SHAHENSHAH (19 string functions), COOLIE (math), KHAZANA (arrays), NASEEB (date/time), ZANJEER (type checking/conversion), and DEEWAR (dictionaries) - e.g. SHAHENSHAH.uppercase("don"), COOLIE.sqrt(144), KHAZANA.push(arr, 42). AmitabhC keywords cannot be used as identifiers. Comment lines start with // (inline comments are not supported).
History
AmitabhC was created in 2025 as an exploration of cultural programming languages, specifically focusing on Indian cinema culture. The language demonstrates how familiar cultural references can make programming concepts more accessible and memorable to communities familiar with Bollywood cinema. The creator chose Amitabh Bachchan as the central inspiration due to his iconic status in Indian cinema, spanning over five decades with memorable dialogues and character archetypes that have become part of popular culture. The language represents one of the first esoteric programming languages to extensively use Bollywood cinema as its core metaphor. The interactive elements inspired by "Kaun Banega Crorepati" (KBC) add a unique game-show dimension to programming, making the language both educational and entertaining. Version 4.1.0 (2026) brought a full standard library, error handling, a 75-test automated suite, an npm CLI, and a VS Code extension.
Examples
All examples below run unmodified on the online interpreter.
Hello, World!
This program demonstrates the basic structure and greeting:
LIGHTS
CAMERA
DEVIYON_AUR_SAJJANO
BOLO "Namaste! Main hoon AmitabhC!"
ACTION
Variable Declaration and Conditionals
This program shows variables, a constant, and an if/else:
LIGHTS
CAMERA
DEVIYON_AUR_SAJJANO
VIJAY name = "Amitabh Bachchan"
VIJAY age = 80
DON films = 200
BOLO "Superstar Details:"
BOLO "Name: " + name
BOLO "Age: " + age + " years"
BOLO "Films: " + films + " movies"
AGAR age > 75
BOLO "Main hoon ek living legend!"
NAHI TOH
BOLO "Abhi toh main jawaan hoon!"
BAS
ACTION
Function Definition
This program demonstrates function creation with Bollywood flair:
LIGHTS
CAMERA
NAAM greet(message)
BOLO "🎬 " + message
WAPAS SHAKTI
PURA
DEVIYON_AUR_SAJJANO
BULAAO greet("Rishtey mein toh hum tumhare compiler lagte hain!")
ACTION
KBC Interactive Programming
This program showcases the game-show inspired elements, input, and the switch-case:
LIGHTS
CAMERA
DEVIYON_AUR_SAJJANO
BOLO "What is the capital of India?"
LIFELINE_FIFTY_FIFTY
AUDIENCE_POLL
PHONE_A_FRIEND "Computer Ji"
SUNO answer "Aapka final jawab?"
KBC_SAWAAL answer
OPTION "Delhi"
COMPUTER_JI_LOCK_KIYA_JAYE
BOLO "Sahi jawab! Bilkul sahi!"
SAHI_JAWAB
BOLO "Galat jawab..."
AGLE_SAWAAL
ACTION
Factorial Program
A more complex example showing recursion:
LIGHTS
CAMERA
NAAM factorial(n)
AGAR n <= 1
WAPAS 1
NAHI TOH
WAPAS n * factorial(n - 1)
BAS
PURA
DEVIYON_AUR_SAJJANO
VIJAY result = factorial(5)
BOLO "Factorial of 5 is: " + result
ACTION
Loops and Error Handling
For-each iteration over an array, and try/catch with a dialogue error message:
LIGHTS
CAMERA
VIJAY films[] = {"Sholay", "Deewaar", "Don"}
HAR EK film MEIN films
BOLO "🎬 " + film
KHATAM
AGNEEPATH
BOLO 10 / 0
MRITYU err
BOLO "Caught: " + err
KHATAM
ACTION
The catch block prints: Caught: Division by zero - "Zero se divide kaise kar sakte hain?". An undefined variable produces "Don ko pakadna mushkil hi nahi, naamumkin hai!".
Computational class
AmitabhC is Turing complete. The language supports:
- Variable assignment and manipulation, arrays, and dictionaries
- Conditional branching using
AGAR/NAHI TOH AGAR/NAHI TOH/BASand switch-case viaKBC_SAWAAL - Four loop forms (
BAAR BAAR,JAB TAK,HAR EK,ZANJEER_LOOP) withDEEWAR/SILSILA(break/continue) - Function definition and recursion using
NAAM/WAPAS/PURA - Input/output operations through
SUNOandBOLO
With unbounded integer values (within IEEE doubles), conditionals, while loops, and recursion, AmitabhC can express any computation of a universal Turing machine, up to the reference interpreter's configurable safety limits (10,000 loop iterations, 100 call depth, 30-second execution cap).
Cultural Programming Concept
AmitabhC represents a unique approach to esoteric language design through cultural accessibility:
Linguistic Diversity
The language incorporates Hindi language elements naturally into programming constructs, making it more accessible to Hindi-speaking developers and those familiar with Bollywood culture.
Character and Film References
VIJAY (Bachchan's most frequent character name) declares variables while DON (the untouchable antihero) declares immutable constants - the semantics mirror the archetypes. The six standard-library namespaces are all film titles: strings belong to Shahenshah, math to Coolie, arrays to Khazana, time to Naseeb, types to Zanjeer, and dictionaries to Deewar.
Interactive Gaming Elements
The KBC-inspired commands (PHONE_A_FRIEND, AUDIENCE_POLL, LIFELINE_FIFTY_FIFTY, COMPUTER_JI_LOCK_KIYA_JAYE, QUIT_GAME) introduce game-show mechanics into programs, and the switch-case is literally a KBC question with options.
Thematic Consistency
Every language construct maintains the Bollywood/cinema theme - including the error messages, each of which is an iconic Bachchan dialogue - creating an immersive programming experience that celebrates Indian popular culture.
Implementation Features
The reference implementation at [2] includes:
Security Features
- No
eval()usage for secure code execution - Comprehensive input sanitization and XSS protection
- Resource limits with execution timeouts, loop-iteration caps, and memory limits
- Content Security Policy (CSP) headers implementation
Tooling
- Browser-based basic editor and a Pro IDE with AmitabhC syntax highlighting
- npm CLI (
amitabhc run,amitabhc repl,amitabhc examples,amitabhc test) - VS Code extension with syntax highlighting and 28 snippets
- 75-test automated test suite and 18 example programs
Accessibility and Modern Design
- WCAG 2.1 AA compliant interface
- Full keyboard navigation and screen reader support
- Progressive Web App (PWA) functionality with offline mode
Extensions
Reserved keywords and potential extensions:
Film-Based Extensions
SHOLAY- reserved keyword for future multi-character ensemble programming- Regional cinema references and localized game show formats
Regional Variations
- Support for other Indian languages (Tamil, Telugu, Bengali)
- Devanagari script support for mixed-language programs
Conventions
The following conventions are recommended for AmitabhC programming:
Cultural Sensitivity
- Use respectful references to films and dialogues
- Maintain positive representation of characters and themes
- Include proper attribution to cultural sources
Code Style
- Begin all programs with
LIGHTS/CAMERAand end withACTION - Open with
DEVIYON_AUR_SAJJANOfor the classic KBC greeting - Use
DONfor values that must never change - Indent block bodies consistently (blocks close with
BAS,KHATAM,RAHEGA,PURA, orAGLE_SAWAAL) - Comment lines start with
//; Hindi comments are encouraged for cultural context
Related languages
AmitabhC shares cultural programming concepts with:
- LOLCODE - Internet culture-based syntax
- Shakespeare - Literature-inspired programming
- Chef - Recipe-based metaphor
- Rockstar - Music lyric-based syntax
- ArnoldC - Action-movie one-liner syntax
External resources
- AmitabhC Online Interpreter - Try the language in your browser
- AmitabhC GitHub Repository - Source code, tests, and examples
- AmitabhC Language Bible - Complete syntax reference
- AmitabhC Code Examples - Sample programs and use cases
- npm package - Command-line interpreter and REPL
See also
- LOLCODE - Internet meme-based programming language
- Shakespeare Programming Language - Literature-inspired programming
- Chef - Recipe-based programming metaphor