Agena

Version: 
7.8.7
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 expat sqlite

Following ones are the download links for manual installation:

Agena v. 7.8.7 (13/8/2026, Alexander Walz) Readme/What's new
agena >> `The Power of Procedural Programming` 7.8.7 Phobos, August 13, 2026 - New `astro.getposition` calculates the exact position of a celestial body for a specific location and time. Example for Chattanooga, TN, for August 13, 2026, noon local time: > import astro; > lat, lon, elev := 35.0456, -85.3097, 206; > astro.getposition('Sun', lat, lon, elev, 2026, 8, 13, 17, 46, 6): 2461266.2403472 [altitude ~ 69.454648517606, azimuth ~ 179.99942552291, declination ~ 14.493921704599, ra ~ 9.559571062088] The function also supports the Moon the and the nine planets of the Solar System. - New `astro.searchriseset` searches for the next time a celestial body rises or sets as seen by an observer on the Earth. Examples for sunrise (last argument is +1) and sunset (last argument is -1) at Chattanooga on August 13, 2026, enter: > import astro; > lat, lon, elev := 35.0456, -85.3097, 206; > astro.searchriseset('Sun', lat, lon, elev, 2026, 8, 13, 0, 0, 0, +1): 2461265.9582471 [2026, 8, 13, 10, 59, 52.548474669456] > astro.searchriseset('Sun', lat, lon, elev, 2461266, -1): 2461266.5220485 [2026, 8, 14, 0, 31, 44.994656145573] The function supports the Moon the and the nine planets of the Solar System, too. - New `astro.searchhourangle` searches for the time when the center of a body reaches a specified hour angle. Example: For the solar noon, with the starting date August 13, 2026 00:00:00 UTC, at location Chattanooga, TN, we have: > import astro; > lat, lon, angle, dir := 35.0456, -85.3097, 0.0, 1.0; > astro.searchhourangle('Sun', lat, lon, 0, 2026, 8, 13, 0, 0, 0, angle, dir): 2461266.2403325 [altitude ~ 69.456447100381, azimuth ~ 179.99998731165, declination ~ 14.502047100381, ra ~ 9.5592033742828] The function supports the Moon the and the nine planets of the Solar System, as well. - New `astro.gethourangle` finds the hour angle of a body for a given observer and time. For Chattanooga: > import astro; > lat, lon, angle, dir := 35.0456, -85.3097, 0.0, 1.0; > astro.gethourangle('Sun', lat, lon, 0, 2026, 8, 13, 12, 0, 0): 18.231160842525 The function also supports the Moon the and the nine planets of the Solar System. - `astro.winter` did not return a correct date and the code to compute the seasons in general was way too complicated. So all seasonal finding functions have been replaced by one new unified function `astro.season` which returns the start of spring, summer, autumn and winter as a Julian Date: > import astro; > astro.seasons(2026): [autumn ~ 2461306.5039192, spring ~ 2461120.1150005, summer ~ 2461212.8506981, winter ~ 2461396.3683124] Aliases to `astro.spring`, `astro.summer`, `astro.autumn`, `astro.winter` have been provided for backward-compatibility. - The Julian Date and the calendar date and time returned by `astro.searchriseset` differed slightly. This has been fixed.
 sourceforge.net/projects/agena/files/Binaries/Agena 7.8.7/agena-7.8.7-os2.wpi/download
Run Agena Scripts Easily (rase) v. 7.8.6 (12/8/2026, Alexander Walz) Readme/What's new
rase - Run Agena Scripts Easily in Windows NT 4.0 or later and in OS/2. Please refer to the explanations in `example.agn`. For a quick demo, unpack all the files into a new, fresh directory, change into this directory and run the `example.exe` file in an command shell (Windows) or `example.cmd` (OS/2) as follows: example 1 2 There is also a utility called `whereis` which searches for a file in a path: whereis /r /a "agena.*" c:/agena Another one prints drive information: drive c: A script printing information on installed memory: memory Finally, cpuinfo prints various information on the CPU: cpuinfo /a In your operating system, you may want to add the path to the rase directory to your PATH system environment variable. Credit: The implementation is based on https://www.cs.usfca.edu/~galles/cs420/lecture/LuaLectures/LuaAndC.html, written by: Associate Professor David Galles, Department of Computer Science, University of San Francisco, CA 94117. For compilation hints, check the top of the rase.c source file. ---------------------------------------------------------------- # READ.ME and DEMO Run Agena Scripts Easily (rase) for Windows /* This file shows how to execute Agena scripts in Windows NT 4.0 and later without passing the script and its arguments to the actual Agena interpreter. We won't call "agena example.agn 1 2" from the commandline, but just enter "example 1 2" in the NT shell. In OS/2 we use the batch script example.cmd to execute a script. Please make sure that the following files are now in one and the same directory: example.agn (or your favourite script filename) example.exe (Windows only, or your favourite executable filename) agena.exe (in OS/2 only) agena.dll (do not change the filename) library.agn (do not change the filename) libgcc_s_dw2-1.dll (Windows only, do not change the filename) libmingwex-4.dll (Windoes only, do not change the filename) In Windows, rename the following files in this ZIP file to your favourite name: example.exe -> yourfavouritename.exe example.agn -> yourfavouritename.agn In OS/2, rename the following files in this ZIP file to your favourite name: example.cmd -> yourfavouritename.cmd example.agn -> yourfavouritename.agn and edit the *.agn file according to your need. The *.exe or *.cmd file will launch your *.agn script file of the same name. For a more elobarate script that locates files, links or folders in a directory, check the `whereis.agn` script. For a script that prints drive information, check the `drive.agn` script. */ print('\nDemo using NO explicit function by referring to the \`args\' table:'); print('-----------------------------------------------------------------\n'); print('Number of arguments:', size(args)); # all arguments (all strings )are available in the args table, including the name of the script at index 1 print('Arguments passed: ', args); # we convert the command-line arguments to numbers local x, y := tonumber(args[2]), tonumber(args[3]); if x :: number and y :: number then print('Test: ', x & ' minus ' & y & ' is ' & (x - y)); print('Test: ', 'sqrt(' & x & ' + ' & y & ') is ' & sqrt(x + y)) fi; /* In Windows, we _alternatively_ define a function of the same name as the executable (w/o the file suffix, `example` in this case). This function will then be called by the executable `example.exe`. Just enter the following statement in an NT shell (cmd.com) and see what will happen: example 1 2 */ example := proc(?) is # this function will be automatically called by the executable print('\nDemo using explicit function of same name \& \`nargs\' and the \`varargs\' table:'); print('----------------------------------------------------------------------------\n'); print('Number of arguments:', nargs); print('Arguments passed: ', ?); local x, y := tonumber(?[1]), tonumber(?[2]); if x :: number and y :: number then print('Test: ', x & ' minus ' & y & ' is ' & (x - y)); print('Test: ', 'sqrt(' & x & ' + ' & y & ') is ' & sqrt(x + y)) fi end; /* The output should be: C:\agena\extract>example 1 2 Demo using NO explicit function by referring to the `args' table: ----------------------------------------------------------------- Number of arguments: 3 Arguments passed: [example, 1, 2] Test: 1 minus 2 is -1 Test: sqrt(1 + 2) is 1.7320508075689 Demo using explicit function of same name & `nargs' and the `varargs' table: ---------------------------------------------------------------------------- Number of arguments: 3 Arguments passed: [example, 1, 2] Test: 1 minus 2 is -1 Test: sqrt(1 + 2) is 1.7320508075689 */
 sourceforge.net/projects/agena/files/Packages/rase-os2.7_8_6.zip/download
Agena v. 7.8.5 (10/8/2026, Alexander Walz)
 hobbes.os-2.in/download/os2/dev-4/proglang-4/misc-23/Agena_7-8-5.wpi
Agena Manual v. 7.8.7 (, Alexander Walz)
 sourceforge.net/projects/agena/files/Manuals/agena-reference.pdf/download
Agena source code v. 7.8.7 (Source code, , Alexander Walz)
 sourceforge.net/projects/agena/files/Sources/agena-7.8.7-src.tar.gz/download
Record updated last time on: 14/08/2026 - 06:22

Translate to...

Comments

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

Add new comment