ebresafegaga / tina

Tina, a programming language with typed algebraic effects and handlers.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tina Programming Language

Build

Welcome to Tina

Tina is a programming language based algebraic effects and handlers. This implementation contains an interpreter and two compilers (JavaScript and LLVM)

While algebraic effects and handlers might be the central concept aroun Tina, it also supports other features such as pattern matching, closures, algebraic data types, and a type system.

This is a work in progress.

Contributing to Tina

Everyone is free to contribute!

Getting Started

There is an online playground comming soon!

Building

Building Tina is relatively straight forward once you have the required toolchains installed.

You would need:

  • Dune
  • OCaml (>= 4.12)
  • Opam

Steps to build

  • Clone this repo:
$ git clone https://github.com/ebresafegaga/tina
  • Pin it to the this version
$ opam pin add tina.dev -n .
  • Install native dependecies
$ opam depext -yt tina
  • Install library dependecies
$ opam install -t . --deps-only
  • Build the whole project
$ dune build

About

Tina, a programming language with typed algebraic effects and handlers.

License:MIT License


Languages

Language:OCaml 89.8%Language:HTML 8.1%Language:JavaScript 1.9%Language:Makefile 0.2%Language:Standard ML 0.1%