Ada is a high-level imperative programming language with complex static semantics. In this paper we present a compiler front-end that translates Ada programs into DIANA trees - a standard intermediate form for Ada. In order to avoid the difficulties that arise from the ambiguous Ada syntax we designed a transformation system that maps the initial program tree into a more specific one. Semantic checks like overload resolution, type checking etc. are then performed on that tree. The OPTRAN system developed at the Universitaet des Saarlandes was used to specify and implement the Ada front-end. Both the analysis of static semantics and the transformation of the initial program tree are described using the OPTRAN language which combines attribut...