Skip to content
kowasaurPublic

About

A statically typed language that compiles to CIL

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

123 Commits

Folders and files

Repository files navigation

Umi

Note that the .expected files are the expected output of the corresponding .umi files.

Example

Int !(Int n, Void _) {
    if n == 0 { 1 }
    else { n * (n - 1)! }
}

Void main() {
    print(0!)  #         1
    print(1!)  #         1
    print(5!)  #       120
    print(10!) #   3628800
    print(12!) # 479001600
}

Goals

  • Compiles to CIL
  • Turing Complete
  • Self-hosted
  • Published on the AUR
  • Pong
  • VSCode extension with auto-complete, etc
  • Interoperability with C# (can use any C# file in Umi file but have to manually make bindings)

Features

  • Strong static typing
  • Implicit and explicit return
  • Function overloading
  • if and else statements
  • while loops
  • Aliases
  • Classes
    • All methods are virtual by default
    • Inheritance
  • Generics
  • Immutability by default
    • Immutable references like final in Java
    • Make variables mutable with mut keyword
  • Including other umi files (importing)
  • Creating range array with ...
    • E.g. 0...10

Planned

  • Macros or inline functions
  • for in loop
  • String interpolation
  • Anonymous functions
  • Switch cases

About

A statically typed language that compiles to CIL

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages