Algae(1)

NAME
algae - another matrix programming language

SYNOPSIS
algae [-DhinpRrSsVx] [-d num] [-e script] [ filename ... ]

DESCRIPTION
algae is an interpreter for the Algae programming language. This language provides a technical computing environment for numerical analysis.

This entry describes only how to run algae; see the manual (either printed or on-line) for information on the Algae language, the standard functions, the data types, etc. At algae's interactive prompt, type "help" to get the basics.

The input to algae is read from the list of files on the command line, or from standard input if the list is empty. Options are introduced with a hyphen, except that a lone hyphen acts as a file name and refers to standard input.

OPTIONS
algae has the following options:

-D  turns on the disassembler, which prints algae's opcodes in a form like assembly language. This is used for debugging the algae implementation. You'll probably want to combine this with the -S option.

-di sets the debug level to i, where i is an integer. This is normally of use only for debugging the algae implementation.

-e script
    allows you to provide a script for algae to execute from the command line, rather than from a file or from standard input. Such a script is executed after any startup files but before any other files are executed. Any number of -e options may be given, and the specified scripts are executed in the order in which they appear on the command line.

-h  prints a brief description of the command line arguments.

-i  causes algae to use interactive mode when reading from the standard input device. Without this option, algae uses interactive mode only when its input appears to be from a terminal. In interactive mode, input is parsed a line at a time and exceptions do not cause algae to exit.

-n  changes the way that scalars are displayed. The printing statements normally precede the scalar's value with a tab, and follow it with a newline. With this option set, neither the tab nor the newline is printed. (For character scalars, the quotation marks are also omitted.) This option affects the printing statements only, and has no effect on the functions like printf.

-p  enables execution profiling, a means for determining the execution time characteristics of your Algae program. When profiling is enabled, the profiler periodically interrupts algae and records the line that is currently being executed. When algae exits, it records this data in the file algae.out in the current directory. Use the prof function to read the algae.out file and summarize it by file and by line number. You may wish to use the strip function in conjunction with profiling. Since strip removes the line and file information from a function, any time spent in a call to that function gets charged to the line from which it was called. We've encountered several systems on which operating system bugs prevent the execution profiler from working correctly. These include a DECstation and a Titan, both with MIPS architectures. If you have such a system, then algae should have been installed with the execution profiler disabled. In that case, you'll get an error message if you try to use the -p option.

-R  causes algae to run in restricted mode. The "system" function is disabled, as are "pipes".

-r  forces algae to skip its command line editing and history facility. This facility is normally available, unless your version of algae was installed without it. The editing commands are similar to Emacs: forward (C-f), backward (C-b), up (C-p), and down (C-n). You can also change to vi style (M-C-j).

-S  skips reading algae's startup files. This means that many of the standard functions will be unavailable.

-s  skips reading the user's startup file in ~/.algae.

-V  prints the version information.

-x  causes algae not to default to reading stdin when no file names are given on the command line.

FILES

algae.A
    The system startup file for algae. Often located in the /usr/local/lib directory, its default name and path may be set to something different during installation and they may be overridden with an environment variable named ALGAE_RC0. This file is not read if the -S option is given.

~/.algae
    The user's startup file, normally read after algae.A. This file need not exist, and is skipped if either -S or -s option is given. Its name may be overridden with the ALGAE_RC1 environment variable.

tools
    A directory containing Algae files to define many of the standard functions. This is often named /usr/local/lib/algae, but its name is irrelevant so long as algae.A correctly identifies it.

algae.info
    The on-line version of the manual (along with algae.info-1, algae.info-2, etc.). These should be in /usr/local/info, or wherever your Info reader expects them.

BUGS
Bugs should be reported to ksh@sideslip.org. See the "Bugs" section of the manual for hints on how and when to report them. A list of known bugs is also given there.

RESTRICTIONS
Copyright (C) 1994-2001  K. Scott Hunziker.
Copyright (C) 1990-1994  The Boeing Company.

Algae 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 2 of the License, or (at your option) any later version.

Algae 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 Algae; see the file LICENSE. If not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

The copyright to major portions of Algae belongs to The Boeing Company. The following permission notice and warranty disclaimer pertain to those portions of the code:

    Permission to use, copy, modify, and distribute this software and its documentation for any purpose is hereby granted, provided that the above copyright notice appear in all copies, that both the copyright notice and this permission notice and warranty disclaimer appear in supporting documentation, and that the names of Boeing or any of its entities not be used in advertising or publicity pertaining to distribution of the software without specific, written, prior permission.

    BOEING DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS, AND NONINFRINGEMENT. IN NO EVENT SHALL BOEING BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Caution: Use of this product as a substitute for a healthy physical, emotional, and spiritual life is not recommended and could be harmful.

AUTHORS
algae was designed and implemented by Scott Hunziker and Mike Brennan.