Huginn is a computer programming language with following traits:
- interpreted (multiplatform, what you type is what you get)
- imperative (use statements to change a program's state)
- functional style (functions, lambdas and closures are first class citizens)
- object oriented (user defined types, composition, inheritance, exceptions)
- introspective, non-reflective type system (user defined types are fixed and immutable at runtime, no monkey patching)
- strongly typed (absolutely no implicit value conversions and no implicit type coercion)
- dynamically typed (final type consistency checks are done at runtime)
- duck typing (a set of members determine the valid semantics of a type)
- no quirks guarantee (semantics is consistent across types in all contexts)
- support arbitrary precision calculations per built-in type (precision is restricted only by the amount of hardware resources)
- interpreter/executor trivially embeddable in C++ code
Full language documentation can be found at Huginn home page.
The huginn
program is an executor for Huginn programming language.
It allows execution of Huginn scripts,
it can work as a stream editor,
it also provides an interactive REPL
interface for the language,
additionally it works as Jupyter's kernel core.
The language implementation itself is provided by yaal library.
This project provides only executor implementation.
Huginn can be installed from sources or from prebuild binary packages.
Following platforms are supported via prebuild binary packages downloadable with default package manager after subscribing to Huginn package repository:
- Ubuntu
- Debian (Stable and Sid)
- Fedora
- Centos
- FreeBSD
One can experiment with Huginn without necessity for installation of any software via Try It Onlilne service.