[comp.compilers] Compiler Construction Kits

Chuck_Lins.SIAC_QMAIL@gateway.qm.apple.com (Chuck Lins) (08/17/90)

I know this has been covered fairly recently here but ...

1. Could someone please re-post the info on the Amsterdam compiler kit (eg its
availability etc)? If you have any experience with this system I'd be
interested in hearing that as well. Especially wrt the optimization phases.

2. Where are the comp.compilers archives located? I'm presuming the existence
of an ftp site.

Response to lins@apple.com.

Thanks in advance.

   Self-proclaimed Object Oberon Evangelist.
[In March there was a question about ACK availability, but other than a
reference to an article in the November 1989 SIGPLAN, there was no answer.
See the monthly posting which went out a few days ago for the archives. -John]
-- 
Send compilers articles to compilers@esegue.segue.boston.ma.us
{ima | spdcc | world}!esegue.  Meta-mail to compilers-request@esegue.

ceriel@cs.vu.nl (Jacobs Ceriel JH) (08/17/90)

Here is an ACK information sheet:

                AMSTERDAM COMPILER KIT (ACK) INFORMATION SHEET

1.  WHAT IS ACK?

     The Amsterdam Compiler Kit is an integrated collection of programs
designed to simplify the task of producing portable (cross) compilers and
interpreters. For each language to be compiled, a program (called a front
end) must be written to translate the source program into a common intermedi-
ate code. This intermediate code can be optimized and then either directly
interpreted or translated to the assembly language of the desired target
machine.

     The current version contains front-ends for Modula-2, C, Pascal, Basic,
and occam, and back-ends for a.o. DEC PDP-11, DEC VAX, Motorola 68000,
Motorola M68020, Intel 8080, Intel 8086, Zilog Z80, Zilog Z8000, NS 16032.
Also included are a parser generator called LLgen, a code-generator-generator
(the code-generators are table-driven), a peephole optimizer on the intermedi-
ate code, a global optimizer on the intermediate code, table-driven machine-
dependent peephole optimizers, and many other utilities.

2.  WHAT SYSTEMS DOES ACK RUN ON?

     ACK runs on the UNIX operating system. It has been tested on VAXen, SUN
workstations, PDP-11's, AT-compatibles running Microsoft Xenix, and on a 68000
system running UNIX System V.0, and it is expected to run on any decent UNIX
system.

     However, ACK does not produce binaries for systems it does not know
about. Producing binaries for a new machine involves

-    writing a back-end table for the processor (if not done already).  This
     may take 2-3 months.

-    writing the machine-dependent part of an assembler for the processor (if
     not done already). This may take a couple of days.

-    writing a system-call interface. This may again take a couple of days.

-    writing a conversion program, converting the machine-independent object
     format that ACK produces into a binary for the machine at hand.

3.  HOW CAN I GET ACK?

     ACK is available from 2 companies:

        Mr. Mark Krieger
        Unipress Software
        2025 Lincoln Highway
        Edison NJ 08817
        U.S.A.
        Email: msk@unipress.com
	tel: +1 201 985 8000
	fax: +1 201 287 4929

        Mr. Jossi Gil
        Transmediair Utrecht BV
        Melkweg 3
        3721 RG  Bilthoven
        The Netherlands
        Email: jossi%tmu@cwi.nl
	tel: +31 30 281820

There is a large discount for educational institutions.

4.  HOW CAN I FIND OUT MORE ABOUT ACK?

     References[Tan83a, Tan83b] give an overview of ACK. The intermediate
code is described in detail in [Tan83c]. The optimizers are described in
[Tan82, Bal85, Bal86]. The parser generator is described in [Jac85, Gru88].
Other ACK programs are described in [Tan84], but this is out of print.

5.  REFERENCES

Bal85.   H.E. Bal, "The Design and Implementation of the EM Global Optimizer,"
         Rapport IR-99, Vrije Universiteit, Amsterdam (March 1985).
Bal86.   H.E. Bal and A.S. Tanenbaum, "Language- and Machine-independent Glo-
         bal Optimization on Intermediate Code," Computer Languages, Vol. 11,
         (2) pp. 105-121 (April 1986).
Gru88.   D. Grune and C.J.H. Jacobs, "A Programmer-friendly LL(1) Parser Gen-
         erator," Software - Practice and Experience, Vol. 18, (1) pp. 29-38
         (January 1988).
Jac85.   C.J.H. Jacobs, "Some Topics in Parser Generation," Rapport IR-105,
         Vrije Universiteit, Amsterdam (October 1985).
Tan82.   A.S. Tanenbaum, H. van Staveren, and J.W. Stevenson, "Using Peephole
         Optimization on Intermediate Code," TOPLAS, Vol. 4, (1) pp. 21-36
         (January 1982).
Tan83a.  A.S. Tanenbaum, H. van Staveren, E.G. Keizer, and J.W. Stevenson, "A
         Practical Toolkit for Making Portable Compilers," CACM, Vol. 26,
         (9) pp. 654-660 (September 1983).
Tan83b.  A.S. Tanenbaum, H. van Staveren, E.G. Keizer, and J.W. Stevenson, "A
         Unix Toolkit for Making Portable Compilers," Proceedings USENIX
         conf., Vol. 26, pp. 255-261 (July 1983).
Tan83c.  A.S. Tanenbaum, H. van Staveren, E.G. Keizer, and J.W. Stevenson,
         "Description of a machine architecture for use with block structured
         languages," Rapport nr IR-81, Vrije Universiteit, Amsterdam (August
         1983).
Tan84.   A.S. Tanenbaum et al., "Amsterdam Compiler Kit documentation," Rap-
         port nr IR-90, Vrije Universiteit, Amsterdam (June 1984).

--
Ceriel Jacobs, Dept. of Mathematics and Computer Science, Vrije Universiteit,
De Boelelaan 1081, 1081 HV Amsterdam, The Netherlands
Voice: +31 20 5485577 			Email:	ceriel@cs.vu.nl
-- 
Send compilers articles to compilers@esegue.segue.boston.ma.us
{ima | spdcc | world}!esegue.  Meta-mail to compilers-request@esegue.