Skip to content

Roadmap

Completed:

  • Lexer
  • Parser
  • AST
  • CLI
  • Error handling

Current milestone:

  • Runtime values
  • Environment
  • Interpreter
  • Built-ins
  • Arithmetic
  • Comparisons
  • Boolean logic
  • Conditionals
  • Variables
  • Assignments
  • Functions
  • Return

Target:

let name = "Tanmoy"
let age = 23
fn greet(name) {
return "Hello, " + name
}
if age >= 18 {
print(greet(name))
}

Expected output:

Hello, Tanmoy

Potential features:

let numbers = [1, 2, 3, 4]
print(numbers[0])

Potential additions:

  • Arrays
  • Indexing
  • Maps
  • String methods
  • Collection operations

Potential features:

  • for
  • while
  • break
  • continue

Potential features:

  • Modules
  • Imports
  • Exports
  • Standard library

Example:

import math
print(math.sqrt(16))

Potential tools:

nxl fmt
nxl check
nxl run
nxl build

And eventually:

  • Formatter
  • Linter
  • Language Server
  • Editor integrations
  • Debugger

The initial interpreter can eventually evolve into a bytecode compiler and virtual machine:

Source
Lexer
Parser
AST
Bytecode compiler
NXL Virtual Machine

Potentially:

Source
AST
Bytecode
VM