Skip to content
/ Flori Public

a low fat programming language for system/application with region.

License

Notifications You must be signed in to change notification settings

snowlt23/Flori

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flori

Warning: This project is work in progress. (very early stage)

Flori is statically typed programming language without GC for system/application programming.

Features

  • Statically typed.
  • Blazing fast and easy memory management by Explicit Region.
  • Flexible meta syntax, It's F Expression.
  • Native compile via C. (It's so fast and portable!)
  • Ultimate power for Metaprogramming.
  • Interactive development environment. (Common Lisp SLIME like)

Inspired languages

  • Nim
  • Forth
  • bone-lisp
  • xtlang
  • REBOL
  • Clojure
  • Common Lisp

Examples

Hello World

import "core"

println("Hello World!")

Fibonacci

import "core"

fn fib(n Int) Int {
  if (n < 2) {
    n
  } else {
    fib(n-1) + fib(n-2)
  }
}

println(fib(38))

Other examples, please reference /examples or /tests/floritests.

Usage

$ flori c <filename>

Prebuilt Binaries

Releases

Compiler Instructions

Requirements

  • Nim (0.18.0)
    • nimble
  • GCC (GNU C Compiler)
  • TCC (Tiny C Compiler)
# Build
$ nimble install nake
$ nimble install docopt
$ nake build
$ export PATH="$PATH:<flori-dir>/bin"
# Test
$ nake test

TODO

  • Documentation
  • Error Handling System
  • LiveReload
  • ImageDump
  • Concurrency
  • Standard Library
  • Reduction Build Times
  • Disassembler, Debugger, Profiler
  • Region Profiler
  • Package Manager
  • IDE tool (Rabbit)
  • Self Hosting

About

a low fat programming language for system/application with region.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages