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.