package gobba
Install
Dune Dependency
Authors
Maintainers
Sources
md5=ebd91da495014a6d0a34de40245ab5a6
sha512=7a5875fff15e8997d9c2db6c3a898c15f9ce144c5b4fce1d57f0c6127eb63d6780458e2fe5e90048fa81ceadd67676de4ccfc3723b2c5fbfe528d68c3b91d842
Description
A simple, didactical, purely functional programming language written for the programming 2 course at the University of Pisa, extended with a simple parser made with Menhir and ocamllex
Published: 05 Jan 2021
README
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. gobba has 3 main development dependencies you have to install on your system:
cblas
openblas
lapacke
These packages may or may not be present in the package repositories of your operating system. If they are, please be sure to install the development versions of these packages.
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.
Dependencies (11)
-
bisect_ppx
>= "1.4.1" & < "2.6.0"
- owl-base
- owl
- cmdliner
- ppx_deriving
- menhir
-
linenoise
>= "1.3.0"
-
ocamline
>= "1.2"
- ANSITerminal
-
ocaml
>= "4.07.0"
-
dune
>= "2.0"
Dev Dependencies (1)
-
alcotest
with-test & >= "0.8.5"
Used by
None
Conflicts
None