APL is a dynamically typed language which deals with arrays whose type, number of dimensions (rank) and size are not fixed at compile time, but are instead determined at run time. This makes APL more difficult to compile than static languages like Pascal or FORTRAN. This thesis describes a prototype implementation of the core of an APL compiler. The intention thus far has been to demonstrate techniques for dealing with some of the issues that arise when trying to implement APL efficiently, rather than to produce a working implementation. The present program does not do any of the initial lexical processing required, and only compiles into intermediate code. Object code is never produced. The prototype has many APL features missing and is un...