Agena

Version: 
2.36.2
Release date: 
Monday, 9 March, 2009

License:

Interface:

Authors/Port authors:

Agena is an easy-to-learn procedural programming language suited for everyday usage. It has been implemented as an interpreter and can be used in scientific, educational, linguistic, and many other applications. Its syntax looks like very simplified Algol 68 with elements taken from Lua and SQL.

This software is distributed as compressed package. You have to download and manually install it; if prerequisites are required, you will have to manually install them too.

Manual installation

Available both as 7 ZIP and WarpIN package:

  • download the 7 ZIP package to temporary directory and unpack it to destination folder;
  • the WarpIN package is self-installing.

See below for download link(s).

You can install the prerequisites with rpm running the following string in a command line:

yum install libc libcx libgcc1 libssp libstdc++6 libstdc++ libsupc++6 libsupc++ libgcc-fwd readline ncurses

Following ones are the download links for manual installation:

Agena v. 2.36.2 (5/2/2023, Alexander Walz) Readme/What's new
2.36.2, February 05, 2023 - New `curry` transforms a function with multiple arguments into a sequence of single-argument functions, i.e. f(a, b, c, ...) becomes f(a)(b)(c)... > f := << x, y, z -> x*y + z >> > t := curry(f, 10); # returns f(10, y, z) > t(20, 30): 230 > u := curry(t, 20); # returns t(10, 20)(z) = f(10, 20, z) > u(30): 230 - `reduce` now accepts a new option, counter=true, which will assign an internal counter value, starting from one and incremented by one, to the last argument of the given function. This is 20 % faster than the existing _c=true option. - `reduce` now supports folding, which means that the first value in a structure or strings is taken as the initialiser, with the new fold=true option. In this case you do not need to - and should not - pass an initialiser explicitly as the first argument. Examples: > reduce(<< x, a, c -> a + x * 10^(c - 1) >>, seq(0, 3, 3, 3), counter = true, fold = true): 333 With strings, you should place an embedded zero, represented by '\000', at its start: > reduce(<< x, a -> a & x & '|' >>, '\0001234', fold=true): 1|2|3|4| - The new function `fold` works like `reduce` with the fold = true option. - `skycrane.email` has been further improved and now also returns a reason why an address is invalid. - Metamethods can now be assigned to procedures. This may be useful only with closures, which can be used to store data for faster access than is possible with tables, sequences or registers. Data stored in closures usually are called `upvalues`. Depending on the platform, the increase in speed when reading or writing upvalues is zero to nine percent, with generally less memory required. - To store data in closures, use the `tuples.new` function: > import tuples > t := tuples.new(10, 20, 30) The `tuples` package provides functions and metamethods to work with tuples, see Chapter 10.12 of the Primer and Reference. - If a procedure name is indexed with square brackets, the respective upvalues are returned if the procedure is a closure: > t[1], t[2], t[3]: 10 20 30 - Procedures now support the '__index', '__writeindex', '__tostring', '__in', '__notin', '__filled', '__empty', '__union', '__minus', '__intersect', '__eq', '__aeq', '__eeq' and '__size' metamethods.
 hobbes.nmsu.edu/download/pub/os2/dev/proglang/misc/Agena_2-36-2.wpi
Agena v. 2.36.2 (5/2/2023, Alexander Walz) Readme/What's new
2.36.2, February 05, 2023 - New `curry` transforms a function with multiple arguments into a sequence of single-argument functions, i.e. f(a, b, c, ...) becomes f(a)(b)(c)... > f := << x, y, z -> x*y + z >> > t := curry(f, 10); # returns f(10, y, z) > t(20, 30): 230 > u := curry(t, 20); # returns t(10, 20)(z) = f(10, 20, z) > u(30): 230 - `reduce` now accepts a new option, counter=true, which will assign an internal counter value, starting from one and incremented by one, to the last argument of the given function. This is 20 % faster than the existing _c=true option. - `reduce` now supports folding, which means that the first value in a structure or strings is taken as the initialiser, with the new fold=true option. In this case you do not need to - and should not - pass an initialiser explicitly as the first argument. Examples: > reduce(<< x, a, c -> a + x * 10^(c - 1) >>, seq(0, 3, 3, 3), counter = true, fold = true): 333 With strings, you should place an embedded zero, represented by '\000', at its start: > reduce(<< x, a -> a & x & '|' >>, '\0001234', fold=true): 1|2|3|4| - The new function `fold` works like `reduce` with the fold = true option. - `skycrane.email` has been further improved and now also returns a reason why an address is invalid. - Metamethods can now be assigned to procedures. This may be useful only with closures, which can be used to store data for faster access than is possible with tables, sequences or registers. Data stored in closures usually are called `upvalues`. Depending on the platform, the increase in speed when reading or writing upvalues is zero to nine percent, with generally less memory required. - To store data in closures, use the `tuples.new` function: > import tuples > t := tuples.new(10, 20, 30) The `tuples` package provides functions and metamethods to work with tuples, see Chapter 10.12 of the Primer and Reference. - If a procedure name is indexed with square brackets, the respective upvalues are returned if the procedure is a closure: > t[1], t[2], t[3]: 10 20 30 - Procedures now support the '__index', '__writeindex', '__tostring', '__in', '__notin', '__filled', '__empty', '__union', '__minus', '__intersect', '__eq', '__aeq', '__eeq' and '__size' metamethods.
 sourceforge.net/projects/agena/files/Binaries/Agena%202.36.2/agena-2.36.2-os2.wpi/download
Agena Manual v. 2.36.2 (, Alexander Walz)
 sourceforge.net/projects/agena/files/Manuals/agena.pdf/download
Agena source code v. 2.36.2 (Source code, , Alexander Walz)
 sourceforge.net/projects/agena/files/Sources/agena-2.36.2-src.tar.gz/download
Record updated last time on: 06/02/2023 - 05:07

Translate to...

Comments

Hello, thank you very much for listing me. Greetings from Bonn, Rhineland, Alex

Add new comment