Skip to content
/ JazzML Public

JazzML(formelly JazzScript) statically typed programming language for scripting

Notifications You must be signed in to change notification settings

nilq/JazzML

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JazzML

ML-like language used for scripting

Examples

Data

let TokenType = enum {
  String
  Number
  Identifier
  Symbol
  EOF
}

let Token = struct {
  position: (int, str) # line number and actual line
  slice:    (int, int) # beginning and end of lexeme on line

  type:   TokenType
  lexeme: str          # content of token
}

Other

let fibonacci = func(a: int) : int {
  # implicit returns
  if a > 2 {
    fib(a - 1) + fib(a - 2)
  } else {
    a
  }
}

Known issues

  • Bad perfomance Because of using Rc<RefCell> for ValueRef VM perfomance is slow

Unimplemented

  • Tail calls

TODO

  • x86_64 JIT Compiler

About

JazzML(formelly JazzScript) statically typed programming language for scripting

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published