Other Freely Available `awk' Implementations
============================================
It's kind of fun to put comments like this in your awk code.
`// Do C++ comments work? answer: yes! of course'
Michael Brennan
There are three other freely available `awk' implementations. This
minor node briefly describes where to get them:
Unix `awk'
Brian Kernighan has made his implementation of `awk' freely
available. You can retrieve this version via the World Wide Web
from his home page.(1) It is available in several archive formats:
Shell archive
`http://cm.bell-labs.com/who/bwk/awk.shar'
Compressed `tar' file
`http://cm.bell-labs.com/who/bwk/awk.tar.gz'
Zip file
`http://cm.bell-labs.com/who/bwk/awk.zip'
This version requires an ISO C (1990 standard) compiler; the C
compiler from GCC (the GNU Compiler Collection) works quite nicely.
Note:Extensions in the Bell Laboratories `awk', for a list
of extensions in this `awk' that are not in POSIX `awk'.
`mawk'
Michael Brennan has written an independent implementation of `awk',
called `mawk'. It is available under the GPL (Note:GNU General
Public License.), just as `gawk' is.
You can get it via anonymous `ftp' to the host `ftp.whidbey.net'.
Change directory to `/pub/brennan'. Use "binary" or "image" mode,
and retrieve `mawk1.3.3.tar.gz' (or the latest version that is
there).
`gunzip' may be used to decompress this file. Installation is
similar to `gawk''s (Note:Compiling and Installing `gawk' on
Unix.).
`mawk' has the following extensions that are not in POSIX `awk':
* The `fflush' built-in function for flushing buffered output
(Note:Input/Output Functions.).
* The `**' and `**=' operators (*note Arithmetic Operators:
Arithmetic Ops. and also see *Note Assignment Expressions:
Assignment Ops).
* The use of `func' as an abbreviation for `function' (Note:Function Definition Syntax.).
* The `\x' escape sequence (Note:Escape Sequences).
* The `/dev/stdout', and `/dev/stderr' special files (Note:Special File Names in `gawk'.). Use `"-"'
instead of `"/dev/stdin"' with `mawk'.
* The ability for `FS' and for the third argument to `split' to
be null strings (Note:Making Each Character a Separate
Field.).
* The ability to delete all of an array at once with `delete
ARRAY' (Note:The `delete' Statement.).
* The ability for `RS' to be a regexp (Note:How Input Is Split
into Records.).
* The `BINMODE' special variable for non-Unix operating systems
(Note:Using `gawk' on PC Operating Systems.).
The next version of `mawk' will support `nextfile'.
`awka'
Written by Andrew Sumner, `awka' translates `awk' programs into C,
compiles them, and links them with a library of functions that
provides the core `awk' functionality. It also has a number of
extensions.
The `awk' translator is released under the GPL, and the library is
under the LGPL.
To get `awka', go to `http://awka.sourceforge.net'. You can reach
Andrew Sumner at <andrew_sumner@bigfoot.com>.
---------- Footnotes ----------
(1) `http://cm.bell-labs.com/who/bwk'