A real-time system not only must generate correct results, it must generate those results on time. In embedded systems, these results include control signals, actuator reactions, etc. Traditional approaches to the design and implementation of real-time embedded applications first transfer timing requirements into machine dependent operations using low level programming languages, such as Assembly or C. By intermixing functional behavior with timing behavior, low-level programming languages reduce the modularity and reusability of software components. For example, it is difficult to incrementally modify either existing application code to meet new functionality requirements, or the scheduling to meet changing hardware or network requirements. In order to address these difficulties, we develop a high-level language approach to support a stronger separation of design concerns. We use actors as a formal model of computation in an embedded system and separate timing requirements from the actors' functional behavior. A new language construct, called RTsynchronizer, is introduced to express timing requirements. Our approach provides a formal basis for a component-based compositional software development methodology for distributed real-time and embedded systems.