Creator & Project Story

The Story Behind BJEX

BJEX is a modern, beginner-oriented programming language built entirely from scratch in Java — combining the readability of Python, the flexibility of JavaScript, and the robust architecture of a full interpreter pipeline.

Bhargav Gondaliya

Bhargav Gondaliya

Creator • Language Designer • Interpreter Developer

BJEX is not a fork, wrapper, or modification of any existing language. It is a ground-up personal engineering project designed to explore every layer of compiler and interpreter design — from lexical analysis to runtime execution.

Every major component — the Lexer, Tokenizer, Parser, Abstract Syntax Tree, Runtime Environment, Standard Library, Module System, and Exception Handling Framework — was carefully architected and hand-written to provide both educational clarity and real programming capability.

BJEX was built as a final-year BCA project and stands as a demonstration that a working, feature-complete programming language can be created by a single developer with the right foundation in computer science.

"Programming should be easy to learn, enjoyable to practice, and powerful enough to build real solutions. BJEX was created not just to write programs — but to understand how programming languages themselves are built."
— Bhargav Gondaliya, Creator of BJEX

Language Design Philosophy

Four core principles guide every decision in BJEX — from syntax choices to runtime behaviour.

Simplicity

Programs should be easy to read and write. BJEX removes the ceremony that forces beginners to fight syntax before they can express ideas.

Readability

Code should read like natural problem-solving. Conditionals, loops, and functions use clear, consistent patterns with zero ambiguity.

Practical Learning

Every language feature teaches a real programming concept — variables, recursion, file I/O, exception handling, and modular design are all first-class citizens.

Low Learning Curve

What Java needs five lines to express, BJEX does in one. Learners focus on logic and algorithms, not boilerplate and type declarations.

Core Language Features

A complete feature set designed to take a beginner from "Hello, World" to real programs with data structures, I/O, and modular design.

Variables & Dynamic Types

Integers, floats, booleans, strings, arrays, dictionaries, matrices, symbols, and time — all inferred at runtime.

Input / Output

Simple input() and print() primitives let interactive programs be written in two lines.

Control Flow

Full if / else, for loops, and while loops with clean, unambiguous syntax.

Functions & Recursion

First-class functions with func keyword, return values, and full recursion support.

Arrays & Dictionaries

Dynamic arrays with built-in append(); key-value dictionaries with keys() and values().

String Utilities

Built-in len(), upper(), lower(), substr(), split(), join(), contains().

Exception Handling

try / exception / finally blocks teach structured, safe error management from day one.

File Handling

readfile() and writefile() — full disk I/O in a single function call.

Module System

Import standard modules with import std.bjex for reusable, namespaced libraries.

Matrix Support

Native matrix type with + and * operator overloading for mathematical programming.

Symbol Type

Lightweight symbolic values (:ready, :error) for clean state-machine style programming.

Range & Time

One-liner range(1, 10, 1) for sequence generation; now() for real-time timestamps.

Type Inspection

typeof(), isnumber(), isbool(), islist() — runtime type checking built in.

Flexible Comments

Supports //, #, /* */, and <<< >>> multi-line blocks — four styles, zero friction.

Supported Data Types

Nine native types cover everything from basic arithmetic to time-aware and symbolic programming.

Integer Float Boolean String Array Dictionary Matrix Symbol Time

Internal Architecture

BJEX implements the complete pipeline of a production-grade interpreter — every stage hand-written, no third-party parser generators.

Source Code .bjex file
Lexer Tokenisation
Parser Grammar rules
AST Syntax tree
Interpreter Tree-walk eval
Runtime Environment
Output Program result

Educational Value

BJEX teaches programming at two levels simultaneously — how to write programs, and how programming languages are themselves built.

🔬

Lexical Analysis

🌳

Abstract Syntax Trees

⚙️

Interpreter Design

🔁

Runtime Execution

📦

Variable Scoping

🧩

Function Calls & Recursion

🛡️

Exception Handling

📚

Language Implementation

Built With

Pure Java — no parser generators, no external runtime dependencies.

Java Hand-written Lexer Recursive Descent Parser AST Design Tree-walk Interpreter OOP Architecture Compiler Design Principles Runtime Environment Exception Handling Module System Standard Library

Future Scope

BJEX continues to evolve. Planned milestones on the roadmap:

🏗️Object-Oriented Programming & Classes
λLambda Expressions
📦Package Management
💻Interactive REPL
🌐Web-based Playground
Bytecode Compilation
🔌IDE Plugin Support
🤝Community Contributions

BJEX is built to help the next generation of programmers learn coding faster, understand concepts deeper, and enjoy the process of becoming software developers. It is not just a language — it is an open invitation to understand what happens beneath the surface of every line of code.

— Bhargav Gondaliya  ·  Creator, BJEX Language
```