Skip to content

Free as in beer, free as in algebra. Language with (co)algebraic effects and (co)handlers

Notifications You must be signed in to change notification settings

Tomatosoup97/freak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Freak

Experimental functional programming language with (co)algebraic effects and (co)handlers, implemented by doing continuation passing style tranformation.

CPS translation for algebraic effects in the language is based on existing Links langauge, and coalgebraic part on Runners in Action.

For an introduction to algebraic effects, see resources in effects-bibliography.

This language is implemented as a part of thesis, which can be found here. In that document you can find everything about semantics of the language, implementation details, as well as solid mathematical foundations.

Usage guide

All commands are available within src directory.

Build and install

  • Install dependencies: make install
  • Compile: make build
  • Link to PATH: sudo make link
  • Remove artiacts: make clean

After compiling and linking program to PATH, one may evaluate program as follows: freak <path-to-file>. To display all usage options, type freak --help. Variety of examples in Freak language can be found in this directory.

Running tests

Test cases are available here, they include both inline and file-based tests. For more details about writing tests, one may refer to HUnit documentation.

  • Run tests: make tests
  • Run code linter: make lint
  • Compile, run linter and tests: make check

About

Free as in beer, free as in algebra. Language with (co)algebraic effects and (co)handlers

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages