aboutsummaryrefslogtreecommitdiff

Clone or download

  • Download the latest version as a ZIP or tarball
  • Clone with: git clone https://elmord.org/code/fenius-go

The Fenius programming language

Fenius is a programming language I am designing and playing with in my free time. It aims to mix elements of functional and object-oriented programming, a controlled but not restrictive approach to mutability, and language extensibility through Lisp-style macros in a conventional, non-Lispy syntax.

Fenius is very much a work in progress: both the design and the implementation are still in development. Everything is subject to change, but do I like the form it is taking.

For more details on the language, you can have a look at the preliminary Fenius report; not everything in that document is implemented, and parts of the design described there have already changed, but it gives a good idea of what the language is about. You can also have a look at the examples directory.

Installation

You will need Go to build the project. You can find it here or via your distribution package manager (e.g., apt install golang on Debian).

Once you have that, all you have to do is run:

go get -u elmord.org/fenius

and you will get a fenius binary in your Go binary path (usually ~/go/bin). Alternatively, you can clone this repository and run go build.

You can then run fenius to get an interactive REPL, or fenius somefile.fen to run a Fenius script.

License

Copyright © 2020 Vítor Bujés Ubatuba De Araújo

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.