[comp.archives] aaa -- Amazing Awk Assembler gnu.gcc

henry@utzoo.uucp (Henry Spencer) (12/29/89)

Archive-name: aaa/how-to-get
Original-posting-by: henry@utzoo.uucp (Henry Spencer)
Original-subject: Re: retargetable assembler in gawk
Archive-site: wuarchive.wustl.edu [128.252.135.4]
Archive-directory: usenet/comp.sources.unix/volume04
Archive-files: aaa.Z
Reposted-by: emv@math.lsa.umich.edu (Edward Vielmetti)

[I don't normally read this group, but a friend pointed this out...]

In article <8912290059.AA16370@LOM1.MATH.YALE.EDU> ara@LOM1.MATH.YALE.EDU (Allan Adler) writes:
>According to the gawk manual, p.145, Henry Spencer of the University of
>Toronto wrote an assembler in gawk which is several thousand lines long,
>which contains many machine descriptions, which it is claimed should
>have been written in some other language...

This isn't quite right.  It's the Amazing Awk Assembler.  I wrote it in
ordinary pre-GNU awk (with some sed and other Unix programs mixed in),
not gawk (although the gawk folks did use it as one of their test cases,
since it's a moderately substantial body of awk code with regression tests).
As shipped by me, it is about 2500 lines, 41KB, including the (skimpy)
documentation.  Roughly 2/3 of that is two sample machine descriptions
in a somewhat redundant form.  As shipped, it can assemble 6801 or 6809
assembler (its own syntax, not a standard one) to Intel hex load modules.
Within the general family of machines it can cope with (8-bit micros,
although it could be stretched to others with work), retargeting it
basically amounts to typing in the opcode list and writing a few lines
of awk for each notation invented for a funny addressing mode.

AAA is slow, its input syntax is limited and eccentric, its response to
errors is poor, its retargetability is limited, and if a retargetable
assembler had been the objective, C would certainly have been a better
choice of implementation language.  I did it because I wanted to see
if it could be done, and because I had some uses for a simple assembler
that didn't justify building a production-quality product.  It can be
done, and it is of some use.  For those purposes, awk was the right language.

>... And if it is no longer part of the distribution, can someone
>tell me where one finds this program ?

I can't tell you whether it's shipped with gawk, but the comp.sources.unix
archive has my original distribution.
-- 
1972: Saturn V #15 flight-ready|     Henry Spencer at U of Toronto Zoology
1989: birds nesting in engines | uunet!attcan!utzoo!henry henry@zoo.toronto.edu