The CuPit compiler for the MasPar MP-1 and MP-2: a literate programming document

This document contains the complete source code of the CuPit compiler for the MasPar MP-1/MP-2 SIMD parallel machines. The compiler is presented as a FunnelWeb literate programming document that contains definitions for the various specification files needed by the Eli compiler construction system.The exactly same set of files that enabled FunnelWeb to produce this document also enable Eli to produce the complete executable compiler, run time system, and standard library. In this document the source code is complemented by interspersed documentation text and several larger introduction text blocks and appendices, in particular a description of all errors found in the compiler during its development and use.The compiler takes CuPit source code as input and produces MPL source code as output. CuPit is a special purpose language for neural network algorithms which dynamically change the topology of the neural network. The compiler is designed to optimize the irregular problems that arise when executing such algorithms for both data locality and load balancing.The compiler can produce several different versions of code: (1) a plain do-as-good-as-you-can-without-any-tricks one (unoptimized), (2) one that uses a better data distribution (statically optimized), (3) one that contains additional instructions to collect information about program behavior at run time, also known as the "rti version" meaning "run time information version" (dynamically optimized).

[1]  W GrayRobert,et al.  Eli: a complete, flexible compiler construction system , 1992 .

[2]  Donald E. Knuth,et al.  The errors of tex , 1989, Softw. Pract. Exp..