Cecile is our coordination compiler for heterogeneous real-time systems. Applications are specified with the TeamPlay coordination language, which is developed in conjunction with Cecile. TeamPlay applications are composed of small components, each with their non-functional properties such as time and energy, plus the way they interact with each other. From such a specification, Cecile can perform a variety of actions such as analyses, transformations, scheduling, simulation, or code generation for a particular runtime environment.