Skip to content

Releases: sayedrisat/bnscript

BN Script v0.1.0 Alpha - First Public Compiler Release

04 Jun 04:34

Choose a tag to compare

🚀 BN Script v0.1.0 Alpha — First Public Compiler Release

BN Script is an automation-first programming language that compiles to JavaScript.

Today marks the first public alpha release of BN Script, featuring a complete compiler pipeline, runtime system, command-line interface, and function support.

This release focuses on building a solid foundation for future language features while keeping the architecture simple, testable, and extensible.


✨ What's Included

Compiler Pipeline

BN Script now includes a complete compiler frontend:

  • Lexer
  • Parser
  • Abstract Syntax Tree (AST)
  • Semantic Analyzer
  • JavaScript Generator

Runtime

Built-in runtime helpers:

  • File Operations
  • Environment Variables
  • HTTP Requests
  • Wait/Sleep Utilities
  • Runtime Error Handling

CLI

Validate, build, and run BN Script programs directly from the command line.

bn check app.bn
bn build app.bn
bn run app.bn

🏗 Architecture

BN Script follows a real compiler architecture:

BN Script Source
        ↓
      Lexer
        ↓
      Parser
        ↓
 Semantic Analyzer
        ↓
 JavaScript Generator
        ↓
      Runtime
        ↓
        CLI

Unlike simple transpilers based on string replacement, BN Script uses structured parsing and semantic analysis before generating JavaScript.


🔥 Supported Features

Current Alpha supports:

Variables

dhori name = "Risat"

Constants

sthir version = 0.1

Output

dekhi "Hello World"

Conditionals

jodi score >= 90 {
  dekhi "Excellent"
} nahole {
  dekhi "Keep Going"
}

Functions

kaj greet(name) {
  ferot "Hello " + name
}

dekhi greet("Risat")

Literals

sotti
mittha
khali

Operators

+
-
*
/
%
**
==
!=
>
<
>=
<=
ebong
othoba
na

🎉 New in Alpha

Stage 7 Function Support has been completed.

Example:

kaj greet(name) {
  ferot "Hello " + name
}

dekhi greet("Risat")

Output:

Hello Risat

Supported:

  • Function declarations (kaj)
  • Return statements (ferot)
  • Function parameters
  • Function calls

📝 Example Program

BN Script

kaj greet(name) {
  ferot "Hello " + name
}

dekhi greet("Risat")

Generated JavaScript

function greet(name) {
  return "Hello " + name;
}

console.log(greet("Risat"));

🧪 Testing

This release ships with:

  • Unit Tests
  • Compiler Tests
  • Runtime Tests
  • CLI Tests
  • Integration Tests

103+ automated tests passing


🗺 Roadmap

v0.2

  • Assignment Expressions
  • Variable Reassignment
  • Compound Assignment Operators

v0.3

  • While Loops
  • For Loops

v0.4

  • Arrays
  • Objects

v0.5

  • Imports / Exports
  • Modules

Future

  • AI Runtime Helpers
  • REPL
  • Language Server (LSP)
  • VS Code Extension
  • Package Ecosystem

⚠ Alpha Limitations

The following features are not yet available:

  • Assignment Expressions
  • Loops
  • Arrays
  • Objects
  • Imports / Exports
  • Async / Await
  • Package Manager

Function support is now available, including:

  • kaj function declarations
  • ferot return statements
  • Function parameters
  • Function calls

This release is intended for experimentation, feedback, and language-design discussions.


🤝 Contributing

Contributions, feedback, bug reports, and language-design discussions are welcome.

If you're interested in:

  • Compiler Development
  • Programming Language Design
  • JavaScript Tooling
  • Open Source Developer Tools

Feel free to open an issue or submit a pull request.


⭐ Support The Project

If you find BN Script interesting:

  • Star the repository
  • Report bugs
  • Suggest features
  • Share the project with other developers

Repository:
https://github.com/sayedrisat/bnscript

Release:
https://github.com/sayedrisat/bnscript/releases/tag/v0.1.0-alpha.0


🚀 Current Status

✅ Lexer
✅ Parser
✅ AST
✅ Semantic Analyzer
✅ JavaScript Generator
✅ Runtime System
✅ CLI
✅ Function Support
✅ 103+ Automated Tests Passing


BN Script v0.1.0 Alpha

The first public compiler release is here.

Build. Experiment. Break things. Give feedback.