This paper describes the design principles and the features of the high-level parallel programming language Nano-2. Nano-2 has been designed to facilitate the construction of parallel programs which run on the highly parallel processing system Hyphen. A Nano-2 program consists of machine dependent programs called SPPs (Self-synchronizing Parallel Programs) and abstract parallel constructs called processes. Nano-2 is also intended to support the reliable programming process by compiler checks and by the information explicitly expressed in the program text.