diff options
Diffstat (limited to 'iburg/briggs/icg-tools/iburg/README')
-rw-r--r-- | iburg/briggs/icg-tools/iburg/README | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/iburg/briggs/icg-tools/iburg/README b/iburg/briggs/icg-tools/iburg/README new file mode 100644 index 00000000000..b9d4cb15df1 --- /dev/null +++ b/iburg/briggs/icg-tools/iburg/README @@ -0,0 +1,58 @@ +iburg -- A Code Generator Generator + +iburg is a code-generator generator that uses dynamic programming at +compile time. It's described in + +C. W. Fraser, D. R. Hanson and T. A. Proebsting, +Engineering a simple, efficient code generator generator, +ACM Letters on Prog. Languages and Systems 1, 3 (Sep. 1992), 213-226. +http://storage.webhop.net/documents/iburg.pdf + +iburg is written in and generates ANSI C and thus must be compiled +with an ANSI C compiler and preprocessor, e.g., gcc or lcc. To compile +iburg, type "make". There should be no warnings or errors (except +perhaps in the system-dependent YACC skeleton). If you need to +customize the makefile, edit custom.mk, which is included in makefile. +The default custom.mk is empty. + +sample.brg is from the paper in burg.ps, sample4.brg is from the paper +in iburg.ps, and sample5.brg is an example from a compilers course. +"make test" runs iburg on sample[45].brg and executes the resulting +programs. The output should be something like: + +% make test +./iburg -I sample4.brg sample4.c; cc -o test4 sample4.c; ./test4 +sample4.c +i = c + 4; +stmt: ASGNI(disp,reg) + disp: ADDRLP + reg: disp + disp: ADDI(reg,con) + reg: CVCI(INDIRC(disp)) + disp: ADDRLP + con: CNSTI +./iburg -I sample5.brg sample5.c; cc -o test5 sample5.c; ./test5 +sample5.c +stm: MOVE(MEM(loc),reg) + loc: NAME + reg: PLUS(MEM(loc),reg) + loc: PLUS(NAME,reg) + reg: MEM(loc) + loc: NAME + reg: con + con: CONST +% + +To install iburg, copy it and its man page to the appropriate local +directories, e.g., on UNIX: + +% cp iburg /usr/local +% cp iburg.1 /usr/local/man/man1 + +"make clobber" removes the executables and all derived files except +gram.c; "make clean" removes just object, core, and sample*.c files. + +Mail bug reports along with the shortest input that exposes them to +drh@drhanson.net. + +$Id: README 71 2006-12-11 01:22:25Z drhanson $ |