Systems Languages have often been designed on a rather ad hoc basis. This thesis attempts to formulate and analyse design criteria in a more systematic manner. These criteria are drawn from three major sections: a survey of languages used for systems programming, a discussion of systems programs features, and a discussion of programming language effectiveness. The resulting criteria are then discussed in relation to their application to the language design. A collection of language summaries is included in the appendices.