aboutsummaryrefslogtreecommitdiff
path: root/iburg/briggs/icg-tools/iburg/README
diff options
context:
space:
mode:
Diffstat (limited to 'iburg/briggs/icg-tools/iburg/README')
-rw-r--r--iburg/briggs/icg-tools/iburg/README58
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 $