ZL: An Extensible System Programming Language by Kevin Atkinson No single language can possibly provide every useful construct, since language designers have to stop somewhere. Language designers have realized this and to correct the problem, have proposed adding macro systems. Once these systems become powerful enough, however, certain language primitives become unnecessary. Indeed a powerful enough macro system supports a language with a small number of language primitives, and one that minimizes the assumptions behind the compiler and run-time system. A programmer thus gains maximum control over how things are implemented. I intend to built a macro-based language for the system programming domain. The core language will provide the minimal number of constructs to implement things efficiently and the rest will be defined using a sophisticated macro like system. However, unlike most macro systems, this system will be deeply integrated into the basic language and it can be used to control things that most languages give the user no control over, such as the layout of the data when virtual inheritance is used. The syntax of the language will be very similar to C, but the top level grammar will be extremely simple and will only serve to separate one statement from the next. Everything else, including precedence and associativity, will be dealt with using a sophisticated pattern matching system.