Agena

Version: 
4.11.0
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 ZIP and WarpIN package:

  • download the 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. 4.11.0 (6/4/2025, Alexander Walz) Readme/What's new
4.11.0 Houma, April 06, 2025 - Introduced the new pseudo type `nonzeroint` which stands for an integer that is not zero. You can use it as a required type in parameter lists of procedures and with the following functions and operators: `::`, `:-`, `checkoptions`, `checktype`, `isall`, `numarray.isall`, `tuples.isall`. New `isnonzeroint` checks whether all its arguments are non-zero integers and returns `true` or `false`: > isnonzeroint(-2, -1, 1, 2): true > isnonzeroint(-2, -1, 0, 1, 2): false New `optnonzeroint` checks whether its argument is a non-zero integer; if its argument is `null`, it returns a default non-zero integer. - New `strings.leven` computes the Levenshtein distance or Levenshtein similarity of two strings. It's the same as `strings.dleven`, but does not take transpositions into account. > strings.leven('alex', 'paely'): 4 > strings.dleven('alex', 'paely'): 3 - New `strings.lcs` computes the longest common subsequence (LCS) of two strings. Example: > strings.lcs('Stefan', 'tefa'): 4 tefa > strings.lcs('Stefan', 'tfea'): 3 tfa - New `strings.issubseq` checks whether a string represents a subsequence of characters of another string. Examples: > strings.issubseq('gen', 'agena'), strings.issubseq('gn', 'agena'), strings.issubseq('eg', 'agena'): true true false - Introduced the new `numtheory` package for Number Theory. Some functions that were part of the `math` library have been moved to it, but aliases have been provided for backward compatibility so that you do not need to change your code for the time being: old name new name ----------------------------------------------- math.binet -> numtheory.binet math.congruentprime -> numtheory.congruentprime math.fib -> numtheory.fib math.fibinv -> numtheory.fibinv math.gcd -> numtheory.gcd math.invmod -> numtheory.invmod math.isfib -> numtheory.isfib math.isprime -> numtheory.isprime math.kronecker -> numtheory.kronecker math.lcm -> numtheory.lcm math.mulmod -> numtheory.mulmod math.nextprime -> numtheory.nextprime math.powmod -> numtheory.powmod math.prevprime -> numtheory.prevprime math.primes -> numtheory.primes - New `numtheory.jacobi` computes the Jacobi symbol. The return is either -1, 0 or 1. Example: > numtheory.jacobi(-286, 4272943): 1 The Jacobi symbol is a generalisation of the Legendre symbol. - New `numtheory.ifactor` computes the complete integer factorization of any integer. The return is a table of the all primes, so if you multiply all of them, you will get n. The function mimics the Maple function of the same name as much as possible. Examples: > numtheory.ifactor(24): [2, 2, 2, 3] > numtheory.ifactor(-17): [-17] - Likewise, new `numtheory.ifactors` also returns the complete integer factorization of the integer n as some sort of summary description: The sign, and the respective factors along with their multiplicity: > numtheory.ifactors(24): # see above [1, [[2, 3], [3, 1]]] > numtheory.ifactors(-17): [-1, [[17, 1]]] This is an exact clone of the ifactors function in Maple which is widely used internally there. - New `numtheory.factors` returns all the integers that divide an integer without remainder. Examples: > numtheory.ifactor(250), numtheory.ifactors(250): [2, 5, 5, 5] [1, [[2, 1], [5, 3]]] > numtheory.factors(-17): # a prime [17] - New `numtheory.nthpow` finds the largest n-th power in an integer: > numtheory.ifactor(250), numtheory.ifactors(250): [2, 5, 5, 5] [1, [[2, 1], [5, 3]]] Get factor with exponent 3: > numtheory.nthpow(250, 3): 125 - New `utils.onedim` transforms multi-dimensional indices to a one-dimensional one. Check the description in the Primer and Reference for examples. - The new `maple` package includes aliases to Maple functions that facilitate porting Maple code to Agena. The package is currently under construction and just includes aliases for Maple functions eval, ifactor, ifactors, isprime, modp, power and trunc. The collection will grow in the future. As you see, the `eval` alias that was part of the base library has been moved to the `maple` package. An alias has been provided to ensure backward compatibility. - The new C API function `agn_getiinteger` returns an integer from the given position in a table. - In weird situations, `avl.indices` could run out of stack space, crashing Agena. This has been fixed. - This release has been named after the City of Houma in the parish seat of Terrebonne Parish, Louisiana and has been Valgrind-checked on x86 and AMD64 Linux to ensure there are no internal errors or memory leaks.
 sourceforge.net/projects/agena/files/Binaries/Agena%204.11.0/agena-4.11.0-os2.wpi/download(link is external)
Agena v. 3.16.1 (update2, 17/5/2024, Alexander Walz) Readme/What's new
AGENA LIBRARY (CUMULATIVE) UPDATE Improvements ------------ 3.16.1 Library Update 2 Anson, May 17, 2024 - The precision of the factorial function fact left much to be desired with higher order integral arguments n, especially with n > 101. This has been fixed. - Removed non-existing territories from data/langreg.csv. Installation ------------ This update can be used on all operating systems. You may need administrator rights to install this update. Prerequisite ------------ Please have at least Agena 3.16.1 installed. Solaris, UNIX, and Mac ---------------------- In Solaris, OpenSolaris, Linux, and Mac, the Agena installation can be found in /usr/agena. (This folder includes at least the following subdirectories: doc, lib, schemes, and share). Please cd into this Agena main directory, i.e. into /usr/agena. Proceed with step `Unpack`. Windows ------- In Windows, your Agena installation might usually reside in - <drive letter>:\Programs\Agena, or - <drive letter>:\Program Files\Agena, or - <drive letter>:\Program Files (x86)\Agena. Please cd into this Agena subdirectory. Its contents is as follows: 13.03.2022 21:22 <DIR> . 13.03.2022 21:22 <DIR> .. 13.03.2022 21:22 <DIR> bin 13.03.2022 21:22 <DIR> doc 13.03.2022 21:22 <DIR> lib 13.03.2022 21:22 <DIR> share 13.03.2022 21:22 61.346 uninstall.exe Proceed with step `Unpack`. DOS --- In DOS, locate the Agena directory that includes the licence and change.log files, and cd into this directory. Please proceed with step `Unpack`. Unpack ------ Copy this ZIP archive to your main Agena folder (see above) you just cd'ed into. Please copy the lib/*.agn files in the lib folder of this ZIP archive to the lib folder of your Agena installation, overwriting the original files. If present, copy the updated documentation in the doc directory of this ZIP archive to the doc folder of your Agena installation, overwriting the original files. If present, please also copy scheme(s) files included in this update to the schemes folder. Or just for short: in a shell, just issue the following statement after cd'ing: unzip -o *update* Really Updated ? ---------------- To check whether the update has been successfully installed: The start-up message should now include the word `Update`, e.g.: AGENA >> a.b.c Update n. (C) 2006-20xy http://agena.sourceforge.net. That's it.
 sourceforge.net/projects/agena/files/Binaries/Agena%203.16.1/agena-3.16.1-update2.zip/download(link is external)  local copy
Agena v. 3.16.1 (11/5/2024, Alexander Walz) Readme/What's new
3.16.1 Anson, May 11, 2024 - In the past, when a number was suffixed by the letter 'd', the number was multiplied by 12 (dozen notation). Now the number is assumed to represent degrees and is automatically converted to radians through multiplication by Pi/180. > 90d: 1.5707963267949 Likewise, if a number is suffixed by the letter 'r', it is assumed to be in radians and automatically converted to degrees through multiplication by 180/Pi: > 1.5707963267949r: 90 The suffix 'D' still represents dozens, so for example: > 10D: 120 - New `math.todegrees` is the complement to `math.toradians` and converts radians to degrees: > math.todegrees(Pi/2): 90 - `math.todecimal` did not work well - or unexpectedly - with negative components. This has been fixed by converting all values to positive while preserving the sign in the result. > math.todecimal(-1, 30, 45): -1.5125 > math.todecimal(-1, 30, -45): -1.5125 - Likewise, `math.toradians` did not work well with negative optional arguments. This has been fixed the same way as for `math.todecimal`. - `math.dd` was 16 times slower than equivalent `math.todec`, because the former used string parsing and the latter a precise numeric approach. So from now on, `math.dd` uses the same code as `math.todec`, the latter which has also now been deprecated. An alias has been provided to ensure backward-compatibility. - `math.splitdms` has been tuned by eight times, now using arithmetics instead of string processing.
 www.hobbesarchive.com/Hobbes/pub/os2/dev/proglang/misc/Agena_3-16-1.wpi(link is external)
Agena Manual v. 4.11.0 (, Alexander Walz)
 sourceforge.net/projects/agena/files/Manuals/agena.pdf/download(link is external)
Agena source code v. 4.11.0 (Source code, , Alexander Walz)
 sourceforge.net/projects/agena/files/Sources/agena-4.11.0-src.tar.gz/download(link is external)
Record updated last time on: 06/04/2025 - 16:14

Translate to...

Comments

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

Add new comment