Diana as an internal representation in an Ada-in-Ada compiler

We are implementing an Ada compiler, written in Ada, using the Diana intermediate notation. Before proceeding with the compiler, we had to decide on the detailed implementation of Diana. This paper discusses our design decisions in two important areas: the partitioning and representation of Diana node types using Ada variant records types, and the implementation of separate compilation using a software virtual memory technique. We have found these approaches both simplify the construction of a reliable and efficient compiler, and support the goals of an integrated Ada programming support environment.

[1]  Peter A. Franaszek,et al.  Use Bit Scanning in Replacement Decisions , 1979, IEEE Transactions on Computers.