1. Introduction.- 1. Introduction.- 2. Related Work.- 3. The SAFL Language.- 4. Soft Scheduling.- 5. High-Level Synthesis of SAFL.- 6. Analysis and Optimisation of Intermediate Code.- 7. Dealing with I/O.- 8. Combining Behaviour and Structure.- 9. Transformation of SAFL Specifications.- 10. Case Study.- 11. Conclusions and Further Work.