Skip to content
A purely functional dynamically typed programming language.
OCaml Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets
bin fixed operator precedence levels, refactoring and cleanup, some docs Jan 20, 2020
examples separated list and dictionary iterator primitives in their appropriat… Jan 18, 2020
lib purity inference is now performed before evaluation of files and mult… Jan 26, 2020
test
.gitignore
.travis.yml .travis.yml Jan 27, 2020
CHANGES.md
LICENSE added license, fixed changelog Dec 3, 2019
Makefile
README.md
TODO.md moved binary operators to their own AST expression containing the kind Jan 16, 2020
dune-project
gobba.opam

README.md

gobba

Build Status Coverage Status

gobba

gobba is a dynamically typed and purely functional interpreted programming language, heavily inspired from the OCaml, Haskell and Scheme languages. It is based on Professors Gianluigi Ferrari and Francesca Levi's minicaml interpreter example. The goal for gobba is to be a practical language with built in support for scientific computing, solving some of the problems that exist in other dynamically typed interpreted languages like python and Javascript. A primary goal is also to offer a compromise between solidity, ease of learning and the ability to express ideas quickly in the language.

Features

  • C and Haskell-like syntax with lexical scoping
  • Only immutable variables
  • Dynamically typed
  • Eager (default) and lazy evaluation
  • Simple but effective module system
  • Interactive REPL with readline-like features such as completion, search and hints
  • The REPL has didactical debugging option to print expression ASTs and every reduction step.
  • Static inference to separate pure and impure computations
  • A lot more coming in the next releases...

Check out the Basics Chapter in the Gobba Handbook.

Documentation

You can read the Gobba documentation in the Gobba Programming Language Handbook

The internal documentation is available here. Please note that the language at the current status is in an experimental phase and therefore the specification is not complete, and will be constantly updated. The documentation may not be up to date with the latest features in the master branch.

Installation

To install, you need to have opam (OCaml's package manager) and a recent OCaml distribution installed on your system. You can install gobba by running

opam install gobba

If you want to compile gobba manually, read the installation chapter in the gobba Handbook

Examples

Check the examples/ directory for some example programs.

You can’t perform that action at this time.