Go backward to Future Extensions.
Go up to Notes.
Suggestions for Improvements
============================
Here are some projects that would-be `gawk' hackers might like to
take on. They vary in size from a few days to a few weeks of
programming, depending on which one you choose and how fast a
programmer you are. Please send any improvements you write to the
maintainers at the GNU project.
1. Compilation of `awk' programs: `gawk' uses a Bison (YACC-like)
parser to convert the script given it into a syntax tree; the
syntax tree is then executed by a simple recursive evaluator.
This method incurs a lot of overhead, since the recursive
evaluator performs many procedure calls to do even the simplest
things.
It should be possible for `gawk' to convert the script's parse tree
into a C program which the user would then compile, using the
normal C compiler and a special `gawk' library to provide all the
needed functions (regexps, fields, associative arrays, type
coercion, and so on).
An easier possibility might be for an intermediate phase of `awk'
to convert the parse tree into a linear byte code form like the
one used in GNU Emacs Lisp. The recursive evaluator would then be
replaced by a straight line byte code interpreter that would be
intermediate in speed between running a compiled program and doing
what `gawk' does now.
This may actually happen for the 3.0 version of `gawk'.
2. An error message section has not been included in this version of
the manual. Perhaps some nice beta testers will document some of
the messages for the future.
3. The programs in the test suite could use documenting in this
manual.
4. The programs and data files in the manual should be available in
separate files to facilitate experimentation.
5. See the `FUTURES' file for more ideas. Contact us if you would
seriously like to tackle any of the items listed there.