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

From Esolang
Jump to navigation Jump to search
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/BAS and switch-case via KBC_SAWAAL
  • Four loop forms (BAAR BAAR, JAB TAK, HAR EK, ZANJEER_LOOP) with DEEWAR/SILSILA (break/continue)
  • Function definition and recursion using NAAM/WAPAS/PURA
  • Input/output operations through SUNO and BOLO

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/CAMERA and end with ACTION
  • Open with DEVIYON_AUR_SAJJANO for the classic KBC greeting
  • Use DON for values that must never change
  • Indent block bodies consistently (blocks close with BAS, KHATAM, RAHEGA, PURA, or AGLE_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

See also